forked from MagicBane/Server
Project cleanup pre merge.
This commit is contained in:
@@ -8,111 +8,110 @@ import engine.objects.*;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author
|
||||
* Dev command to set the owner of targeted building.
|
||||
* @author Dev command to set the owner of targeted building.
|
||||
* Argument is a valid guild UID
|
||||
*/
|
||||
public class SetOwnerCmd extends AbstractDevCmd {
|
||||
|
||||
Building _targetBuilding = null;
|
||||
DbObjectType _newOwnerType;
|
||||
AbstractCharacter outOwner;
|
||||
Building _targetBuilding = null;
|
||||
DbObjectType _newOwnerType;
|
||||
AbstractCharacter outOwner;
|
||||
|
||||
public SetOwnerCmd() {
|
||||
public SetOwnerCmd() {
|
||||
super("setowner");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void _doCmd(PlayerCharacter pcSender, String[] args,
|
||||
AbstractGameObject target) {
|
||||
|
||||
if(validateUserInput(pcSender, target, args) == false) {
|
||||
this.sendUsage(pcSender);
|
||||
return;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void _doCmd(PlayerCharacter pcSender, String[] args,
|
||||
AbstractGameObject target) {
|
||||
|
||||
if (validateUserInput(pcSender, target, args) == false) {
|
||||
this.sendUsage(pcSender);
|
||||
return;
|
||||
}
|
||||
|
||||
// Valid arguments, attempt to set owner of Building.
|
||||
|
||||
|
||||
_targetBuilding = getTargetAsBuilding(pcSender);
|
||||
|
||||
// if it's a tol change ownership of the city
|
||||
|
||||
if (_targetBuilding.getBlueprint() != null &&
|
||||
_targetBuilding.getBlueprint().getBuildingGroup().equals(engine.Enum.BuildingGroup.TOL)) {
|
||||
_targetBuilding.getBlueprint().getBuildingGroup().equals(engine.Enum.BuildingGroup.TOL)) {
|
||||
|
||||
City city = _targetBuilding.getCity();
|
||||
|
||||
if (city != null) {
|
||||
city.claim(outOwner);
|
||||
return; }
|
||||
return;
|
||||
}
|
||||
}
|
||||
_targetBuilding.setOwner(outOwner);
|
||||
|
||||
|
||||
DbManager.BuildingQueries.SET_PROPERTY(_targetBuilding, "ownerUUID", args[0]);
|
||||
|
||||
|
||||
_targetBuilding.refreshGuild();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String _getUsageString() {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String _getUsageString() {
|
||||
return "' /setowner [UID]";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String _getHelpString() {
|
||||
@Override
|
||||
protected String _getHelpString() {
|
||||
return "Assigns new owner to building";
|
||||
}
|
||||
|
||||
private boolean validateUserInput(PlayerCharacter pcSender, AbstractGameObject currTarget, String[] userInput) {
|
||||
|
||||
}
|
||||
|
||||
private boolean validateUserInput(PlayerCharacter pcSender, AbstractGameObject currTarget, String[] userInput) {
|
||||
|
||||
// Incorrect number of arguments
|
||||
|
||||
|
||||
if (userInput.length != 1)
|
||||
return false;
|
||||
return false;
|
||||
|
||||
// No target
|
||||
|
||||
if (currTarget == null) {
|
||||
throwbackError(pcSender, "Requires a Building to be targeted");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Target must be an Building
|
||||
|
||||
if (currTarget.getObjectType() != GameObjectType.Building) {
|
||||
throwbackError(pcSender, "Invalid target. Must be a Building");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Argument must parse to a long.
|
||||
|
||||
try {
|
||||
Long.parseLong(userInput[0]); }
|
||||
catch (NumberFormatException | NullPointerException e) {
|
||||
return false;
|
||||
|
||||
if (currTarget == null) {
|
||||
throwbackError(pcSender, "Requires a Building to be targeted");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Argument must return a valid NPC or PlayerCharacter
|
||||
|
||||
_newOwnerType = DbManager.BuildingQueries.GET_UID_ENUM(Long.parseLong(userInput[0]));
|
||||
|
||||
switch (_newOwnerType) {
|
||||
case NPC:
|
||||
outOwner = (AbstractCharacter)DbManager.getObject(GameObjectType.NPC, Integer.parseInt(userInput[0]));
|
||||
break;
|
||||
case CHARACTER:
|
||||
outOwner = (AbstractCharacter)DbManager.getObject(GameObjectType.PlayerCharacter, Integer.parseInt(userInput[0]));
|
||||
break;
|
||||
}
|
||||
// Target must be an Building
|
||||
|
||||
if (currTarget.getObjectType() != GameObjectType.Building) {
|
||||
throwbackError(pcSender, "Invalid target. Must be a Building");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Argument must parse to a long.
|
||||
|
||||
try {
|
||||
Long.parseLong(userInput[0]);
|
||||
} catch (NumberFormatException | NullPointerException e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Argument must return a valid NPC or PlayerCharacter
|
||||
|
||||
_newOwnerType = DbManager.BuildingQueries.GET_UID_ENUM(Long.parseLong(userInput[0]));
|
||||
|
||||
switch (_newOwnerType) {
|
||||
case NPC:
|
||||
outOwner = (AbstractCharacter) DbManager.getObject(GameObjectType.NPC, Integer.parseInt(userInput[0]));
|
||||
break;
|
||||
case CHARACTER:
|
||||
outOwner = (AbstractCharacter) DbManager.getObject(GameObjectType.PlayerCharacter, Integer.parseInt(userInput[0]));
|
||||
break;
|
||||
}
|
||||
|
||||
if (outOwner == null) {
|
||||
throwbackError(pcSender, "Invalid Owner UID");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (outOwner == null) {
|
||||
throwbackError(pcSender, "Invalid Owner UID");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user