Skip to content

Commit

Permalink
Fix entity armor stand right click events
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Jan 1, 2016
1 parent 64ba5b4 commit 7fd2183
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 20 deletions.
13 changes: 7 additions & 6 deletions src/main/java/net/citizensnpcs/editor/EquipmentEditor.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,6 @@

import java.util.Map;

import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.util.Messaging;
import net.citizensnpcs.util.Messages;

import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.Event.Result;
Expand All @@ -17,6 +12,11 @@

import com.google.common.collect.Maps;

import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.util.Messaging;
import net.citizensnpcs.util.Messages;

public class EquipmentEditor extends Editor {
private final NPC npc;
private final Player player;
Expand Down Expand Up @@ -50,8 +50,9 @@ public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
return;

Equipper equipper = EQUIPPERS.get(npc.getEntity().getType());
if (equipper == null)
if (equipper == null) {
equipper = new GenericEquipper();
}
equipper.equip(event.getPlayer(), npc);
event.setCancelled(true);
}
Expand Down
11 changes: 6 additions & 5 deletions src/main/java/net/citizensnpcs/editor/GenericEquipper.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package net.citizensnpcs.editor;

import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;

import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.trait.trait.Equipment;
import net.citizensnpcs.api.util.Messaging;
import net.citizensnpcs.util.Messages;

import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;

public class GenericEquipper implements Equipper {
@Override
public void equip(Player equipper, NPC toEquip) {
Expand Down Expand Up @@ -67,8 +67,9 @@ public void equip(Player equipper, NPC toEquip) {
}
// Drop any previous equipment on the ground
ItemStack equippedItem = trait.get(slot);
if (equippedItem != null && equippedItem.getType() != Material.AIR)
if (equippedItem != null && equippedItem.getType() != Material.AIR) {
equipper.getWorld().dropItemNaturally(toEquip.getEntity().getLocation(), equippedItem);
}

// Now edit the equipment based on the slot
if (type != Material.AIR) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
package net.citizensnpcs.npc.entity.nonliving;

import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_8_R3.CraftServer;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity;
import org.bukkit.entity.ArmorStand;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.util.Vector;

import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
Expand All @@ -12,13 +21,6 @@
import net.minecraft.server.v1_8_R3.Vec3D;
import net.minecraft.server.v1_8_R3.World;

import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_8_R3.CraftServer;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftArmorStand;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity;
import org.bukkit.entity.ArmorStand;
import org.bukkit.util.Vector;

public class ArmorStandController extends MobEntityController {
public ArmorStandController() {
super(EntityArmorStandNPC.class);
Expand Down Expand Up @@ -56,8 +58,14 @@ public EntityArmorStandNPC(World world, NPC npc) {
}

@Override
public boolean a(EntityHuman paramEntityHuman, Vec3D paramVec3D) {
return true;
public boolean a(EntityHuman entityhuman, Vec3D vec3d) {
if (npc == null) {
return super.a(entityhuman, vec3d);
}
PlayerInteractEntityEvent event = new PlayerInteractEntityEvent((Player) entityhuman.getBukkitEntity(),
getBukkitEntity());
Bukkit.getPluginManager().callEvent(event);
return !event.isCancelled();
}

@Override
Expand Down

0 comments on commit 7fd2183

Please sign in to comment.