package me.km.snuviscript; import java.util.*; import java.util.function.Consumer; import java.util.stream.Collectors; import me.hammerle.snuviscript.code.*; import me.hammerle.snuviscript.inputprovider.Variable; import me.kcm.BlockHarvest; import me.kcm.Craft; import me.km.utils.Utils; import me.km.entities.*; import me.km.events.CommandEvent; import me.km.inventory.ModInventory; import me.km.utils.*; import net.minecraft.block.*; import net.minecraft.command.ICommandSource; import net.minecraft.entity.*; import net.minecraft.entity.player.*; import net.minecraft.inventory.*; import net.minecraft.inventory.container.ClickType; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.ICraftingRecipe; import net.minecraft.item.crafting.IRecipeType; import net.minecraft.loot.LootContext; import net.minecraft.loot.LootParameters; import net.minecraft.network.play.server.SSetSlotPacket; import net.minecraft.server.MinecraftServer; import net.minecraft.server.management.PlayerList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.*; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.text.*; import net.minecraft.world.*; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.event.*; import net.minecraftforge.event.entity.*; import net.minecraftforge.event.entity.item.ItemTossEvent; import net.minecraftforge.event.entity.living.*; import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent; import net.minecraftforge.event.entity.player.*; import net.minecraftforge.event.world.*; import net.minecraftforge.eventbus.api.*; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.eventbus.api.Event.Result; public class ScriptEvents implements BlockHarvest, Craft { private static void setLiving(Script sc, LivingEntity ent) { sc.setVar("living_entity", ent); } private static void setItem(Script sc, ItemStack stack) { sc.setVar("item", stack); } private static void setPlayer(Script sc, PlayerEntity p) { sc.setVar("player", p); // deprecated sc.setVar("player_name", p == null ? null : p.getName().getString()); } @SuppressWarnings("") private static void setBlock(Script sc, World w, BlockPos pos, BlockState state) { sc.setVar("block_loc", new Location(w, pos)); sc.setVar("block_type", state.getBlock().getRegistryName().toString()); sc.setVar("block", state.getBlock()); } @SuppressWarnings("") private static void setBlock(Script sc, World w, BlockPos pos) { BlockState state = w.getBlockState(pos); sc.setVar("block_loc", new Location(w, pos)); sc.setVar("block_type", state.getBlock().getRegistryName().toString()); sc.setVar("block", state.getBlock()); } private static void setEntity(Script sc, Entity ent) { sc.setVar("entity", ent); } private final Scripts scripts; private final MinecraftServer server; public ScriptEvents(Scripts scripts, MinecraftServer server) { this.scripts = scripts; this.server = server; } private static void nothing(Script sc) { } private void handleEvent(Event e, String event, Consumer