Devcmd removed.
This commit is contained in:
@@ -1,212 +0,0 @@
|
|||||||
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
|
|
||||||
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
|
|
||||||
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
|
|
||||||
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
|
|
||||||
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
|
|
||||||
// Magicbane Emulator Project © 2013 - 2022
|
|
||||||
// www.magicbane.com
|
|
||||||
|
|
||||||
|
|
||||||
package engine.devcmd.cmds;
|
|
||||||
|
|
||||||
import engine.InterestManagement.WorldGrid;
|
|
||||||
import engine.devcmd.AbstractDevCmd;
|
|
||||||
import engine.gameManager.BuildingManager;
|
|
||||||
import engine.gameManager.ChatManager;
|
|
||||||
import engine.gameManager.DbManager;
|
|
||||||
import engine.gameManager.ZoneManager;
|
|
||||||
import engine.math.Vector3f;
|
|
||||||
import engine.math.Vector3fImmutable;
|
|
||||||
import engine.mbEnums.ProtectionState;
|
|
||||||
import engine.objects.*;
|
|
||||||
import org.pmw.tinylog.Logger;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Eighty
|
|
||||||
*/
|
|
||||||
public class MakeBaneCmd extends AbstractDevCmd {
|
|
||||||
|
|
||||||
public MakeBaneCmd() {
|
|
||||||
super("makebane");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void _doCmd(PlayerCharacter pc, String[] words,
|
|
||||||
AbstractGameObject target) {
|
|
||||||
if (words.length < 1 || words.length > 2) {
|
|
||||||
this.sendUsage(pc);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int attackerID = 0;
|
|
||||||
int rank = 8;
|
|
||||||
|
|
||||||
if (words.length == 2) {
|
|
||||||
try {
|
|
||||||
attackerID = Integer.parseInt(words[0]);
|
|
||||||
rank = Integer.parseInt(words[1]);
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
throwbackError(pc, "AttackerGuildID must be a number, " + words[0] + " is invalid");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else if (words.length == 1) {
|
|
||||||
if (target == null) {
|
|
||||||
throwbackError(pc, "No target specified");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(target instanceof PlayerCharacter)) {
|
|
||||||
throwbackError(pc, "Target is not a player");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
attackerID = target.getObjectUUID();
|
|
||||||
|
|
||||||
try {
|
|
||||||
rank = Integer.parseInt(words[0]);
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
throwbackError(pc, "Rank must be specified, 1 through 8");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rank < 1 || rank > 8) {
|
|
||||||
throwbackError(pc, "Rank must be 1 through 8");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
PlayerCharacter player = PlayerCharacter.getPlayerCharacter(attackerID);
|
|
||||||
|
|
||||||
|
|
||||||
if (player.getGuild().isEmptyGuild()) {
|
|
||||||
throwbackError(pc, "Errant's can not place banes");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
AbstractCharacter attackerAGL = Guild.GetGL(player.getGuild());
|
|
||||||
|
|
||||||
if (attackerAGL == null) {
|
|
||||||
throwbackError(pc, "No guild leader found for attacking guild.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(attackerAGL instanceof PlayerCharacter)) {
|
|
||||||
throwbackError(pc, "Attacking guild leader is an NPC.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player.getGuild().isNPCGuild()) {
|
|
||||||
throwbackError(pc, "The guild used is an npc guild. They can not bane.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// if (player.getGuild().getOwnedCity() != null) {
|
|
||||||
// throwbackError(pc, "The attacking guild already has a city.");
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
Zone zone = ZoneManager.findSmallestZone(pc.getLoc());
|
|
||||||
|
|
||||||
if (zone == null) {
|
|
||||||
throwbackError(pc, "Unable to find the zone you're in.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!zone.guild_zone) {
|
|
||||||
throwbackError(pc, "This is not a player city.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
City city = City.getCity(zone.playerCityUUID);
|
|
||||||
if (city == null) {
|
|
||||||
throwbackError(pc, "Unable to find the city associated with this zone.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (city.getTOL() == null) {
|
|
||||||
throwbackError(pc, "Unable to find the tree of life for this city.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (city.getBane() != null) {
|
|
||||||
throwbackError(pc, "This city is already baned.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Bane.getBaneByAttackerGuild(player.getGuild()) != null) {
|
|
||||||
throwbackError(pc, "This guild is already baning someone.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Blueprint blueprint = Blueprint.getBlueprint(24300);
|
|
||||||
|
|
||||||
if (blueprint == null) {
|
|
||||||
throwbackError(pc, "Unable to find building set for banestone.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Vector3f rot = new Vector3f(0, 0, 0);
|
|
||||||
|
|
||||||
// *** Refactor : Overlap test goes here
|
|
||||||
|
|
||||||
//Let's drop a banestone!
|
|
||||||
Vector3fImmutable localLocation = ZoneManager.worldToLocal(pc.getLoc(), zone);
|
|
||||||
|
|
||||||
if (localLocation == null) {
|
|
||||||
ChatManager.chatSystemError(pc, "Failed to convert world location to zone location. Contact a CCR.");
|
|
||||||
Logger.info("Failed to Convert World coordinates to local zone coordinates");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Building stone = DbManager.BuildingQueries.CREATE_BUILDING(
|
|
||||||
zone.getObjectUUID(), pc.getObjectUUID(), blueprint.getName(), blueprint.getBlueprintUUID(),
|
|
||||||
localLocation, 1.0f, blueprint.getMaxHealth(rank), ProtectionState.PROTECTED, 0, rank,
|
|
||||||
null, blueprint.getBlueprintUUID(), 1, 0.0f);
|
|
||||||
|
|
||||||
if (stone == null) {
|
|
||||||
ChatManager.chatSystemError(pc, "Failed to create banestone.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
stone.addEffectBit((1 << 19));
|
|
||||||
BuildingManager.setRank(stone, (byte) rank);
|
|
||||||
stone.setMaxHitPoints(blueprint.getMaxHealth(stone.getRank()));
|
|
||||||
stone.setCurrentHitPoints(stone.getMaxHitPoints());
|
|
||||||
BuildingManager.setUpgradeDateTime(stone, null, 0);
|
|
||||||
|
|
||||||
//Make the bane
|
|
||||||
|
|
||||||
Bane bane = Bane.makeBane(player, city, stone);
|
|
||||||
|
|
||||||
if (bane == null) {
|
|
||||||
|
|
||||||
//delete bane stone, failed to make bane object
|
|
||||||
DbManager.BuildingQueries.DELETE_FROM_DATABASE(stone);
|
|
||||||
|
|
||||||
throwbackError(pc, "Failed to create bane.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
WorldGrid.addObject(stone, pc);
|
|
||||||
|
|
||||||
//Add baned effect to TOL
|
|
||||||
city.getTOL().addEffectBit((1 << 16));
|
|
||||||
city.getTOL().updateEffects();
|
|
||||||
|
|
||||||
Vector3fImmutable movePlayerOutsideStone = player.getLoc();
|
|
||||||
movePlayerOutsideStone = movePlayerOutsideStone.setX(movePlayerOutsideStone.x + 10);
|
|
||||||
movePlayerOutsideStone = movePlayerOutsideStone.setZ(movePlayerOutsideStone.z + 10);
|
|
||||||
player.teleport(movePlayerOutsideStone);
|
|
||||||
|
|
||||||
throwbackInfo(pc, "The city has been succesfully baned.");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String _getHelpString() {
|
|
||||||
return "Creates an bane.";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String _getUsageString() {
|
|
||||||
return "'./makebane playerUUID baneRank'";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
package engine.gameManager;
|
package engine.gameManager;
|
||||||
|
|
||||||
import engine.mbEnums;
|
|
||||||
import engine.devcmd.AbstractDevCmd;
|
import engine.devcmd.AbstractDevCmd;
|
||||||
import engine.devcmd.cmds.*;
|
import engine.devcmd.cmds.*;
|
||||||
|
import engine.mbEnums;
|
||||||
import engine.objects.AbstractGameObject;
|
import engine.objects.AbstractGameObject;
|
||||||
import engine.objects.Account;
|
import engine.objects.Account;
|
||||||
import engine.objects.PlayerCharacter;
|
import engine.objects.PlayerCharacter;
|
||||||
@@ -91,7 +91,6 @@ public enum DevCmdManager {
|
|||||||
DevCmdManager.registerDevCmd(new RenameCmd());
|
DevCmdManager.registerDevCmd(new RenameCmd());
|
||||||
DevCmdManager.registerDevCmd(new CreateItemCmd());
|
DevCmdManager.registerDevCmd(new CreateItemCmd());
|
||||||
DevCmdManager.registerDevCmd(new SetRankCmd());
|
DevCmdManager.registerDevCmd(new SetRankCmd());
|
||||||
DevCmdManager.registerDevCmd(new MakeBaneCmd());
|
|
||||||
DevCmdManager.registerDevCmd(new RemoveBaneCmd());
|
DevCmdManager.registerDevCmd(new RemoveBaneCmd());
|
||||||
DevCmdManager.registerDevCmd(new SetBaneActiveCmd());
|
DevCmdManager.registerDevCmd(new SetBaneActiveCmd());
|
||||||
DevCmdManager.registerDevCmd(new SetAdminRuneCmd());
|
DevCmdManager.registerDevCmd(new SetAdminRuneCmd());
|
||||||
|
|||||||
Reference in New Issue
Block a user