Added more player events.

This commit is contained in:
luisc committed 2021-10-18 20:50:54 -05:00
1 parent 15bfbcdbd1
commit feeef71b5a
6 files changed
+238 -10

No files matched your search

+48
View File
@@ -6,6 +6,7 @@
package noppes.npcs;
import cpw.mods.fml.common.eventhandler.Event;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
@@ -14,6 +15,7 @@ import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer;
import net.minecraftforge.event.entity.EntityEvent;
import net.minecraftforge.event.world.WorldEvent;
@@ -113,6 +115,24 @@ public class EventHooks {
WrapperNpcAPI.EVENT_BUS.post(event);
}
public static void onPlayerUseHoe(PlayerDataScript handler, ItemStack hoe, int x, int y, int z) {
noppes.npcs.scripted.event.PlayerEvent.UseHoe event = new noppes.npcs.scripted.event.PlayerEvent.UseHoe(handler.getPlayer(), hoe, x, y, z);
handler.callScript(EnumScriptType.USE_HOE, event,"event", event);
WrapperNpcAPI.EVENT_BUS.post(event);
}
public static void onPlayerSleep(PlayerDataScript handler, int x, int y, int z) {
noppes.npcs.scripted.event.PlayerEvent.Sleep event = new noppes.npcs.scripted.event.PlayerEvent.Sleep(handler.getPlayer(), x, y, z);
handler.callScript(EnumScriptType.SLEEP, event,"event", event);
WrapperNpcAPI.EVENT_BUS.post(event);
}
public static void onPlayerWakeUp(PlayerDataScript handler, boolean setSpawn) {
noppes.npcs.scripted.event.PlayerEvent.WakeUp event = new noppes.npcs.scripted.event.PlayerEvent.WakeUp(handler.getPlayer(), setSpawn);
handler.callScript(EnumScriptType.WAKE_UP, event,"event", event);
WrapperNpcAPI.EVENT_BUS.post(event);
}
public static void onPlayerDeath(PlayerDataScript handler, DamageSource source, Entity entity) {
noppes.npcs.scripted.event.PlayerEvent.DiedEvent event = new noppes.npcs.scripted.event.PlayerEvent.DiedEvent(handler.getPlayer(), source, entity);
handler.callScript(EnumScriptType.KILLED, event,"event", event);
@@ -148,12 +168,35 @@ public class EventHooks {
WrapperNpcAPI.EVENT_BUS.post(event);
}
public static void onPlayerJump(PlayerDataScript handler) {
PlayerEvent.JumpEvent event = new PlayerEvent.JumpEvent(handler.getPlayer());
handler.callScript(EnumScriptType.JUMP, event,"event", event);
WrapperNpcAPI.EVENT_BUS.post(event);
}
public static void onPlayerLogin(PlayerDataScript handler) {
LoginEvent event = new LoginEvent(handler.getPlayer());
handler.callScript(EnumScriptType.LOGIN, event, "event", event);
WrapperNpcAPI.EVENT_BUS.post(event);
}
public static void onPlayerAchievement(PlayerDataScript handler, String description) {
PlayerEvent.Achievement event = new PlayerEvent.Achievement(handler.getPlayer(), description);
handler.callScript(EnumScriptType.ACHIEVEMENT, event, "event", event);
WrapperNpcAPI.EVENT_BUS.post(event);
}
public static void onPlayerFillBucket(PlayerDataScript handler, ItemStack current, ItemStack result) {
PlayerEvent.FillBucket event = new PlayerEvent.FillBucket(handler.getPlayer(), current, result);
handler.callScript(EnumScriptType.FILL_BUCKET, event, "event", event);
WrapperNpcAPI.EVENT_BUS.post(event);
}
public static void onPlayerBonemeal(PlayerDataScript handler, int x, int y, int z, World world) {
PlayerEvent.Bonemeal event = new PlayerEvent.Bonemeal(handler.getPlayer(), x, y, z, world);
handler.callScript(EnumScriptType.BONEMEAL, event, "event", event);
WrapperNpcAPI.EVENT_BUS.post(event);
}
public static void onPlayerRespawn(PlayerDataScript handler) {
PlayerEvent.RespawnEvent event = new PlayerEvent.RespawnEvent(handler.getPlayer());
@@ -172,6 +215,11 @@ public class EventHooks {
WrapperNpcAPI.EVENT_BUS.post(event);
}
public static boolean onPlayerBowCharge(PlayerDataScript handler, noppes.npcs.scripted.event.PlayerEvent.RangedChargeEvent event) {
handler.callScript(EnumScriptType.RANGED_CHARGE, event,"event", event);
return WrapperNpcAPI.EVENT_BUS.post(event);
}
public static boolean onPlayerRanged(PlayerDataScript handler, noppes.npcs.scripted.event.PlayerEvent.RangedLaunchedEvent event) {
handler.callScript(EnumScriptType.RANGED_LAUNCHED, event,"event", event);
return WrapperNpcAPI.EVENT_BUS.post(event);
@@ -37,6 +37,7 @@ import net.minecraftforge.event.entity.EntityEvent.EntityConstructing;
import net.minecraftforge.event.entity.EntityStruckByLightningEvent;
import net.minecraftforge.event.entity.PlaySoundAtEntityEvent;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.event.entity.living.LivingEvent;
import net.minecraftforge.event.entity.living.LivingFallEvent;
import net.minecraftforge.event.entity.living.LivingHurtEvent;
import net.minecraftforge.event.entity.player.*;
@@ -77,6 +78,15 @@ public class ScriptPlayerEventHandler {
}
}
@SubscribeEvent
public void invoke(ArrowNockEvent event) {
if(!event.entityPlayer.worldObj.isRemote && event.entityPlayer.worldObj instanceof WorldServer) {
PlayerDataScript handler = PlayerData.get(event.entityPlayer).scriptData;
noppes.npcs.scripted.event.PlayerEvent.RangedChargeEvent ev = new noppes.npcs.scripted.event.PlayerEvent.RangedChargeEvent(handler.getPlayer());
EventHooks.onPlayerBowCharge(handler, ev);
}
}
@SubscribeEvent
public void invoke(ArrowLooseEvent event) {
if(!event.entityPlayer.worldObj.isRemote && event.entityPlayer.worldObj instanceof WorldServer) {
@@ -165,6 +175,54 @@ public class ScriptPlayerEventHandler {
}
}
@SubscribeEvent
public void invoke(UseHoeEvent event) {
if(event.entityPlayer.worldObj instanceof WorldServer) {
PlayerDataScript handler = PlayerData.get(event.entityPlayer).scriptData;
EventHooks.onPlayerUseHoe(handler, event.current, event.x, event.y, event.z);
}
}
@SubscribeEvent
public void invoke(PlayerSleepInBedEvent event) {
if(event.entityPlayer.worldObj instanceof WorldServer) {
PlayerDataScript handler = PlayerData.get(event.entityPlayer).scriptData;
EventHooks.onPlayerSleep(handler, event.x, event.y, event.z);
}
}
@SubscribeEvent
public void invoke(PlayerWakeUpEvent event) {
if(event.entityPlayer.worldObj instanceof WorldServer) {
PlayerDataScript handler = PlayerData.get(event.entityPlayer).scriptData;
EventHooks.onPlayerWakeUp(handler, event.setSpawn);
}
}
@SubscribeEvent
public void invoke(FillBucketEvent event) {
if(event.entityPlayer.worldObj instanceof WorldServer) {
PlayerDataScript handler = PlayerData.get(event.entityPlayer).scriptData;
EventHooks.onPlayerFillBucket(handler, event.current, event.result);
}
}
@SubscribeEvent
public void invoke(BonemealEvent event) {
if(event.entityPlayer.worldObj instanceof WorldServer) {
PlayerDataScript handler = PlayerData.get(event.entityPlayer).scriptData;
EventHooks.onPlayerBonemeal(handler, event.x, event.y, event.z, event.world);
}
}
@SubscribeEvent
public void invoke(AchievementEvent event) {
if(event.entityPlayer.worldObj instanceof WorldServer) {
PlayerDataScript handler = PlayerData.get(event.entityPlayer).scriptData;
EventHooks.onPlayerAchievement(handler, event.achievement.getDescription());
}
}
@SubscribeEvent
public void invoke(LivingFallEvent event) {
if(event.entityLiving.worldObj instanceof WorldServer) {
@@ -176,6 +234,17 @@ public class ScriptPlayerEventHandler {
}
}
@SubscribeEvent
public void invoke(LivingEvent.LivingJumpEvent event) {
if(event.entityLiving.worldObj instanceof WorldServer) {
PlayerDataScript handler;
if (event.entityLiving instanceof EntityPlayer) {
handler = PlayerData.get((EntityPlayer)event.entityLiving).scriptData;
EventHooks.onPlayerJump(handler);
}
}
}
@SubscribeEvent
public void invoke(EntityStruckByLightningEvent event) {
if(event.entity.worldObj instanceof WorldServer) {
@@ -86,32 +86,39 @@ public class GuiScriptInterface extends GuiNPCInterface implements GuiYesNoCallb
hookList.add("playerscript.init");
hookList.add("playerscript.tick");
hookList.add("playerscript.interact");
hookList.add("playerscript.damagedEntity");
hookList.add("playerscript.damaged");
hookList.add("playerscript.killed");
hookList.add("playerscript.kills");
hookList.add("playerscript.chat");
hookList.add("playerscript.killed");
hookList.add("playerscript.drop");
hookList.add("playerscript.containerOpen");
hookList.add("playerscript.respawn");
hookList.add("playerscript.break");
hookList.add("playerscript.chat");
hookList.add("playerscript.login");
hookList.add("playerscript.logout");
hookList.add("playerscript.chat");
hookList.add("playerscript.damagedentity");
hookList.add("playerscript.keyPressed");
hookList.add("playerscript.mouseClicked");
hookList.add("playerscript.pickUp");
hookList.add("playerscript.rangedLaunched");
hookList.add("playerscript.pickupXP");
hookList.add("playerscript.rangedCharge");
hookList.add("playerscript.rangedLaunched");
hookList.add("playerscript.timer");
hookList.add("playerscript.startItem");
hookList.add("playerscript.usingItem");
hookList.add("playerscript.stopItem");
hookList.add("playerscript.finishItem");
hookList.add("playerscript.containerOpen");
hookList.add("playerscript.useHoe");
hookList.add("playerscript.bonemeal");
hookList.add("playerscript.fillBucket");
hookList.add("playerscript.jump");
hookList.add("playerscript.fall");
hookList.add("playerscript.wakeUp");
hookList.add("playerscript.sleep");
hookList.add("playerscript.playSound");
hookList.add("playerscript.lightning");
hookList.add("playerscript.break");
hookList.add("playerscript.changedDim");
hookList.add("playerscript.respawn");
hookList.add("playerscript.achievement");
addLabel(new GuiNpcLabel(0, "script.hooks", guiLeft + 4, guiTop + 5));
GuiCustomScroll hooks = new GuiCustomScroll(this, 1);
@@ -14,6 +14,7 @@ public enum EnumScriptType {
DIALOG_OPTION("dialogOption"),
TARGET_LOST("targetLost"),
ROLE("role"),
RANGED_CHARGE("rangedCharge"),
RANGED_LAUNCHED("rangedLaunched"),
CLICKED("clicked"),
FALLEN_UPON("fallenUpon"),
@@ -59,7 +60,14 @@ public enum EnumScriptType {
USING_ITEM("usingItem"),
STOP_USING_ITEM("stopItem"),
FINISH_USING_ITEM("finishItem"),
USE_HOE("useHoe"),
SLEEP("sleep"),
WAKE_UP("wakeUp"),
FILL_BUCKET("fillBucket"),
BONEMEAL("bonemeal"),
ACHIEVEMENT("achievement"),
FALL("fall"),
JUMP("jump"),
LIGHTNING("lightning"),
PLAYSOUND("playSound"),
RESPAWN("respawn"),
@@ -6,11 +6,14 @@
package noppes.npcs.scripted.event;
import cpw.mods.fml.common.eventhandler.Cancelable;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import noppes.npcs.scripted.*;
import noppes.npcs.scripted.entity.ScriptLivingBase;
import noppes.npcs.scripted.entity.ScriptPlayer;
@@ -162,6 +165,12 @@ public class PlayerEvent extends CustomNPCsEvent {
}
}
public static class JumpEvent extends PlayerEvent {
public JumpEvent(IPlayer player){
super(player);
}
}
public static class KilledEntityEvent extends PlayerEvent {
public final IEntityLivingBase entity;
@@ -341,4 +350,82 @@ public class PlayerEvent extends CustomNPCsEvent {
this.exp = exp;
}
}
public static class UseHoe extends PlayerEvent {
public final IItemStack hoe;
public final int x;
public final int y;
public final int z;
public UseHoe(IPlayer player, ItemStack item, int x, int y, int z) {
super(player);
this.hoe = new ScriptItemStack(item);
this.x = x;
this.y = y;
this.z = z;
}
}
public static class WakeUp extends PlayerEvent{
public final boolean setSpawn;
public WakeUp(IPlayer player, boolean setSpawn) {
super(player);
this.setSpawn = setSpawn;
}
}
public static class Sleep extends PlayerEvent {
public final int x;
public final int y;
public final int z;
public Sleep(ScriptPlayer player, int x, int y, int z) {
super(player);
this.x = x;
this.y = y;
this.z = z;
}
}
public static class Achievement extends PlayerEvent {
public final String description;
public Achievement(IPlayer player, String description) {
super(player);
this.description = description;
}
}
public static class FillBucket extends PlayerEvent {
public final IItemStack current;
public final IItemStack result;
public FillBucket(IPlayer player, ItemStack current, ItemStack result) {
super(player);
this.current = new ScriptItemStack(current);
this.result = new ScriptItemStack(result);
}
}
public static class Bonemeal extends PlayerEvent {
public final IBlock block;
public final int x;
public final int y;
public final int z;
public Bonemeal(IPlayer player, int x, int y, int z, World world) {
super(player);
this.block = API.getIBlock(world, x, y, z);
this.x = x;
this.y = y;
this.z = z;
}
}
public static class RangedChargeEvent extends PlayerEvent {
public RangedChargeEvent(ScriptPlayer player) {
super(player);
}
}
}
@@ -469,7 +469,7 @@ playerscript.break=Break
playerscript.chat=Chat
playerscript.containerclosed=Closed Container
playerscript.containerOpen=Open Container
playerscript.damagedentity=Damaged Entity
playerscript.damagedEntity=Damaged Entity
playerscript.damaged=Hurt
playerscript.killed=Killed
playerscript.factionupdate=Faction Updated
@@ -481,7 +481,8 @@ playerscript.levelUp=Level Up
playerscript.login=Login
playerscript.logout=Logout
playerscript.pickUp=Pickup
playerscript.rangedLaunched=Range Launched
playerscript.rangedCharge=Arrow Charge
playerscript.rangedLaunched=Arrow Launched
playerscript.drop=Drop Items
playerscript.tick=Update
playerscript.pickupXP=Pickup XP
@@ -494,8 +495,16 @@ playerscript.finishItem=Item Finish
playerscript.playSound=Play Sound
playerscript.lightning=Lightning Struck
playerscript.fall=Fall
playerscript.jump=Jump
playerscript.respawn=Respawn
playerscript.changedDim=Dimension Change
playerscript.useHoe=Use Hoe
playerscript.sleep=Sleep
playerscript.wakeUp=Wake Up
playerscript.fillBucket=Fill Bucket
playerscript.bonemeal=Bonemeal
playerscript.achievement=Achievement
forgescript.forgeInit=Init