Files
BattleBane/src/engine/devcmd/cmds/SetGuildCmd.java
T

104 lines
2.5 KiB
Java
Raw Normal View History

2022-04-30 09:41:17 -04:00
package engine.devcmd.cmds;
import engine.Enum.GameObjectType;
import engine.InterestManagement.WorldGrid;
import engine.devcmd.AbstractDevCmd;
import engine.gameManager.DbManager;
import engine.objects.AbstractGameObject;
import engine.objects.Guild;
import engine.objects.NPC;
import engine.objects.PlayerCharacter;
/**
2023-07-15 09:23:48 -04:00
* @author Dev command to set the guild of targeted npc.
2022-04-30 09:41:17 -04:00
* Argument is a valid guild UID
*/
public class SetGuildCmd extends AbstractDevCmd {
2023-07-15 09:23:48 -04:00
public SetGuildCmd() {
2022-04-30 09:41:17 -04:00
super("setguild");
}
2023-07-15 09:23:48 -04:00
@Override
protected void _doCmd(PlayerCharacter pcSender, String[] args,
AbstractGameObject target) {
2022-04-30 09:41:17 -04:00
NPC targetNPC;
Guild targetGuild;
2023-07-15 09:23:48 -04:00
if (validateUserInput(pcSender, target, args) == false) {
this.sendUsage(pcSender);
return;
}
2022-04-30 09:41:17 -04:00
// Valid arguments, attempt to set guild of NPC.
2023-07-15 09:23:48 -04:00
2022-04-30 09:41:17 -04:00
targetNPC = getTargetAsNPC(pcSender);
targetGuild = Guild.getGuild(Integer.parseInt(args[0]));
2023-07-15 09:23:48 -04:00
2022-04-30 09:41:17 -04:00
DbManager.NPCQueries.SET_PROPERTY(targetNPC, "npc_guildID", args[0]);
targetNPC.setGuild(targetGuild);
2023-07-15 09:23:48 -04:00
2022-04-30 09:41:17 -04:00
// Refresh loaded game object
2023-07-15 09:23:48 -04:00
2022-04-30 09:41:17 -04:00
WorldGrid.updateObject(targetNPC, pcSender);
2023-07-15 09:23:48 -04:00
}
@Override
protected String _getUsageString() {
2022-04-30 09:41:17 -04:00
return "' /setguild [UID]";
2023-07-15 09:23:48 -04:00
}
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
@Override
protected String _getHelpString() {
2022-04-30 09:41:17 -04:00
return "Assigns NPC to a given guild";
2023-07-15 09:23:48 -04:00
}
private boolean validateUserInput(PlayerCharacter pcSender, AbstractGameObject currTarget, String[] userInput) {
2022-04-30 09:41:17 -04:00
Guild tempGuild;
2023-07-15 09:23:48 -04:00
2022-04-30 09:41:17 -04:00
// Incorrect number of arguments
2023-07-15 09:23:48 -04:00
2022-04-30 09:41:17 -04:00
if (userInput.length != 1)
2023-07-15 09:23:48 -04:00
return false;
2022-04-30 09:41:17 -04:00
// No target
2023-07-15 09:23:48 -04:00
if (currTarget == null) {
throwbackError(pcSender, "Requires an NPC be targeted");
return false;
}
2022-04-30 09:41:17 -04:00
// Target must be an NPC
2023-07-15 09:23:48 -04:00
if (currTarget.getObjectType() != GameObjectType.NPC) {
throwbackError(pcSender, "Invalid object. Must be an NPC");
return false;
}
2022-04-30 09:41:17 -04:00
// Argument must parse as a int.
2023-07-15 09:23:48 -04:00
try {
Integer.parseInt(userInput[0]);
} catch (NumberFormatException | NullPointerException e) {
return false;
2022-04-30 09:41:17 -04:00
}
2023-07-15 09:23:48 -04:00
// Argument must return a valid guild
tempGuild = Guild.getGuild(Integer.parseInt(userInput[0]));
if (tempGuild == null) {
throwbackError(pcSender, "Invalid Guild UID");
return false;
}
2022-04-30 09:41:17 -04:00
return true;
2023-07-15 09:23:48 -04:00
}
2022-04-30 09:41:17 -04:00
}