mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-11 21:57:40 +00:00
Added command forge event
This commit is contained in:
1 parent
2743fa17d8
commit
c8f6a24baf
2 files changed
+79
-81
No files matched your search
@@ -49,7 +49,7 @@ public class ServerEventsHandler {
|
||||
|
||||
public static EntityVillager Merchant;
|
||||
public static Entity mounted;
|
||||
|
||||
|
||||
// private HashMap<String, Integer> exps = new HashMap<String, Integer>();
|
||||
//
|
||||
// @SubscribeEvent
|
||||
@@ -59,10 +59,10 @@ public class ServerEventsHandler {
|
||||
// EntityPlayer player = (EntityPlayer) event.entityLiving;
|
||||
// if(exps.containsKey(player.getCommandSenderName())){
|
||||
// int prevExp = exps.get(player.getCommandSenderName());
|
||||
// if(prevExp > player.experienceTotal){
|
||||
// if(prevExp > player.experienceTotal){
|
||||
// player.addChatMessage(new ChatComponentText("Omg exp was gotten:" + (player.experienceTotal - prevExp)));
|
||||
// }
|
||||
// else if(prevExp < player.experienceTotal){
|
||||
// else if(prevExp < player.experienceTotal){
|
||||
// player.addChatMessage(new ChatComponentText("Omg exp was lost:" + (prevExp - player.experienceTotal)));
|
||||
// }
|
||||
// }
|
||||
@@ -87,11 +87,11 @@ public class ServerEventsHandler {
|
||||
if(!isRemote && CustomNpcs.OpsOnly && !MinecraftServer.getServer().getConfigurationManager().func_152596_g(event.entityPlayer.getGameProfile())){
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(!isRemote && item.getItem() == CustomItems.soulstoneEmpty && event.target instanceof EntityLivingBase) {
|
||||
((ItemSoulstoneEmpty)item.getItem()).store((EntityLivingBase)event.target, item, event.entityPlayer);
|
||||
((ItemSoulstoneEmpty)item.getItem()).store((EntityLivingBase)event.target, item, event.entityPlayer);
|
||||
}
|
||||
|
||||
|
||||
if(item.getItem() == CustomItems.wand && npcInteracted && !isRemote){
|
||||
if (!CustomNpcsPermissions.Instance.hasPermission(event.entityPlayer, CustomNpcsPermissions.NPC_GUI)){
|
||||
return;
|
||||
@@ -113,43 +113,43 @@ public class ServerEventsHandler {
|
||||
else if(item.getItem() == CustomItems.scripter && !isRemote && npcInteracted){
|
||||
if(!CustomNpcsPermissions.Instance.hasPermission(event.entityPlayer, CustomNpcsPermissions.NPC_GUI))
|
||||
return;
|
||||
NoppesUtilServer.setEditingNpc(event.entityPlayer, (EntityNPCInterface)event.target);
|
||||
NoppesUtilServer.setEditingNpc(event.entityPlayer, (EntityNPCInterface)event.target);
|
||||
event.setCanceled(true);
|
||||
Server.sendData((EntityPlayerMP)event.entityPlayer, EnumPacketClient.GUI, EnumGuiType.Script.ordinal());
|
||||
Server.sendData((EntityPlayerMP)event.entityPlayer, EnumPacketClient.GUI, EnumGuiType.Script.ordinal());
|
||||
}
|
||||
else if(item.getItem() == CustomItems.mount){
|
||||
if(!CustomNpcsPermissions.Instance.hasPermission(event.entityPlayer, CustomNpcsPermissions.TOOL_MOUNTER))
|
||||
return;
|
||||
event.setCanceled(true);
|
||||
mounted = event.target;
|
||||
if(isRemote)
|
||||
CustomNpcs.proxy.openGui(MathHelper.floor_double(mounted.posX), MathHelper.floor_double(mounted.posY), MathHelper.floor_double(mounted.posZ), EnumGuiType.MobSpawnerMounter, event.entityPlayer);
|
||||
mounted = event.target;
|
||||
if(isRemote)
|
||||
CustomNpcs.proxy.openGui(MathHelper.floor_double(mounted.posX), MathHelper.floor_double(mounted.posY), MathHelper.floor_double(mounted.posZ), EnumGuiType.MobSpawnerMounter, event.entityPlayer);
|
||||
}
|
||||
else if(item.getItem() == CustomItems.wand && event.target instanceof EntityVillager){
|
||||
if(!CustomNpcsPermissions.Instance.hasPermission(event.entityPlayer, CustomNpcsPermissions.EDIT_VILLAGER))
|
||||
return;
|
||||
event.setCanceled(true);
|
||||
Merchant = (EntityVillager)event.target;
|
||||
|
||||
|
||||
if(!isRemote){
|
||||
EntityPlayerMP player = (EntityPlayerMP) event.entityPlayer;
|
||||
player.openGui(CustomNpcs.instance, EnumGuiType.MerchantAdd.ordinal(), player.worldObj, 0, 0, 0);
|
||||
MerchantRecipeList merchantrecipelist = Merchant.getRecipes(player);
|
||||
|
||||
if (merchantrecipelist != null)
|
||||
{
|
||||
Server.sendData(player, EnumPacketClient.VILLAGER_LIST, merchantrecipelist);
|
||||
}
|
||||
MerchantRecipeList merchantrecipelist = Merchant.getRecipes(player);
|
||||
|
||||
if (merchantrecipelist != null)
|
||||
{
|
||||
Server.sendData(player, EnumPacketClient.VILLAGER_LIST, merchantrecipelist);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@SubscribeEvent
|
||||
public void invoke(LivingHurtEvent event) {
|
||||
if(!(event.entityLiving instanceof EntityPlayer))
|
||||
return;
|
||||
|
||||
|
||||
EntityPlayer player = (EntityPlayer) event.entityLiving;
|
||||
if(event.source.isUnblockable() || event.source.isFireDamage())
|
||||
return;
|
||||
@@ -161,7 +161,7 @@ public class ServerEventsHandler {
|
||||
if(((ItemShield)item.getItem()).material.getDamageVsEntity() < player.getRNG().nextInt(9))
|
||||
return;
|
||||
float damage = item.getItemDamage() + event.ammount;
|
||||
|
||||
|
||||
item.damageItem((int) event.ammount, player);
|
||||
|
||||
if(damage > item.getMaxDamage())
|
||||
@@ -171,7 +171,7 @@ public class ServerEventsHandler {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@SubscribeEvent
|
||||
public void invoke(PlayerInteractEvent event) {
|
||||
EntityPlayer player = event.entityPlayer;
|
||||
@@ -179,50 +179,50 @@ public class ServerEventsHandler {
|
||||
if(event.action == Action.LEFT_CLICK_BLOCK && player.getHeldItem() != null && player.getHeldItem().getItem() == CustomItems.teleporter){
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
|
||||
if(block == Blocks.crafting_table && event.action == Action.RIGHT_CLICK_BLOCK && !player.worldObj.isRemote){
|
||||
RecipeController controller = RecipeController.instance;
|
||||
NBTTagList list = new NBTTagList();
|
||||
int i = 0;
|
||||
for(RecipeCarpentry recipe : controller.globalRecipes.values()){
|
||||
list.appendTag(recipe.writeNBT());
|
||||
i++;
|
||||
if(i % 10 == 0){
|
||||
NBTTagCompound compound = new NBTTagCompound();
|
||||
compound.setTag("recipes", list);
|
||||
Server.sendData((EntityPlayerMP)player, EnumPacketClient.SYNCRECIPES_ADD, compound);
|
||||
list = new NBTTagList();
|
||||
}
|
||||
}
|
||||
NBTTagList list = new NBTTagList();
|
||||
int i = 0;
|
||||
for(RecipeCarpentry recipe : controller.globalRecipes.values()){
|
||||
list.appendTag(recipe.writeNBT());
|
||||
i++;
|
||||
if(i % 10 == 0){
|
||||
NBTTagCompound compound = new NBTTagCompound();
|
||||
compound.setTag("recipes", list);
|
||||
Server.sendData((EntityPlayerMP)player, EnumPacketClient.SYNCRECIPES_ADD, compound);
|
||||
list = new NBTTagList();
|
||||
}
|
||||
}
|
||||
|
||||
if(i % 10 != 0){
|
||||
NBTTagCompound compound = new NBTTagCompound();
|
||||
compound.setTag("recipes", list);
|
||||
Server.sendData((EntityPlayerMP)player, EnumPacketClient.SYNCRECIPES_ADD, compound);
|
||||
}
|
||||
Server.sendData((EntityPlayerMP)player, EnumPacketClient.SYNCRECIPES_WORKBENCH);
|
||||
}
|
||||
if(i % 10 != 0){
|
||||
NBTTagCompound compound = new NBTTagCompound();
|
||||
compound.setTag("recipes", list);
|
||||
Server.sendData((EntityPlayerMP)player, EnumPacketClient.SYNCRECIPES_ADD, compound);
|
||||
}
|
||||
Server.sendData((EntityPlayerMP)player, EnumPacketClient.SYNCRECIPES_WORKBENCH);
|
||||
}
|
||||
if(block == CustomItems.carpentyBench && event.action == Action.RIGHT_CLICK_BLOCK && !player.worldObj.isRemote){
|
||||
RecipeController controller = RecipeController.instance;
|
||||
NBTTagList list = new NBTTagList();
|
||||
int i = 0;
|
||||
for(RecipeCarpentry recipe : controller.anvilRecipes.values()){
|
||||
list.appendTag(recipe.writeNBT());
|
||||
i++;
|
||||
if(i % 10 == 0){
|
||||
NBTTagCompound compound = new NBTTagCompound();
|
||||
compound.setTag("recipes", list);
|
||||
Server.sendData((EntityPlayerMP)player, EnumPacketClient.SYNCRECIPES_ADD, compound);
|
||||
list = new NBTTagList();
|
||||
}
|
||||
}
|
||||
NBTTagList list = new NBTTagList();
|
||||
int i = 0;
|
||||
for(RecipeCarpentry recipe : controller.anvilRecipes.values()){
|
||||
list.appendTag(recipe.writeNBT());
|
||||
i++;
|
||||
if(i % 10 == 0){
|
||||
NBTTagCompound compound = new NBTTagCompound();
|
||||
compound.setTag("recipes", list);
|
||||
Server.sendData((EntityPlayerMP)player, EnumPacketClient.SYNCRECIPES_ADD, compound);
|
||||
list = new NBTTagList();
|
||||
}
|
||||
}
|
||||
|
||||
if(i % 10 != 0){
|
||||
NBTTagCompound compound = new NBTTagCompound();
|
||||
compound.setTag("recipes", list);
|
||||
Server.sendData((EntityPlayerMP)player, EnumPacketClient.SYNCRECIPES_ADD, compound);
|
||||
}
|
||||
Server.sendData((EntityPlayerMP)player, EnumPacketClient.SYNCRECIPES_CARPENTRYBENCH);
|
||||
if(i % 10 != 0){
|
||||
NBTTagCompound compound = new NBTTagCompound();
|
||||
compound.setTag("recipes", list);
|
||||
Server.sendData((EntityPlayerMP)player, EnumPacketClient.SYNCRECIPES_ADD, compound);
|
||||
}
|
||||
Server.sendData((EntityPlayerMP)player, EnumPacketClient.SYNCRECIPES_CARPENTRYBENCH);
|
||||
}
|
||||
if((block == CustomItems.banner || block == CustomItems.wallBanner || block == CustomItems.sign) && event.action == Action.RIGHT_CLICK_BLOCK){
|
||||
ItemStack item = player.inventory.getCurrentItem();
|
||||
@@ -234,20 +234,20 @@ public class ServerEventsHandler {
|
||||
y--;
|
||||
TileBanner tile = (TileBanner)player.worldObj.getTileEntity(event.x, y, event.z);
|
||||
if(!tile.canEdit()){
|
||||
if(item.getItem() == CustomItems.wand && CustomNpcsPermissions.hasPermission(player, CustomNpcsPermissions.EDIT_BLOCKS)){
|
||||
tile.time = System.currentTimeMillis();
|
||||
if(player.worldObj.isRemote)
|
||||
player.addChatComponentMessage(new ChatComponentTranslation("availability.editIcon"));
|
||||
}
|
||||
if(item.getItem() == CustomItems.wand && CustomNpcsPermissions.hasPermission(player, CustomNpcsPermissions.EDIT_BLOCKS)){
|
||||
tile.time = System.currentTimeMillis();
|
||||
if(player.worldObj.isRemote)
|
||||
player.addChatComponentMessage(new ChatComponentTranslation("availability.editIcon"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if(!player.worldObj.isRemote){
|
||||
if(!player.worldObj.isRemote){
|
||||
tile.icon = item.copy();
|
||||
player.worldObj.markBlockForUpdate(event.x, y, event.z);
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
player.worldObj.markBlockForUpdate(event.x, y, event.z);
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -259,7 +259,7 @@ public class ServerEventsHandler {
|
||||
if(event.source.getEntity() instanceof EntityPlayer){
|
||||
doExcalibur((EntityPlayer) event.source.getEntity(),event.entityLiving);
|
||||
}
|
||||
|
||||
|
||||
if(event.source.getEntity() instanceof EntityNPCInterface && event.entityLiving != null){
|
||||
EntityNPCInterface npc = (EntityNPCInterface) event.source.getEntity();
|
||||
Line line = npc.advanced.getKillLine();
|
||||
@@ -268,7 +268,7 @@ public class ServerEventsHandler {
|
||||
|
||||
npc.script.callScript(EnumScriptType.KILLS, "target", event.entityLiving);
|
||||
}
|
||||
|
||||
|
||||
EntityPlayer player = null;
|
||||
if(event.source.getEntity() instanceof EntityPlayer)
|
||||
player = (EntityPlayer) event.source.getEntity();
|
||||
@@ -276,7 +276,7 @@ public class ServerEventsHandler {
|
||||
player = ((RoleFollower)((EntityNPCInterface)event.source.getEntity()).roleInterface).owner;
|
||||
if(player != null){
|
||||
doQuest(player, event.entityLiving, true);
|
||||
|
||||
|
||||
if(event.entityLiving instanceof EntityNPCInterface)
|
||||
doFactionPoints(player, (EntityNPCInterface)event.entityLiving);
|
||||
}
|
||||
@@ -302,8 +302,8 @@ public class ServerEventsHandler {
|
||||
private void doQuest(EntityPlayer player, EntityLivingBase entity, boolean all) {
|
||||
PlayerQuestData playerdata = PlayerDataController.instance.getPlayerData(player).questData;
|
||||
boolean change = false;
|
||||
String entityName = EntityList.getEntityString(entity);
|
||||
|
||||
String entityName = EntityList.getEntityString(entity);
|
||||
|
||||
for(QuestData data : playerdata.activeQuests.values()){
|
||||
if(data.quest.type != EnumQuestType.Kill && data.quest.type != EnumQuestType.AreaKill)
|
||||
continue;
|
||||
@@ -312,7 +312,7 @@ public class ServerEventsHandler {
|
||||
for(EntityPlayer pl : list)
|
||||
if(pl != player)
|
||||
doQuest(pl, entity, false);
|
||||
|
||||
|
||||
}
|
||||
String name = entityName;
|
||||
QuestKill quest = (QuestKill) data.quest.questInterface;
|
||||
@@ -332,7 +332,7 @@ public class ServerEventsHandler {
|
||||
}
|
||||
if(!change)
|
||||
return;
|
||||
|
||||
|
||||
playerdata.checkQuestCompletion(player,EnumQuestType.Kill);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user