diff --git a/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/MetropolisPlugin.java b/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/MetropolisPlugin.java index 7488fd7..33c9520 100644 --- a/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/MetropolisPlugin.java +++ b/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/MetropolisPlugin.java @@ -242,7 +242,6 @@ public class MetropolisPlugin extends JavaPlugin { } } - _occupiedPlots = new ArrayList(); fillOccupiedPlots(); resizeCityRegion(); @@ -805,4 +804,34 @@ public class MetropolisPlugin extends JavaPlugin { public int getWallheight(){ return wallHeight; } + + public ProtectedRegion getRegion(String regionName) { + if(regionManager == null){ + return null; + } + + return regionManager.getRegion(regionName); + } + + public void removeRegion(String regionId) { + if(regionManager == null){ + return; + } + + try{ + regionManager.removeRegion(regionId); + }catch(Exception ex){ + log.info(String.format("[ERROR] Metropolis: Unable to remove region {%s}.", regionId)); + return; + } + } + + public void saveRegions() { + try { + regionManager.save(); + } catch (Exception ex) { + log.info(String.format("[SEVERE] Metropolis: Unable to save WorldGuard regions.")); + return; + } + } } diff --git a/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/commands/MetropolisHomeEvictCommand.java b/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/commands/MetropolisHomeEvictCommand.java index c6214d2..4204b3b 100644 --- a/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/commands/MetropolisHomeEvictCommand.java +++ b/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/commands/MetropolisHomeEvictCommand.java @@ -1,10 +1,13 @@ package com.majinnaibu.bukkitplugins.metropolis.commands; +import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import com.majinnaibu.bukkitplugins.metropolis.MetropolisPlugin; +import com.sk89q.worldguard.protection.regions.ProtectedRegion; public class MetropolisHomeEvictCommand implements CommandExecutor { MetropolisPlugin _plugin = null; @@ -15,9 +18,44 @@ public class MetropolisHomeEvictCommand implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { + //get the player and region + String playerName = ""; - // TODO Auto-generated method stub - return false; + if(args.length == 0){ + return false; + } + + if(args.length >= 1){ + playerName = args[0]; + } + + OfflinePlayer player = _plugin.getServer().getOfflinePlayer(playerName); + if(player == null){ + sender.sendMessage(String.format("The requested player {%s}does not appear to exist.", playerName)); + return false; + } + + ProtectedRegion region = _plugin.getRegion(String.format("h_%s", player.getName())); + if(region == null){ + sender.sendMessage(String.format("The player {%s} has no home to be evicted from.")); + return false; + } + + //remove the player as owner and/or member of the region + region.getMembers().removePlayer(playerName); + region.getOwners().removePlayer(playerName); + + //if the region has no owners delete the region + if(region.getMembers().size() == 0 && region.getOwners().size() == 0){ + _plugin.removeRegion(region.getId()); + } + + _plugin.saveRegions(); + + //?optionally regen the region + //_plugin.worldEdit.getCommand("regen").execute(_plugin.getServer().getConsoleSender(), "regen", new String[]{}); + + return true; } } diff --git a/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/commands/MetropolisHomeMoveCommand.java b/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/commands/MetropolisHomeMoveCommand.java index 681e9a6..1a6c269 100644 --- a/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/commands/MetropolisHomeMoveCommand.java +++ b/Metropolis/src/main/java/com/majinnaibu/bukkitplugins/metropolis/commands/MetropolisHomeMoveCommand.java @@ -7,14 +7,16 @@ import org.bukkit.command.CommandSender; import com.majinnaibu.bukkitplugins.metropolis.MetropolisPlugin; public class MetropolisHomeMoveCommand implements CommandExecutor { + MetropolisPlugin _plugin; - public MetropolisHomeMoveCommand(MetropolisPlugin metropolisPlugin) { - // TODO Auto-generated constructor stub + public MetropolisHomeMoveCommand(MetropolisPlugin plugin) { + _plugin = plugin; } @Override - public boolean onCommand(CommandSender arg0, Command arg1, String arg2, - String[] arg3) { + public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { + + // TODO Auto-generated method stub return false; }