Skip to content

Commit

Permalink
Fix /zclaim, add /zunclaim and /zgetzones.
Browse files Browse the repository at this point in the history
  • Loading branch information
Meaglin committed Jul 18, 2012
1 parent b0aa642 commit b42a791
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 4 deletions.
57 changes: 54 additions & 3 deletions src/com/zones/command/MiscCommands.java
@@ -1,6 +1,8 @@
package com.zones.command;

import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
Expand All @@ -10,6 +12,7 @@
import com.zones.ZonesConfig;
import com.zones.model.WorldConfig;
import com.zones.model.ZoneBase;
import com.zones.model.types.ZoneNormal;
import com.zones.model.types.ZonePlot;

public class MiscCommands extends CommandsBase {
Expand Down Expand Up @@ -127,21 +130,69 @@ public void refresh(Player player, String[] params) {
public void test(Player player, String[] params) {
// String file = FileUtil.readFile(getPlugin().getClass().getResourceAsStream(params[0]));
// player.sendMessage(file.substring(0, file.length() > 100 ? 100 : file.length()));
ZonesConfig.setDatabaseVersion(new File(getPlugin().getDataFolder(), ZonesConfig.ZONES_CONFIG_FILE), Integer.parseInt(params[0]));
// ZonesConfig.setDatabaseVersion(new File(getPlugin().getDataFolder(), ZonesConfig.ZONES_CONFIG_FILE), Integer.parseInt(params[0]));
}

@Command(
name = "zgetzones",
usage = "/<command> [target]",
aliases = { "zgz" },
description = "Displays all the zones where that player is admin in.",
requiredPermission = "zones.admin",
min = 1
)
public void getzones(CommandSender sender, String[] params) {
String name = params[0].toLowerCase();
Player player = getPlugin().getServer().getPlayer(name);
if(player != null) {
name = player.getName().toLowerCase();
}
Collection<ZoneBase> zones = getPlugin().getZoneManager().getAllZones();
List<ZoneBase> list = new ArrayList<ZoneBase>();
for(ZoneBase zone : zones) {
if(!(zone instanceof ZoneNormal)) continue;
if(((ZoneNormal)zone).isAdminUser(name)) list.add(zone);
}
sender.sendMessage(ChatColor.BLUE + name + ChatColor.WHITE + " has " + list.size() + " zones:");
String message = "";
for(ZoneBase zone : list) {
message += ChatColor.BLUE + zone.getName() + ChatColor.WHITE + "[" + ChatColor.AQUA + zone.getId() + ChatColor.WHITE + "], ";
}
if(message.length() >= 2) {
message = message.substring(0, message.length() - 2);
sender.sendMessage(message);
}
}


@Command(
name = "zclaim",
description = "Claim the zone you're currently standing in.",
requiresPlayer = true,
requiredPermission = "zones.claim"
)
public void run(Player player, String[] vars) {
public void claim(Player player, String[] vars) {
ZoneBase zone = getPlugin().getWorldManager(player).getActiveZone(player);
if(!(zone instanceof ZonePlot)) {
zone.sendMarkupMessage(ChatColor.RED + "You cannot claim {zname} since it's not a claimable zone.", player);
return;
}
((ZonePlot)zone).claim(player);
}

@Command(
name = "zunclaim",
aliases = { "zuc" },
description = "UnClaim the zone you're currently standing in.",
requiresPlayer = true,
requiredPermission = "zones.admin"
)
public void unclaim(Player player, String[] vars) {
ZoneBase zone = getPlugin().getWorldManager(player).getActiveZone(player);
if(!(zone instanceof ZonePlot)) {
zone.sendMarkupMessage(ChatColor.RED + "You cannot unclaim {zname} since it's not a claimable zone.", player);
return;
}
((ZonePlot)zone).unclaim(player);
}
}
12 changes: 11 additions & 1 deletion src/com/zones/model/types/ZonePlot.java
Expand Up @@ -28,8 +28,18 @@ public boolean claim(Player player) {
}
}

doClaim(player);
return true;
}

protected void doClaim(Player player) {
addAdmin(player.getName());
sendMarkupMessage(ZonesConfig.PLAYER_CLAIMES_ZONES, player);
return true;
}

public void unclaim(Player player) {
this.adminusers.clear();
this.updateRights();
sendMarkupMessage("Zone {zname} unclaimed.", player);
}
}

0 comments on commit b42a791

Please sign in to comment.