Skip to content

Commit

Permalink
Enhance /npc metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Jan 17, 2022
1 parent 1ee92a0 commit b5a2c30
Showing 1 changed file with 27 additions and 6 deletions.
33 changes: 27 additions & 6 deletions main/src/main/java/net/citizensnpcs/commands/NPCCommands.java
Original file line number Diff line number Diff line change
Expand Up @@ -1192,26 +1192,47 @@ public void lookClose(CommandContext args, CommandSender sender, NPC npc) throws
@Requirements(selected = true, ownership = true)
public void metadata(CommandContext args, CommandSender sender, NPC npc) throws CommandException {
String command = args.getString(1).toLowerCase();
String key = args.getString(2);
try {
key = NPC.Metadata.valueOf(key.toUpperCase()).getKey();
} catch (IllegalArgumentException e) {
}
if (command.equals("set")) {
if (args.argsLength() != 4)
throw new CommandException();

Object metadata = args.getString(3);
if (metadata.equals("false") || metadata.equals("true")) {
metadata = Boolean.parseBoolean(args.getString(3));
}
try {
metadata = Integer.parseInt(args.getString(3));
} catch (NumberFormatException nfe) {
try {
metadata = Double.parseDouble(args.getString(3));
} catch (NumberFormatException nfe2) {
}
}

if (args.hasFlag('t')) {
npc.data().set(args.getString(2), args.getString(3));
npc.data().set(key, metadata);
} else {
npc.data().setPersistent(args.getString(2), args.getString(3));
npc.data().setPersistent(key, metadata);
}
Messaging.sendTr(sender, Messages.METADATA_SET, args.getString(2), args.getString(3));
Messaging.sendTr(sender, Messages.METADATA_SET, key, args.getString(3));
} else if (command.equals("get")) {
if (args.argsLength() != 3) {
throw new CommandException();
}
Messaging.send(sender, npc.data().get(args.getString(2), "null"));
Messaging.send(sender, npc.data().get(key, "null"));
} else if (command.equals("remove")) {
if (args.argsLength() != 3) {
throw new CommandException();
}
npc.data().remove(args.getString(2));
Messaging.sendTr(sender, Messages.METADATA_UNSET, args.getString(2));
npc.data().remove(key);
Messaging.sendTr(sender, Messages.METADATA_UNSET, key);
} else {
throw new CommandUsageException();
}
}

Expand Down

0 comments on commit b5a2c30

Please sign in to comment.