Add --eid option to /npc remove

This commit is contained in:
fullwall 2020-04-22 23:46:36 +08:00
parent a360810e8d
commit f9b0397cab
2 changed files with 14 additions and 5 deletions

View File

@ -1406,7 +1406,7 @@ public class NPCCommands {
@Command(
aliases = { "npc" },
usage = "remove|rem (all|id|name|--owner [owner])",
usage = "remove|rem (all|id|name| --owner [owner] | --eid [entity uuid])",
desc = "Remove a NPC",
modifiers = { "remove", "rem" },
min = 1,
@ -1424,6 +1424,17 @@ public class NPCCommands {
Messaging.sendTr(sender, Messages.NPCS_REMOVED);
return;
}
if (args.hasValueFlag("eid")) {
Entity entity = Bukkit.getServer().getEntity(UUID.fromString(args.getFlag("eid")));
if (entity != null && (npc = CitizensAPI.getNPCRegistry().getNPC(entity)) != null) {
npc.destroy();
Messaging.sendTr(sender, Messages.NPC_REMOVED, npc.getName());
return;
} else {
Messaging.sendErrorTr(sender, Messages.NPC_NOT_FOUND);
return;
}
}
if (args.argsLength() == 2) {
if (args.getString(1).equalsIgnoreCase("all")) {
if (!sender.hasPermission("citizens.admin.remove.all") && !sender.hasPermission("citizens.admin"))

View File

@ -75,7 +75,6 @@ public class TabListRemover {
}
private PlayerEntry getEntry(Player player) {
PlayerEntry entry = pending.get(player.getUniqueId());
if (entry == null) {
entry = new PlayerEntry(player);
@ -114,12 +113,10 @@ public class TabListRemover {
private class Sender implements Runnable {
@Override
public void run() {
int maxPacketEntries = Settings.Setting.MAX_PACKET_ENTRIES.asInt();
Iterator<Map.Entry<UUID, PlayerEntry>> entryIterator = pending.entrySet().iterator();
while (entryIterator.hasNext()) {
Map.Entry<UUID, PlayerEntry> mapEntry = entryIterator.next();
PlayerEntry entry = mapEntry.getValue();
@ -142,8 +139,9 @@ public class TabListRemover {
i++;
}
if (entry.player.isOnline())
if (entry.player.isOnline()) {
NMS.sendTabListRemove(entry.player, skinnableList);
}
// notify skin trackers that a remove packet has been sent to a player
for (SkinnableEntity entity : skinnableList) {