package me.km.snuviscript; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.function.Consumer; import java.util.stream.Collectors; import me.hammerle.snuviscript.code.Script; import me.hammerle.snuviscript.code.SnuviUtils; import me.hammerle.snuviscript.inputprovider.Variable; import me.km.utils.Utils; import me.km.entities.EntityHuman; import me.km.entities.EntityItemProjectile; import me.km.events.CommandEvent; import me.km.events.PlayerTabListNameEvent; import me.km.inventory.ModInventory; import me.km.permissions.PermissionManager; import me.km.utils.Location; import net.minecraft.command.ICommandSource; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.passive.SheepEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.inventory.container.ClickType; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.server.MinecraftServer; import net.minecraft.server.management.PlayerList; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.EntityRayTraceResult; import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.event.ServerChatEvent; import net.minecraftforge.event.entity.EntityMountEvent; import net.minecraftforge.event.entity.ProjectileImpactEvent; import net.minecraftforge.event.entity.item.ItemTossEvent; import net.minecraftforge.event.entity.living.*; import net.minecraftforge.event.entity.player.AttackEntityEvent; import net.minecraftforge.event.entity.player.EntityItemPickupEvent; import net.minecraftforge.event.entity.player.FillBucketEvent; import net.minecraftforge.event.entity.player.ItemFishedEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.event.world.ExplosionEvent; import net.minecraftforge.eventbus.api.Event; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.event.entity.player.PlayerEvent; public class ScriptEvents { private final Scripts scripts; private final MinecraftServer server; private final PermissionManager perms; public ScriptEvents(Scripts scripts, MinecraftServer server, PermissionManager perms) { this.scripts = scripts; this.server = server; this.perms = perms; } // ------------------------------------------------------------------------- // basics // ------------------------------------------------------------------------- private void handleEvent(PlayerEntity p, String event, Consumer