2021-09-30 00:56:49 -05:00
|
|
|
//
|
|
|
|
|
// Source code recreated from a .class file by IntelliJ IDEA
|
|
|
|
|
// (powered by Fernflower decompiler)
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
package noppes.npcs;
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
import cpw.mods.fml.common.eventhandler.Event;
|
2021-09-30 00:56:49 -05:00
|
|
|
import net.minecraft.entity.Entity;
|
|
|
|
|
import net.minecraft.entity.EntityLivingBase;
|
|
|
|
|
import net.minecraft.entity.item.EntityItem;
|
2021-10-12 02:57:32 -05:00
|
|
|
import net.minecraft.entity.item.EntityXPOrb;
|
2021-09-30 00:56:49 -05:00
|
|
|
import net.minecraft.entity.player.EntityPlayerMP;
|
|
|
|
|
import net.minecraft.inventory.Container;
|
2021-10-12 02:57:32 -05:00
|
|
|
import net.minecraft.item.ItemStack;
|
2021-09-30 00:56:49 -05:00
|
|
|
import net.minecraft.util.DamageSource;
|
2021-10-11 06:49:30 -05:00
|
|
|
import net.minecraft.world.WorldServer;
|
|
|
|
|
import net.minecraftforge.event.entity.EntityEvent;
|
2021-10-12 02:57:32 -05:00
|
|
|
import net.minecraftforge.event.entity.player.PlayerUseItemEvent;
|
2021-10-11 06:49:30 -05:00
|
|
|
import net.minecraftforge.event.world.WorldEvent;
|
|
|
|
|
import noppes.npcs.controllers.IScriptHandler;
|
|
|
|
|
import noppes.npcs.controllers.ScriptController;
|
|
|
|
|
import noppes.npcs.controllers.data.ForgeDataScript;
|
|
|
|
|
import noppes.npcs.controllers.data.PlayerDataScript;
|
2021-10-12 02:57:32 -05:00
|
|
|
import noppes.npcs.scripted.*;
|
2021-10-11 06:49:30 -05:00
|
|
|
import noppes.npcs.scripted.event.ForgeEvent;
|
2021-10-12 02:57:32 -05:00
|
|
|
import noppes.npcs.scripted.event.PlayerEvent;
|
2021-09-30 00:56:49 -05:00
|
|
|
import noppes.npcs.scripted.event.PlayerEvent.AttackEvent;
|
|
|
|
|
import noppes.npcs.scripted.event.PlayerEvent.ChatEvent;
|
|
|
|
|
import noppes.npcs.scripted.event.PlayerEvent.ContainerClosed;
|
|
|
|
|
import noppes.npcs.scripted.event.PlayerEvent.ContainerOpen;
|
|
|
|
|
import noppes.npcs.scripted.event.PlayerEvent.DamagedEntityEvent;
|
|
|
|
|
import noppes.npcs.scripted.event.PlayerEvent.KeyPressedEvent;
|
|
|
|
|
import noppes.npcs.scripted.event.PlayerEvent.LevelUpEvent;
|
|
|
|
|
import noppes.npcs.scripted.event.PlayerEvent.LoginEvent;
|
|
|
|
|
import noppes.npcs.scripted.event.PlayerEvent.LogoutEvent;
|
|
|
|
|
import noppes.npcs.scripted.event.PlayerEvent.PickUpEvent;
|
|
|
|
|
import noppes.npcs.scripted.event.PlayerEvent.TossEvent;
|
|
|
|
|
import noppes.npcs.scripted.wrapper.WrapperNpcAPI;
|
|
|
|
|
import noppes.npcs.constants.EnumScriptType;
|
2021-09-30 21:44:30 -05:00
|
|
|
import noppes.npcs.controllers.PlayerData;
|
2021-10-11 06:49:30 -05:00
|
|
|
import org.apache.commons.lang3.StringUtils;
|
2021-09-30 00:56:49 -05:00
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
2021-09-30 00:56:49 -05:00
|
|
|
public class EventHooks {
|
|
|
|
|
public EventHooks() {
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static void onForgeInit(IScriptHandler handler) {
|
2021-09-30 00:56:49 -05:00
|
|
|
noppes.npcs.scripted.event.ForgeEvent.InitEvent event = new noppes.npcs.scripted.event.ForgeEvent.InitEvent();
|
2021-10-11 06:49:30 -05:00
|
|
|
handler.callScript(EnumScriptType.INIT, event);
|
2021-09-30 00:56:49 -05:00
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static void onPlayerInit(PlayerDataScript handler) {
|
2021-09-30 00:56:49 -05:00
|
|
|
noppes.npcs.scripted.event.PlayerEvent.InitEvent event = new noppes.npcs.scripted.event.PlayerEvent.InitEvent(handler.getPlayer());
|
2021-10-11 06:49:30 -05:00
|
|
|
handler.callScript(EnumScriptType.INIT, event);
|
2021-09-30 00:56:49 -05:00
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static void onPlayerTick(PlayerDataScript handler) {
|
2021-09-30 00:56:49 -05:00
|
|
|
noppes.npcs.scripted.event.PlayerEvent.UpdateEvent event = new noppes.npcs.scripted.event.PlayerEvent.UpdateEvent(handler.getPlayer());
|
2021-10-11 06:49:30 -05:00
|
|
|
handler.callScript(EnumScriptType.TICK, event);
|
2021-09-30 00:56:49 -05:00
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static boolean onPlayerInteract(PlayerDataScript handler, noppes.npcs.scripted.event.PlayerEvent.InteractEvent event) {
|
2021-10-12 02:57:32 -05:00
|
|
|
handler.callScript(EnumScriptType.INTERACT, event, "target", event.target, "type", event.type);
|
|
|
|
|
return WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static boolean onStartUsingItem(PlayerDataScript handler, int duration, ItemStack item){
|
|
|
|
|
PlayerEvent.StartUsingItem event = new PlayerEvent.StartUsingItem(handler.getPlayer(), item, duration);
|
|
|
|
|
handler.callScript(EnumScriptType.START_USING_ITEM, event, "duration", event.duration, "item", event.item);
|
|
|
|
|
return WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static boolean onUsingItem(PlayerDataScript handler, int duration, ItemStack item){
|
|
|
|
|
PlayerEvent.UsingItem event = new PlayerEvent.UsingItem(handler.getPlayer(), item, duration);
|
|
|
|
|
handler.callScript(EnumScriptType.USING_ITEM, event, "duration", event.duration, "item", event.item);
|
2021-09-30 00:56:49 -05:00
|
|
|
return WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
public static boolean onStopUsingItem(PlayerDataScript handler, int duration, ItemStack item){
|
|
|
|
|
PlayerEvent.StopUsingItem event = new PlayerEvent.StopUsingItem(handler.getPlayer(), item, duration);
|
|
|
|
|
handler.callScript(EnumScriptType.STOP_USING_ITEM, event, "duration", event.duration, "item", event.item);
|
2021-09-30 00:56:49 -05:00
|
|
|
return WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
public static void onFinishUsingItem(PlayerDataScript handler, int duration, ItemStack item){
|
|
|
|
|
PlayerEvent.FinishUsingItem event = new PlayerEvent.FinishUsingItem(handler.getPlayer(), item, duration);
|
|
|
|
|
handler.callScript(EnumScriptType.FINISH_USING_ITEM, event, "duration", event.duration, "item", event.item);
|
|
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static boolean onPlayerDropItems(PlayerDataScript handler, ArrayList<EntityItem> entityItems) {
|
|
|
|
|
IItemStack[] items = new IItemStack[entityItems.size()];
|
|
|
|
|
for(int i = 0; i < entityItems.size(); i++){ items[i] = NpcAPI.Instance().getIItemStack(entityItems.get(i).getEntityItem()); }
|
|
|
|
|
|
|
|
|
|
TossEvent event = new TossEvent(handler.getPlayer(), items);
|
|
|
|
|
handler.callScript(EnumScriptType.DROP, event, "items", event.items);
|
2021-09-30 00:56:49 -05:00
|
|
|
return WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
public static void onPlayerPickupXP(PlayerDataScript handler, EntityXPOrb orb) {
|
|
|
|
|
PlayerEvent.PickupXPEvent event = new PlayerEvent.PickupXPEvent(handler.getPlayer(), orb);
|
|
|
|
|
handler.callScript(EnumScriptType.PICKUP_XP, event, "amount", event.amount);
|
2021-09-30 00:56:49 -05:00
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static boolean onPlayerPickUp(PlayerDataScript handler, EntityItem entityItem) {
|
2021-10-15 09:17:31 -05:00
|
|
|
PickUpEvent event = new PickUpEvent(handler.getPlayer(), new ScriptItemStack(entityItem.getEntityItem()));//NpcAPI.Instance().getIItemStack(entityItem.getEntityItem()));
|
2021-10-12 02:57:32 -05:00
|
|
|
handler.callScript(EnumScriptType.PICKUP, event, "item", event.item);
|
2021-09-30 00:56:49 -05:00
|
|
|
return WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static void onPlayerContainerOpen(PlayerDataScript handler, Container container) {
|
2021-09-30 00:56:49 -05:00
|
|
|
ContainerOpen event = new ContainerOpen(handler.getPlayer(), NpcAPI.Instance().getIContainer(container));
|
2021-10-12 02:57:32 -05:00
|
|
|
handler.callScript(EnumScriptType.CONTAINER_OPEN, event, "container", event.container);
|
2021-09-30 00:56:49 -05:00
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static void onPlayerDeath(PlayerDataScript handler, DamageSource source, Entity entity) {
|
2021-09-30 00:56:49 -05:00
|
|
|
noppes.npcs.scripted.event.PlayerEvent.DiedEvent event = new noppes.npcs.scripted.event.PlayerEvent.DiedEvent(handler.getPlayer(), source, entity);
|
2021-10-12 02:57:32 -05:00
|
|
|
handler.callScript(EnumScriptType.KILLED, event, "source", event.source, "damageSource", event.damageSource, "type", event.type);
|
2021-09-30 00:56:49 -05:00
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static void onPlayerKills(PlayerDataScript handler, EntityLivingBase entityLiving) {
|
2021-09-30 00:56:49 -05:00
|
|
|
noppes.npcs.scripted.event.PlayerEvent.KilledEntityEvent event = new noppes.npcs.scripted.event.PlayerEvent.KilledEntityEvent(handler.getPlayer(), entityLiving);
|
2021-10-12 02:57:32 -05:00
|
|
|
handler.callScript(EnumScriptType.KILLS, event, "entity", event.entity);
|
2021-09-30 00:56:49 -05:00
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static boolean onPlayerDamaged(PlayerDataScript handler, noppes.npcs.scripted.event.PlayerEvent.DamagedEvent event) {
|
2021-10-12 02:57:32 -05:00
|
|
|
handler.callScript(EnumScriptType.DAMAGED, event, "damage", event.damage, "source", event.source, "damageSource", event.damageSource);
|
2021-09-30 00:56:49 -05:00
|
|
|
return WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-15 09:17:31 -05:00
|
|
|
public static boolean onPlayerLightning(PlayerDataScript handler) {
|
|
|
|
|
PlayerEvent.LightningEvent event = new PlayerEvent.LightningEvent(handler.getPlayer());
|
|
|
|
|
handler.callScript(EnumScriptType.LIGHTNING, event);
|
|
|
|
|
return WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static boolean onPlayerSound(PlayerDataScript handler, String name, float pitch, float volume) {
|
|
|
|
|
PlayerEvent.SoundEvent event = new PlayerEvent.SoundEvent(handler.getPlayer(), name, pitch, volume);
|
|
|
|
|
handler.callScript(EnumScriptType.PLAYSOUND, event, "name", name, "pitch", pitch, "volume", volume);
|
|
|
|
|
return WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
public static void onPlayerFall(PlayerDataScript handler, float distance) {
|
|
|
|
|
PlayerEvent.FallEvent event = new PlayerEvent.FallEvent(handler.getPlayer(),distance);
|
|
|
|
|
handler.callScript(EnumScriptType.FALL, event, "distance", event.distance);
|
|
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static void onPlayerLogin(PlayerDataScript handler) {
|
2021-09-30 00:56:49 -05:00
|
|
|
LoginEvent event = new LoginEvent(handler.getPlayer());
|
2021-10-11 06:49:30 -05:00
|
|
|
handler.callScript(EnumScriptType.LOGIN, event);
|
2021-09-30 00:56:49 -05:00
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-15 09:17:31 -05:00
|
|
|
|
|
|
|
|
public static void onPlayerRespawn(PlayerDataScript handler) {
|
|
|
|
|
PlayerEvent.RespawnEvent event = new PlayerEvent.RespawnEvent(handler.getPlayer());
|
|
|
|
|
handler.callScript(EnumScriptType.RESPAWN, event);
|
|
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static void onPlayerLogout(PlayerDataScript handler) {
|
2021-09-30 00:56:49 -05:00
|
|
|
LogoutEvent event = new LogoutEvent(handler.getPlayer());
|
2021-10-11 06:49:30 -05:00
|
|
|
handler.callScript(EnumScriptType.LOGOUT, event);
|
2021-09-30 00:56:49 -05:00
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static void onPlayerChat(PlayerDataScript handler, ChatEvent event) {
|
|
|
|
|
handler.callScript(EnumScriptType.CHAT, event, "message", event.message);
|
2021-09-30 00:56:49 -05:00
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static boolean onPlayerRanged(PlayerDataScript handler, noppes.npcs.scripted.event.PlayerEvent.RangedLaunchedEvent event) {
|
2021-10-12 02:57:32 -05:00
|
|
|
handler.callScript(EnumScriptType.RANGED_LAUNCHED, event, "bow", event.bow, "charge", event.charge);
|
2021-09-30 00:56:49 -05:00
|
|
|
return WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static boolean onPlayerDamagedEntity(PlayerDataScript handler, DamagedEntityEvent event) {
|
2021-10-12 02:57:32 -05:00
|
|
|
handler.callScript(EnumScriptType.DAMAGED_ENTITY, event, "target", event.target, "damage", event.damage, "damageSource", event.damageSource, "");
|
2021-09-30 00:56:49 -05:00
|
|
|
return WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-15 09:17:31 -05:00
|
|
|
public static void onPlayerChangeDim(PlayerDataScript handler, int fromDim, int toDim) {
|
|
|
|
|
PlayerEvent.ChangedDimension event = new PlayerEvent.ChangedDimension(handler.getPlayer(), fromDim, toDim);
|
|
|
|
|
handler.callScript(EnumScriptType.CHANGED_DIM, event, "fromDim", event.fromDim, "toDim", event.toDim);
|
|
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
public static void onPlayerMouseClicked(EntityPlayerMP player, int button, int mouseWheel) {
|
|
|
|
|
PlayerDataScript handler = PlayerData.get(player).scriptData;
|
|
|
|
|
PlayerEvent.MouseClickedEvent event = new PlayerEvent.MouseClickedEvent(handler.getPlayer(), button, mouseWheel);
|
|
|
|
|
handler.callScript(EnumScriptType.MOUSE_CLICKED, event, "button", event.button, "mouseWheel", event.mouseWheel);
|
|
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-30 00:56:49 -05:00
|
|
|
public static void onPlayerKeyPressed(EntityPlayerMP player, int button, boolean isCtrlPressed, boolean isShiftPressed, boolean isAltPressed, boolean isMetaPressed) {
|
2021-10-11 06:49:30 -05:00
|
|
|
PlayerDataScript handler = PlayerData.get(player).scriptData;
|
2021-09-30 00:56:49 -05:00
|
|
|
KeyPressedEvent event = new KeyPressedEvent(handler.getPlayer(), button, isCtrlPressed, isAltPressed, isShiftPressed, isMetaPressed);
|
2021-10-11 07:16:10 -05:00
|
|
|
handler.callScript(EnumScriptType.KEY_PRESSED, event, "key", button, "isCtrlPressed", isCtrlPressed, "isAltPressed", isAltPressed, "isShiftPressed", isShiftPressed, "isMetaPressed", isMetaPressed);
|
2021-09-30 00:56:49 -05:00
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
2021-10-11 06:49:30 -05:00
|
|
|
|
|
|
|
|
public static void onPlayerTimer(PlayerData data, int id) {
|
|
|
|
|
PlayerDataScript handler = data.scriptData;
|
|
|
|
|
noppes.npcs.scripted.event.PlayerEvent.TimerEvent event = new noppes.npcs.scripted.event.PlayerEvent.TimerEvent(handler.getPlayer(), id);
|
|
|
|
|
handler.callScript(EnumScriptType.TIMER, event);
|
|
|
|
|
WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
public static boolean onPlayerBreak(PlayerDataScript handler, PlayerEvent.BreakEvent event) {
|
|
|
|
|
handler.callScript(EnumScriptType.BREAK, event, "block", event.block, "xp", event.exp);
|
|
|
|
|
return WrapperNpcAPI.EVENT_BUS.post(event);
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
public static void onForgeEntityEvent(EntityEvent event) {
|
|
|
|
|
IEntity e = NpcAPI.Instance().getIEntity(event.entity);
|
|
|
|
|
onForgeEvent(new noppes.npcs.scripted.event.ForgeEvent.EntityEvent(event, e), event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void onForgeEvent(ForgeEvent ev, Event event) {
|
|
|
|
|
ForgeDataScript data = ScriptController.Instance.forgeScripts;
|
|
|
|
|
if(data.isEnabled()) {
|
|
|
|
|
String eventName = event.getClass().getName();
|
|
|
|
|
int i = eventName.lastIndexOf(".");
|
|
|
|
|
eventName = StringUtils.uncapitalize(eventName.substring(i + 1).replace("$", ""));
|
|
|
|
|
if(event.isCancelable()) {
|
|
|
|
|
ev.setCanceled(event.isCanceled());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
data.callScript(eventName, event);
|
|
|
|
|
WrapperNpcAPI.EVENT_BUS.post(ev);
|
|
|
|
|
if(event.isCancelable()) {
|
|
|
|
|
event.setCanceled(ev.isCanceled());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void onForgeWorldEvent(WorldEvent event) {
|
|
|
|
|
if(ScriptController.Instance.forgeScripts.isEnabled()) {
|
|
|
|
|
IWorld e = NpcAPI.Instance().getIWorld((WorldServer)event.world);
|
|
|
|
|
onForgeEvent(new noppes.npcs.scripted.event.ForgeEvent.WorldEvent(event, e), event);
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-09-30 00:56:49 -05:00
|
|
|
}
|