2021-10-11 06:49:30 -05:00
|
|
|
//
|
|
|
|
|
// Source code recreated from a .class file by IntelliJ IDEA
|
|
|
|
|
// (powered by Fernflower decompiler)
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
package noppes.npcs;
|
|
|
|
|
|
|
|
|
|
import cpw.mods.fml.common.eventhandler.EventPriority;
|
|
|
|
|
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
|
|
|
|
import cpw.mods.fml.common.gameevent.PlayerEvent;
|
|
|
|
|
import cpw.mods.fml.common.gameevent.TickEvent;
|
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
2021-10-12 02:57:32 -05:00
|
|
|
import net.minecraft.entity.Entity;
|
2021-10-11 06:49:30 -05:00
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
2022-05-27 14:32:24 -05:00
|
|
|
import net.minecraft.entity.player.EntityPlayerMP;
|
2021-12-03 18:17:52 -06:00
|
|
|
import net.minecraft.inventory.ContainerPlayer;
|
2022-06-15 03:48:32 -05:00
|
|
|
import net.minecraft.server.MinecraftServer;
|
2021-10-11 06:49:30 -05:00
|
|
|
import net.minecraft.util.ChatComponentTranslation;
|
2021-10-12 02:57:32 -05:00
|
|
|
import net.minecraft.util.math.BlockPos;
|
2021-10-11 06:49:30 -05:00
|
|
|
import net.minecraft.world.WorldServer;
|
|
|
|
|
import net.minecraftforge.common.ForgeHooks;
|
2021-10-15 09:17:31 -05:00
|
|
|
import net.minecraftforge.event.entity.EntityStruckByLightningEvent;
|
|
|
|
|
import net.minecraftforge.event.entity.PlaySoundAtEntityEvent;
|
2021-10-18 22:01:15 -05:00
|
|
|
import net.minecraftforge.event.entity.item.ItemTossEvent;
|
2021-10-12 02:57:32 -05:00
|
|
|
import net.minecraftforge.event.entity.living.LivingDeathEvent;
|
2021-10-18 20:50:54 -05:00
|
|
|
import net.minecraftforge.event.entity.living.LivingEvent;
|
2021-10-12 02:57:32 -05:00
|
|
|
import net.minecraftforge.event.entity.living.LivingFallEvent;
|
|
|
|
|
import net.minecraftforge.event.entity.living.LivingHurtEvent;
|
|
|
|
|
import net.minecraftforge.event.entity.player.*;
|
2021-12-17 08:25:02 -06:00
|
|
|
import net.minecraftforge.event.world.*;
|
2022-06-12 05:52:07 -05:00
|
|
|
import noppes.npcs.constants.EnumPacketClient;
|
2022-02-02 07:18:33 -06:00
|
|
|
import noppes.npcs.constants.EnumQuestType;
|
|
|
|
|
import noppes.npcs.controllers.*;
|
2022-05-24 01:07:50 -05:00
|
|
|
import noppes.npcs.controllers.data.PlayerData;
|
2021-10-11 06:49:30 -05:00
|
|
|
import noppes.npcs.controllers.data.PlayerDataScript;
|
2022-05-24 01:07:50 -05:00
|
|
|
import noppes.npcs.controllers.data.PlayerQuestData;
|
2022-05-27 14:32:24 -05:00
|
|
|
import noppes.npcs.controllers.data.Quest;
|
2021-10-11 06:49:30 -05:00
|
|
|
import noppes.npcs.entity.EntityNPCInterface;
|
2022-05-11 22:08:31 -05:00
|
|
|
import noppes.npcs.scripted.NpcAPI;
|
|
|
|
|
import noppes.npcs.scripted.interfaces.entity.IPlayer;
|
2021-10-11 06:49:30 -05:00
|
|
|
|
|
|
|
|
public class ScriptPlayerEventHandler {
|
|
|
|
|
public ScriptPlayerEventHandler() {
|
|
|
|
|
}
|
|
|
|
|
@SubscribeEvent
|
|
|
|
|
public void onServerTick(TickEvent.PlayerTickEvent event) {
|
2022-06-12 05:52:07 -05:00
|
|
|
if (event.player == null || event.player.worldObj == null)
|
2022-01-15 22:49:07 -06:00
|
|
|
return;
|
|
|
|
|
|
2022-06-12 05:52:07 -05:00
|
|
|
if (event.side == Side.SERVER && event.phase == TickEvent.Phase.START) {
|
2021-10-11 06:49:30 -05:00
|
|
|
EntityPlayer player = event.player;
|
2021-12-16 21:54:05 -06:00
|
|
|
|
2022-06-12 05:52:07 -05:00
|
|
|
if (player.ticksExisted%10 == 0) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(player);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerTick(handler, scriptPlayer);
|
|
|
|
|
}
|
2021-12-16 04:05:05 -06:00
|
|
|
|
2022-06-12 05:52:07 -05:00
|
|
|
if (PlayerDataController.instance != null) {
|
|
|
|
|
PlayerData playerData = PlayerDataController.instance.getPlayerData(player);
|
|
|
|
|
|
|
|
|
|
if (playerData.timers.size() > 0) {
|
2022-02-02 07:18:33 -06:00
|
|
|
playerData.timers.update();
|
2022-06-12 05:52:07 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (playerData.questData.trackedQuest != null && !playerData.questData.activeQuests.containsKey(playerData.questData.trackedQuest.getId())) {
|
|
|
|
|
PlayerDataController.instance.getPlayerData(player).questData.trackedQuest = null;
|
|
|
|
|
Server.sendData((EntityPlayerMP) player, EnumPacketClient.OVERLAY_QUEST_TRACKING);
|
|
|
|
|
}
|
2022-06-15 05:03:31 -05:00
|
|
|
|
2022-06-15 05:04:17 -05:00
|
|
|
if (player.ticksExisted%20 == 0 && !PlayerDataController.instance.getPlayerData(player).skinOverlays.overlayList.isEmpty()) {
|
2022-06-15 05:03:31 -05:00
|
|
|
PlayerDataController.instance.getPlayerData(player).skinOverlays.updateClient();
|
|
|
|
|
}
|
2022-02-02 07:18:33 -06:00
|
|
|
}
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
2021-10-12 02:57:32 -05:00
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
@SubscribeEvent
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(EntityInteractEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(!event.entityPlayer.worldObj.isRemote && event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
|
|
|
|
noppes.npcs.scripted.event.PlayerEvent.InteractEvent ev = new noppes.npcs.scripted.event.PlayerEvent.InteractEvent(scriptPlayer, 1, NpcAPI.Instance().getIEntity(event.target));
|
2021-10-12 02:57:32 -05:00
|
|
|
event.setCanceled(EventHooks.onPlayerInteract(handler, ev));
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-18 20:50:54 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(ArrowNockEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-18 20:50:54 -05:00
|
|
|
if(!event.entityPlayer.worldObj.isRemote && event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
noppes.npcs.scripted.event.PlayerEvent.RangedChargeEvent ev = new noppes.npcs.scripted.event.PlayerEvent.RangedChargeEvent(scriptPlayer);
|
2021-10-18 20:50:54 -05:00
|
|
|
EventHooks.onPlayerBowCharge(handler, ev);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
@SubscribeEvent
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(ArrowLooseEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(!event.entityPlayer.worldObj.isRemote && event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
noppes.npcs.scripted.event.PlayerEvent.RangedLaunchedEvent ev = new noppes.npcs.scripted.event.PlayerEvent.RangedLaunchedEvent(scriptPlayer, event.bow, event.charge);
|
2021-10-12 02:57:32 -05:00
|
|
|
EventHooks.onPlayerRanged(handler, ev);
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(BlockEvent.BreakEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.getPlayer() == null || event.getPlayer().worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(!event.getPlayer().worldObj.isRemote && event.world instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.getPlayer());
|
2021-12-18 08:34:30 -06:00
|
|
|
noppes.npcs.scripted.event.PlayerEvent.BreakEvent ev = new noppes.npcs.scripted.event.PlayerEvent.BreakEvent(scriptPlayer, NpcAPI.Instance().getIBlock(event.world, new BlockPos(event.x,event.y,event.z)), event.getExpToDrop());
|
2021-10-12 02:57:32 -05:00
|
|
|
event.setCanceled(EventHooks.onPlayerBreak(handler, ev));
|
|
|
|
|
event.setExpToDrop(ev.exp);
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(PlayerUseItemEvent.Start event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
event.setCanceled(EventHooks.onStartUsingItem(handler, scriptPlayer, event.duration, event.item));
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@SubscribeEvent
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(PlayerUseItemEvent.Tick event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
event.setCanceled(EventHooks.onUsingItem(handler, scriptPlayer, event.duration, event.item));
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@SubscribeEvent
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(PlayerUseItemEvent.Stop event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
event.setCanceled(EventHooks.onStopUsingItem(handler, scriptPlayer, event.duration, event.item));
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@SubscribeEvent
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(PlayerUseItemEvent.Finish event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onFinishUsingItem(handler, scriptPlayer, event.duration, event.item);
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(PlayerDropsEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
event.setCanceled(EventHooks.onPlayerDropItems(handler, scriptPlayer, event.drops));
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(PlayerPickupXpEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerPickupXP(handler, scriptPlayer, event.orb);
|
2021-10-12 02:57:32 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-15 09:17:31 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(PlayerEvent.PlayerChangedDimensionEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.player == null || event.player.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-15 09:17:31 -05:00
|
|
|
if(event.player.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.player);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerChangeDim(handler, scriptPlayer, event.fromDim, event.toDim);
|
2021-10-15 09:17:31 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(PlayerEvent.ItemPickupEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.player == null || event.player.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.player.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.player);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerPickUp(handler, scriptPlayer, event.pickedUp);
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(PlayerOpenContainerEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-12-03 18:17:52 -06:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer && !(event.entityPlayer.openContainer instanceof ContainerPlayer)) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerContainerOpen(handler, scriptPlayer, event.entityPlayer.openContainer);
|
2021-10-12 02:57:32 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-18 20:50:54 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(UseHoeEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-18 20:50:54 -05:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerUseHoe(handler, scriptPlayer, event.current, event.x, event.y, event.z);
|
2021-10-18 20:50:54 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(PlayerSleepInBedEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-18 20:50:54 -05:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerSleep(handler, scriptPlayer, event.x, event.y, event.z);
|
2021-10-18 20:50:54 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(PlayerWakeUpEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-18 20:50:54 -05:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerWakeUp(handler, scriptPlayer, event.setSpawn);
|
2021-10-18 20:50:54 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(FillBucketEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-18 20:50:54 -05:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerFillBucket(handler, scriptPlayer, event.current, event.result);
|
2021-10-18 20:50:54 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(BonemealEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-18 20:50:54 -05:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerBonemeal(handler, scriptPlayer, event.x, event.y, event.z, event.world);
|
2021-10-18 20:50:54 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(AchievementEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityPlayer == null || event.entityPlayer.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-18 20:50:54 -05:00
|
|
|
if(event.entityPlayer.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerAchievement(handler, scriptPlayer, CustomNpcs.proxy.getAchievementDesc(event.achievement));
|
2021-10-18 20:50:54 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-18 22:01:15 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(ItemTossEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.player == null || event.player.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-18 22:01:15 -05:00
|
|
|
if(event.player.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.player);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerToss(handler, scriptPlayer, event.entityItem);
|
2021-10-18 22:01:15 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(LivingFallEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityLiving == null || event.entityLiving.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.entityLiving.worldObj instanceof WorldServer) {
|
|
|
|
|
if (event.entityLiving instanceof EntityPlayer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityLiving);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerFall(handler, scriptPlayer, event.distance);
|
2021-10-12 02:57:32 -05:00
|
|
|
}
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-18 20:50:54 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(LivingEvent.LivingJumpEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityLiving == null || event.entityLiving.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-18 20:50:54 -05:00
|
|
|
if(event.entityLiving.worldObj instanceof WorldServer) {
|
|
|
|
|
if (event.entityLiving instanceof EntityPlayer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityLiving);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerJump(handler, scriptPlayer);
|
2021-10-18 20:50:54 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-15 09:17:31 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(EntityStruckByLightningEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entity == null || event.entity.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-15 09:17:31 -05:00
|
|
|
if(event.entity.worldObj instanceof WorldServer) {
|
|
|
|
|
if (event.entity instanceof EntityPlayer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entity);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerLightning(handler, scriptPlayer);
|
2021-10-15 09:17:31 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(PlaySoundAtEntityEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entity == null || event.entity.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-15 09:17:31 -05:00
|
|
|
if(event.entity.worldObj instanceof WorldServer) {
|
|
|
|
|
if (event.entity instanceof EntityPlayer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entity);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerSound(handler,scriptPlayer,event.name,event.pitch,event.volume);
|
2021-10-15 09:17:31 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(LivingDeathEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityLiving == null || event.entityLiving.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.entityLiving.worldObj instanceof WorldServer) {
|
|
|
|
|
Entity source = NoppesUtilServer.GetDamageSourcee(event.source);
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.entityLiving instanceof EntityPlayer) {
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.entityLiving);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerDeath(handler,scriptPlayer, event.source, source);
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(source instanceof EntityPlayer) {
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.source.getEntity());
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerKills(handler,scriptPlayer, event.entityLiving);
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(LivingHurtEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.entityLiving == null || event.entityLiving.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.entityLiving.worldObj instanceof WorldServer) {
|
|
|
|
|
Entity source = NoppesUtilServer.GetDamageSourcee(event.source);
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.entityLiving instanceof EntityPlayer) {
|
2022-05-11 22:08:31 -05:00
|
|
|
noppes.npcs.scripted.event.PlayerEvent.DamagedEvent pevent = new noppes.npcs.scripted.event.PlayerEvent.DamagedEvent((IPlayer)NpcAPI.Instance().getIEntity((EntityPlayer)event.entityLiving), source, event.ammount, event.source);
|
2021-10-11 06:49:30 -05:00
|
|
|
event.setCanceled(EventHooks.onPlayerDamaged(handler, pevent));
|
2021-10-12 02:57:32 -05:00
|
|
|
event.ammount = pevent.damage;
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(source instanceof EntityPlayer) {
|
2022-05-11 22:08:31 -05:00
|
|
|
noppes.npcs.scripted.event.PlayerEvent.DamagedEntityEvent pevent1 = new noppes.npcs.scripted.event.PlayerEvent.DamagedEntityEvent((IPlayer)NpcAPI.Instance().getIEntity((EntityPlayer)event.source.getEntity()), event.entityLiving, event.ammount, event.source);
|
2021-10-11 06:49:30 -05:00
|
|
|
event.setCanceled(EventHooks.onPlayerDamagedEntity(handler, pevent1));
|
2021-10-12 02:57:32 -05:00
|
|
|
event.ammount = pevent1.damage;
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-15 09:17:31 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void invoke(PlayerEvent.PlayerRespawnEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.player == null || event.player.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-15 09:17:31 -05:00
|
|
|
if(event.player.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.player);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerRespawn(handler, scriptPlayer);
|
2021-10-15 09:17:31 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-11 06:49:30 -05:00
|
|
|
@SubscribeEvent
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(PlayerEvent.PlayerLoggedInEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.player == null || event.player.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.player.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.player);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerLogin(handler, scriptPlayer);
|
2022-05-27 14:32:24 -05:00
|
|
|
|
|
|
|
|
Quest quest = (Quest) PlayerDataController.instance.getPlayerData(event.player).questData.trackedQuest;
|
|
|
|
|
if (quest != null) {
|
2022-05-29 04:45:38 -05:00
|
|
|
NoppesUtilPlayer.sendTrackedQuestData((EntityPlayerMP) event.player, quest);
|
2022-05-27 14:32:24 -05:00
|
|
|
}
|
2022-06-15 01:38:51 -05:00
|
|
|
|
|
|
|
|
PlayerDataController.instance.getPlayerData(event.player).skinOverlays.updateClient();
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(PlayerEvent.PlayerLoggedOutEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.player == null || event.player.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.player.worldObj instanceof WorldServer) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.player);
|
2021-12-18 08:34:30 -06:00
|
|
|
EventHooks.onPlayerLogout(handler, scriptPlayer);
|
2021-10-11 06:49:30 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(
|
|
|
|
|
priority = EventPriority.HIGHEST
|
|
|
|
|
)
|
2021-10-12 02:57:32 -05:00
|
|
|
public void invoke(net.minecraftforge.event.ServerChatEvent event) {
|
2022-01-15 22:49:07 -06:00
|
|
|
if(event.player == null || event.player.worldObj == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2021-10-12 02:57:32 -05:00
|
|
|
if(event.player.worldObj instanceof WorldServer && !event.player.equals(EntityNPCInterface.chateventPlayer)) {
|
2021-12-18 08:34:30 -06:00
|
|
|
PlayerDataScript handler = ScriptController.Instance.playerScripts;
|
2022-05-11 22:08:31 -05:00
|
|
|
IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.player);
|
2021-10-11 06:49:30 -05:00
|
|
|
String message = event.message;
|
2021-12-18 08:34:30 -06:00
|
|
|
noppes.npcs.scripted.event.PlayerEvent.ChatEvent ev = new noppes.npcs.scripted.event.PlayerEvent.ChatEvent(scriptPlayer, event.message);
|
2021-10-11 06:49:30 -05:00
|
|
|
EventHooks.onPlayerChat(handler, ev);
|
|
|
|
|
event.setCanceled(ev.isCanceled());
|
|
|
|
|
if(!message.equals(ev.message)) {
|
|
|
|
|
ChatComponentTranslation chat = new ChatComponentTranslation("", new Object[0]);
|
|
|
|
|
chat.appendSibling(ForgeHooks.newChatWithLinks(ev.message));
|
|
|
|
|
event.component = chat;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-10-19 02:49:46 -05:00
|
|
|
}
|