mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2025-02-16 12:21:25 +01:00
Fix itemframes, add /npc debug command, don't lowercase skin names early in skintrait
This commit is contained in:
parent
f462fe9218
commit
58b53174c8
@ -39,6 +39,7 @@ import org.bukkit.entity.Rabbit;
|
||||
import org.bukkit.entity.Villager.Profession;
|
||||
import org.bukkit.entity.Zombie;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
|
||||
@ -653,6 +654,33 @@ public class NPCCommands {
|
||||
Messaging.send(sender, msg + '.');
|
||||
}
|
||||
|
||||
@Command(
|
||||
aliases = { "npc" },
|
||||
usage = "debug -p(aths) -n(avigation)",
|
||||
desc = "Display debugging information",
|
||||
modifiers = { "debug" },
|
||||
min = 1,
|
||||
max = 1,
|
||||
flags = "pn",
|
||||
permission = "citizens.npc.debug")
|
||||
@Requirements(ownership = true, selected = true)
|
||||
public void debug(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
|
||||
if (args.hasFlag('p')) {
|
||||
npc.getNavigator().getDefaultParameters().debug(!npc.getNavigator().getDefaultParameters().debug());
|
||||
Messaging.send(sender, "Path debugging set to " + npc.getNavigator().getDefaultParameters().debug());
|
||||
} else if (args.hasFlag('n')) {
|
||||
String output = "Use new finder " + npc.getNavigator().getDefaultParameters().useNewPathfinder();
|
||||
output += "Distance margin " + npc.getNavigator().getDefaultParameters().distanceMargin() + "(path margin "
|
||||
+ npc.getNavigator().getDefaultParameters().pathDistanceMargin() + ")<br>";
|
||||
output += "Teleport if below " + npc.getNavigator().getDefaultParameters().destinationTeleportMargin()
|
||||
+ " blocks<br>";
|
||||
output += "Range " + npc.getNavigator().getDefaultParameters().range() + "<br>";
|
||||
output += "Stuck action " + npc.getNavigator().getDefaultParameters().stuckAction() + "<br>";
|
||||
output += "Speed " + npc.getNavigator().getDefaultParameters().speed() + "<br>";
|
||||
Messaging.send(sender, output);
|
||||
}
|
||||
}
|
||||
|
||||
@Command(
|
||||
aliases = { "npc" },
|
||||
usage = "despawn (id)",
|
||||
@ -1075,7 +1103,7 @@ public class NPCCommands {
|
||||
((org.bukkit.entity.Item) npc.getEntity()).getItemStack().setType(mat);
|
||||
break;
|
||||
case ITEM_FRAME:
|
||||
((ItemFrame) npc.getEntity()).getItem().setType(mat);
|
||||
((ItemFrame) npc.getEntity()).setItem(new ItemStack(mat, 1));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -185,7 +185,7 @@ public class CitizensNavigator implements Navigator, Runnable {
|
||||
}
|
||||
}
|
||||
if (localParams.destinationTeleportMargin() > 0
|
||||
&& npcLoc.distance(targetLoc) < localParams.destinationTeleportMargin()) {
|
||||
&& npcLoc.distance(targetLoc) <= localParams.destinationTeleportMargin()) {
|
||||
// TODO: easing?
|
||||
npc.teleport(targetLoc, TeleportCause.PLUGIN);
|
||||
finished = true;
|
||||
|
@ -72,7 +72,8 @@ public class SkinTrait extends Trait {
|
||||
* @return The skin name if set, or null (i.e. using the NPC's name)
|
||||
*/
|
||||
public String getSkinName() {
|
||||
return filledPlaceholder != null && skinName != null ? filledPlaceholder : skinName;
|
||||
return filledPlaceholder != null && skinName != null ? filledPlaceholder
|
||||
: skinName == null ? skinName : skinName.toLowerCase();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -170,14 +171,8 @@ public class SkinTrait extends Trait {
|
||||
}
|
||||
|
||||
private void setSkinNameInternal(String name) {
|
||||
skinName = ChatColor.stripColor(name.toLowerCase());
|
||||
skinName = ChatColor.stripColor(name);
|
||||
checkPlaceholder(false);
|
||||
String filled = ChatColor.stripColor(Placeholders.replace(skinName, null, npc).toLowerCase());
|
||||
if (!filled.equalsIgnoreCase(skinName)) {
|
||||
filledPlaceholder = filled;
|
||||
} else {
|
||||
filledPlaceholder = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -8,6 +8,7 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftItemFrame;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.ItemFrame;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import net.citizensnpcs.api.event.DespawnReason;
|
||||
@ -111,16 +112,11 @@ public class ItemFrameController extends MobEntityController {
|
||||
public ItemFrameNPC(EntityItemFrameNPC entity) {
|
||||
super((CraftServer) Bukkit.getServer(), entity);
|
||||
this.npc = entity.npc;
|
||||
Material id = Material.STONE;
|
||||
int data = npc.data().get(NPC.ITEM_DATA_METADATA, npc.data().get("falling-block-data", 0));
|
||||
if (npc.data().has(NPC.ITEM_ID_METADATA)) {
|
||||
id = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA));
|
||||
}
|
||||
if (npc.data().has(NPC.ITEM_AMOUNT_METADATA)) {
|
||||
getItem().setAmount(npc.data().get(NPC.ITEM_AMOUNT_METADATA));
|
||||
}
|
||||
getItem().setType(id);
|
||||
getItem().setDurability((short) data);
|
||||
int amount = npc.data().get(NPC.ITEM_AMOUNT_METADATA, 1);
|
||||
Material material = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA, "STONE"));
|
||||
Number durability = npc.data().<Number> get(NPC.ITEM_DATA_METADATA,
|
||||
npc.data().<Number> get("falling-block-data", (short) 0));
|
||||
setItem(new ItemStack(material, amount, durability.shortValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -8,6 +8,7 @@ import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftItemFrame;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.ItemFrame;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import net.citizensnpcs.api.event.DespawnReason;
|
||||
@ -111,16 +112,11 @@ public class ItemFrameController extends MobEntityController {
|
||||
public ItemFrameNPC(EntityItemFrameNPC entity) {
|
||||
super((CraftServer) Bukkit.getServer(), entity);
|
||||
this.npc = entity.npc;
|
||||
Material id = Material.STONE;
|
||||
int data = npc.data().get(NPC.ITEM_DATA_METADATA, npc.data().get("falling-block-data", 0));
|
||||
if (npc.data().has(NPC.ITEM_ID_METADATA)) {
|
||||
id = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA));
|
||||
}
|
||||
if (npc.data().has(NPC.ITEM_AMOUNT_METADATA)) {
|
||||
getItem().setAmount(npc.data().get(NPC.ITEM_AMOUNT_METADATA));
|
||||
}
|
||||
getItem().setType(id);
|
||||
getItem().setDurability((short) data);
|
||||
int amount = npc.data().get(NPC.ITEM_AMOUNT_METADATA, 1);
|
||||
Material material = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA, "STONE"));
|
||||
Number durability = npc.data().<Number> get(NPC.ITEM_DATA_METADATA,
|
||||
npc.data().<Number> get("falling-block-data", (short) 0));
|
||||
setItem(new ItemStack(material, amount, durability.shortValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -8,6 +8,7 @@ import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftItemFrame;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.ItemFrame;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import net.citizensnpcs.api.event.DespawnReason;
|
||||
@ -111,16 +112,11 @@ public class ItemFrameController extends MobEntityController {
|
||||
public ItemFrameNPC(EntityItemFrameNPC entity) {
|
||||
super((CraftServer) Bukkit.getServer(), entity);
|
||||
this.npc = entity.npc;
|
||||
Material id = Material.STONE;
|
||||
int data = npc.data().get(NPC.ITEM_DATA_METADATA, npc.data().get("falling-block-data", 0));
|
||||
if (npc.data().has(NPC.ITEM_ID_METADATA)) {
|
||||
id = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA));
|
||||
}
|
||||
if (npc.data().has(NPC.ITEM_AMOUNT_METADATA)) {
|
||||
getItem().setAmount(npc.data().get(NPC.ITEM_AMOUNT_METADATA));
|
||||
}
|
||||
getItem().setType(id);
|
||||
getItem().setDurability((short) data);
|
||||
int amount = npc.data().get(NPC.ITEM_AMOUNT_METADATA, 1);
|
||||
Material material = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA, "STONE"), false);
|
||||
Number durability = npc.data().<Number> get(NPC.ITEM_DATA_METADATA,
|
||||
npc.data().<Number> get("falling-block-data", (short) 0));
|
||||
setItem(new ItemStack(material, amount, durability.shortValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -8,6 +8,7 @@ import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_14_R1.entity.CraftItemFrame;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.ItemFrame;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import net.citizensnpcs.api.event.DespawnReason;
|
||||
@ -113,16 +114,11 @@ public class ItemFrameController extends MobEntityController {
|
||||
public ItemFrameNPC(EntityItemFrameNPC entity) {
|
||||
super((CraftServer) Bukkit.getServer(), entity);
|
||||
this.npc = entity.npc;
|
||||
Material id = Material.STONE;
|
||||
int data = npc.data().get(NPC.ITEM_DATA_METADATA, npc.data().get("falling-block-data", 0));
|
||||
if (npc.data().has(NPC.ITEM_ID_METADATA)) {
|
||||
id = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA));
|
||||
}
|
||||
if (npc.data().has(NPC.ITEM_AMOUNT_METADATA)) {
|
||||
getItem().setAmount(npc.data().get(NPC.ITEM_AMOUNT_METADATA));
|
||||
}
|
||||
getItem().setType(id);
|
||||
getItem().setDurability((short) data);
|
||||
int amount = npc.data().get(NPC.ITEM_AMOUNT_METADATA, 1);
|
||||
Material material = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA, "STONE"), false);
|
||||
Number durability = npc.data().<Number> get(NPC.ITEM_DATA_METADATA,
|
||||
npc.data().<Number> get("falling-block-data", (short) 0));
|
||||
setItem(new ItemStack(material, amount, durability.shortValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -8,6 +8,7 @@ import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftItemFrame;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.ItemFrame;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import net.citizensnpcs.api.event.DespawnReason;
|
||||
@ -113,16 +114,11 @@ public class ItemFrameController extends MobEntityController {
|
||||
public ItemFrameNPC(EntityItemFrameNPC entity) {
|
||||
super((CraftServer) Bukkit.getServer(), entity);
|
||||
this.npc = entity.npc;
|
||||
Material id = Material.STONE;
|
||||
int data = npc.data().get(NPC.ITEM_DATA_METADATA, npc.data().get("falling-block-data", 0));
|
||||
if (npc.data().has(NPC.ITEM_ID_METADATA)) {
|
||||
id = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA));
|
||||
}
|
||||
if (npc.data().has(NPC.ITEM_AMOUNT_METADATA)) {
|
||||
getItem().setAmount(npc.data().get(NPC.ITEM_AMOUNT_METADATA));
|
||||
}
|
||||
getItem().setType(id);
|
||||
getItem().setDurability((short) data);
|
||||
int amount = npc.data().get(NPC.ITEM_AMOUNT_METADATA, 1);
|
||||
Material material = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA, "STONE"), false);
|
||||
Number durability = npc.data().<Number> get(NPC.ITEM_DATA_METADATA,
|
||||
npc.data().<Number> get("falling-block-data", (short) 0));
|
||||
setItem(new ItemStack(material, amount, durability.shortValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -8,6 +8,7 @@ import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_16_R3.entity.CraftItemFrame;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.ItemFrame;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import net.citizensnpcs.api.event.DespawnReason;
|
||||
@ -113,16 +114,11 @@ public class ItemFrameController extends MobEntityController {
|
||||
public ItemFrameNPC(EntityItemFrameNPC entity) {
|
||||
super((CraftServer) Bukkit.getServer(), entity);
|
||||
this.npc = entity.npc;
|
||||
Material id = Material.STONE;
|
||||
int data = npc.data().get(NPC.ITEM_DATA_METADATA, npc.data().get("falling-block-data", 0));
|
||||
if (npc.data().has(NPC.ITEM_ID_METADATA)) {
|
||||
id = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA));
|
||||
}
|
||||
if (npc.data().has(NPC.ITEM_AMOUNT_METADATA)) {
|
||||
getItem().setAmount(npc.data().get(NPC.ITEM_AMOUNT_METADATA));
|
||||
}
|
||||
getItem().setType(id);
|
||||
getItem().setDurability((short) data);
|
||||
int amount = npc.data().get(NPC.ITEM_AMOUNT_METADATA, 1);
|
||||
Material material = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA, "STONE"), false);
|
||||
Number durability = npc.data().<Number> get(NPC.ITEM_DATA_METADATA,
|
||||
npc.data().<Number> get("falling-block-data", (short) 0));
|
||||
setItem(new ItemStack(material, amount, durability.shortValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.Material;
|
||||
import org.bukkit.craftbukkit.v1_17_R1.CraftServer;
|
||||
import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_17_R1.entity.CraftItemFrame;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import net.citizensnpcs.api.event.DespawnReason;
|
||||
@ -112,16 +113,11 @@ public class ItemFrameController extends MobEntityController {
|
||||
public ItemFrameNPC(EntityItemFrameNPC entity) {
|
||||
super((CraftServer) Bukkit.getServer(), entity);
|
||||
this.npc = entity.npc;
|
||||
Material id = Material.STONE;
|
||||
int data = npc.data().get(NPC.ITEM_DATA_METADATA, npc.data().get("falling-block-data", 0));
|
||||
if (npc.data().has(NPC.ITEM_ID_METADATA)) {
|
||||
id = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA));
|
||||
}
|
||||
if (npc.data().has(NPC.ITEM_AMOUNT_METADATA)) {
|
||||
getItem().setAmount(npc.data().get(NPC.ITEM_AMOUNT_METADATA));
|
||||
}
|
||||
getItem().setType(id);
|
||||
getItem().setDurability((short) data);
|
||||
int amount = npc.data().get(NPC.ITEM_AMOUNT_METADATA, 1);
|
||||
Material material = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA, "STONE"), false);
|
||||
Number durability = npc.data().<Number> get(NPC.ITEM_DATA_METADATA,
|
||||
npc.data().<Number> get("falling-block-data", (short) 0));
|
||||
setItem(new ItemStack(material, amount, durability.shortValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.Material;
|
||||
import org.bukkit.craftbukkit.v1_18_R2.CraftServer;
|
||||
import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_18_R2.entity.CraftItemFrame;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import net.citizensnpcs.api.event.DespawnReason;
|
||||
@ -123,9 +124,11 @@ public class ItemFrameController extends MobEntityController {
|
||||
if (npc.data().has(NPC.ITEM_AMOUNT_METADATA)) {
|
||||
getItem().setAmount(npc.data().get(NPC.ITEM_AMOUNT_METADATA));
|
||||
}
|
||||
getItem().setType(Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA, "STONE"), false));
|
||||
getItem().setDurability(npc.data().<Short> get(NPC.ITEM_DATA_METADATA,
|
||||
npc.data().<Short> get("falling-block-data", (short) 0)));
|
||||
int amount = npc.data().get(NPC.ITEM_AMOUNT_METADATA, 1);
|
||||
Material material = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA, "STONE"), false);
|
||||
Number durability = npc.data().<Number> get(NPC.ITEM_DATA_METADATA,
|
||||
npc.data().<Number> get("falling-block-data", (short) 0));
|
||||
setItem(new ItemStack(material, amount, durability.shortValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -6,6 +6,7 @@ import org.bukkit.Material;
|
||||
import org.bukkit.craftbukkit.v1_19_R1.CraftServer;
|
||||
import org.bukkit.craftbukkit.v1_19_R1.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_19_R1.entity.CraftItemFrame;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import net.citizensnpcs.api.event.DespawnReason;
|
||||
@ -121,12 +122,11 @@ public class ItemFrameController extends MobEntityController {
|
||||
public ItemFrameNPC(EntityItemFrameNPC entity) {
|
||||
super((CraftServer) Bukkit.getServer(), entity);
|
||||
this.npc = entity.npc;
|
||||
if (npc.data().has(NPC.ITEM_AMOUNT_METADATA)) {
|
||||
getItem().setAmount(npc.data().get(NPC.ITEM_AMOUNT_METADATA));
|
||||
}
|
||||
getItem().setType(Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA, "STONE"), false));
|
||||
getItem().setDurability(npc.data().<Short> get(NPC.ITEM_DATA_METADATA,
|
||||
npc.data().<Short> get("falling-block-data", (short) 0)));
|
||||
int amount = npc.data().get(NPC.ITEM_AMOUNT_METADATA, 1);
|
||||
Material material = Material.getMaterial(npc.data().<String> get(NPC.ITEM_ID_METADATA, "STONE"), false);
|
||||
Number durability = npc.data().<Number> get(NPC.ITEM_DATA_METADATA,
|
||||
npc.data().<Number> get("falling-block-data", (short) 0));
|
||||
setItem(new ItemStack(material, amount, durability.shortValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user