mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-12 00:17:27 +00:00
Added more player events.
This commit is contained in:
1 parent
15bfbcdbd1
commit
feeef71b5a
6 files changed
+238
-10
No files matched your search
@@ -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
|
||||
|
||||
|
||||
Reference in new issue
Block a user