Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 2 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,6 @@
<artifactId>bukkit</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
Expand All @@ -83,9 +78,8 @@
</dependency>
<dependency>
<groupId>com.sk89q</groupId>
<artifactId>sk89q-command-framework</artifactId>
<version>0.3</version>
<type>jar</type>
<artifactId>command-framework-bukkit</artifactId>
<version>0.5-SNAPSHOT</version>
</dependency>
</dependencies>

Expand Down
155 changes: 79 additions & 76 deletions src/com/oresomecraft/mapdev/Commands.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.oresomecraft.mapdev.generators.NullChunkGenerator;
import com.sk89q.minecraft.util.commands.Command;
import com.sk89q.minecraft.util.commands.CommandContext;
import com.sk89q.minecraft.util.commands.CommandException;
import com.sk89q.minecraft.util.commands.CommandPermissions;
import org.bukkit.*;
import org.bukkit.command.CommandSender;
Expand Down Expand Up @@ -155,14 +154,14 @@ public void members(CommandContext args, CommandSender sender) {
}
}

@Command(aliases = {"loadworld", "createworld"},
@Command(aliases = {"loadworld", "createworld", "lw"},
usage = "<WorldName>",
desc = "Loads or creates a world.",
min = 1,
max = 1,
flags = "tn")
@CommandPermissions({"mapdev.loadworld"})
public void loadWorld(CommandContext args, CommandSender sender) throws CommandException {
public void loadWorld(CommandContext args, CommandSender sender) {
WorldUtil.loadOrCreateWorld(args.getString(0).toLowerCase(), !args.hasFlag('n'));

if (args.hasFlag('t')) {
Expand All @@ -173,13 +172,13 @@ public void loadWorld(CommandContext args, CommandSender sender) throws CommandE
sender.sendMessage(ChatColor.DARK_AQUA + "Created/loaded world " + ChatColor.AQUA + args.getString(0).toLowerCase());
}

@Command(aliases = {"unloadworld"},
@Command(aliases = {"unloadworld", "ulw"},
usage = "<WorldName>",
desc = "Unloads a world.",
min = 1,
max = 1)
@CommandPermissions({"mapdev.unloadworld"})
public void unloadWorld(CommandContext args, CommandSender sender) throws CommandException {
public void unloadWorld(CommandContext args, CommandSender sender) {
if (WorldUtil.unloadWorld(args.getString(0).toLowerCase()))
sender.sendMessage(ChatColor.DARK_AQUA + "Unloaded world " + ChatColor.AQUA + args.getString(0).toLowerCase());
else
Expand All @@ -192,7 +191,7 @@ public void unloadWorld(CommandContext args, CommandSender sender) throws Comman
min = 1,
max = 1)
@CommandPermissions({"mapdev.loadworldfromrepo"})
public void loadWorldFromRepo(CommandContext args, CommandSender sender) throws CommandException {
public void loadWorldFromRepo(CommandContext args, CommandSender sender) {
if (WorldUtil.loadWorldFromRepo(args.getString(0).toLowerCase()))
sender.sendMessage(ChatColor.DARK_AQUA + "Copied and loaded world " + ChatColor.AQUA + args.getString(0).toLowerCase() + ChatColor.DARK_AQUA + " from maps repository!");
else {
Expand All @@ -206,7 +205,7 @@ public void loadWorldFromRepo(CommandContext args, CommandSender sender) throws
desc = "Sends a message only to those in a world",
min = 1)
@CommandPermissions({"mapdev.loadworldfromrepo"})
public void wc(CommandContext args, CommandSender sender) throws CommandException {
public void wc(CommandContext args, CommandSender sender) {
if (sender instanceof ConsoleCommandSender) {
sender.sendMessage(ChatColor.RED + "Console can't do this.");
return;
Expand All @@ -223,7 +222,7 @@ public void wc(CommandContext args, CommandSender sender) throws CommandExceptio
min = 1,
max = 1)
@CommandPermissions({"mapdev.putworldinrepo"})
public void putWorldInRepo(CommandContext args, CommandSender sender) throws CommandException {
public void putWorldInRepo(CommandContext args, CommandSender sender) {
if (WorldUtil.putMapInRepo(args.getString(0).toLowerCase()))
sender.sendMessage(ChatColor.DARK_AQUA + "Copied and put world " + ChatColor.AQUA + args.getString(0).toLowerCase() + ChatColor.DARK_AQUA + " into the maps repository!");
else sender.sendMessage(ChatColor.RED + "Couldn't copy world into maps repo! Did you misspell the world?");
Expand All @@ -235,7 +234,7 @@ public void putWorldInRepo(CommandContext args, CommandSender sender) throws Com
min = 1,
max = 1)
@CommandPermissions({"mapdev.discardworld"})
public void discardWorld(CommandContext args, CommandSender sender) throws CommandException {
public void discardWorld(CommandContext args, CommandSender sender) {
if (WorldUtil.discardWorld(args.getString(0).toLowerCase())) {
sender.sendMessage(ChatColor.DARK_AQUA + "Deleted and unloaded " + ChatColor.AQUA + args.getString(0).toLowerCase());
} else {
Expand All @@ -244,12 +243,12 @@ public void discardWorld(CommandContext args, CommandSender sender) throws Comma
}

@Command(aliases = {"renameworld"},
usage = "<OriginalWorldName> <NewName>",
usage = "<original> <new>",
desc = "Copies, renames & loads a world",
flags = "d",
min = 2, max = 2)
@CommandPermissions({"mapdev.renameworld"})
public void renameWorld(CommandContext args, CommandSender sender) throws CommandException {
public void renameWorld(CommandContext args, CommandSender sender) {
try {
Bukkit.getWorld(args.getString(0)).save();
WorldUtil.copyFolder(new File(args.getString(0)), new File(args.getString(1)));
Expand All @@ -267,8 +266,7 @@ public void renameWorld(CommandContext args, CommandSender sender) throws Comman
sender.sendMessage(ChatColor.RED + "Something went wrong. Perhaps that world doesn't exist?");
return;
}
e.printStackTrace();
//Love, why didn't the world copy?
sender.sendMessage(ChatColor.RED + "You specified an invalid file or an invalid name!");
}
if (args.hasFlag('d')) {
Bukkit.dispatchCommand(sender, "worldtp " + args.getString(1));
Expand All @@ -282,7 +280,7 @@ public void renameWorld(CommandContext args, CommandSender sender) throws Comman
@Command(aliases = {"listmapsrepo"},
desc = "Lists all maps in the defined repo")
@CommandPermissions({"mapdev.listmaps"})
public void listMaps(CommandContext args, CommandSender sender) throws CommandException {
public void listMaps(CommandContext args, CommandSender sender) {
int page = 1;
if (args.argsLength() == 1) {
try {
Expand All @@ -293,14 +291,12 @@ public void listMaps(CommandContext args, CommandSender sender) throws CommandEx
}
}
ArrayList<String> worlds = new ArrayList<String>();
for (File f : new File(WorldUtil.MAPS_REPO).listFiles()) {
if (f.isDirectory() && !(Arrays.asList(WorldUtil.disallowedFiles).contains(f.getName()))) {
for (File f : new File(WorldUtil.MAPS_REPO).listFiles())
if (f.isDirectory() && !(Arrays.asList(WorldUtil.disallowedFiles).contains(f.getName())))
worlds.add(f.getName());
}
}
int maxPage = page * 10;
int i = maxPage - 10;
sender.sendMessage(ChatColor.GOLD + "Maps Repo List (Page " + page + ")");
sender.sendMessage(ChatColor.DARK_AQUA + "Maps Repo List (Page " + page + ")");
//10 per page, so if it's page 2 it will check the array-list from 10-20.
boolean stopCheck = false;
while (i < maxPage && !stopCheck) {
Expand All @@ -313,34 +309,33 @@ public void listMaps(CommandContext args, CommandSender sender) throws CommandEx
stopCheck = true;
}
}
sender.sendMessage(ChatColor.GOLD + "To see next page, type '/listmaps " + (page + 1) + "'");
sender.sendMessage(ChatColor.DARK_AQUA + "To see next page, type '/listmaps " + (page + 1) + "'");
}

@Command(aliases = {"listmaps"},
desc = "Lists all maps ever created on the dev")
desc = "Lists all maps in the world container")
@CommandPermissions({"mapdev.listmaps"})
public void listMaps2(CommandContext args, CommandSender sender) throws CommandException {
public void listMaps2(CommandContext args, CommandSender sender) {
int page = 1;
if (args.argsLength() == 1) {
try {
page = Integer.parseInt(args.getString(0));
if (page < 1 || page > 100) throw new NumberFormatException("Number is too high or too low!");
} catch (NumberFormatException e) {
sender.sendMessage(ChatColor.RED + "That is not a number!");
sender.sendMessage(ChatColor.RED + "Invalid number!");
return;
}
}
ArrayList<String> worlds = new ArrayList<String>();
for (File f : Bukkit.getWorldContainer().listFiles()) {
if (f.isDirectory() && !(Arrays.asList(WorldUtil.disallowedFiles).contains(f.getName()))) {
for (File f : Bukkit.getWorldContainer().listFiles())
if (f.isDirectory() && !(Arrays.asList(WorldUtil.disallowedFiles).contains(f.getName())))
worlds.add(f.getName());
}
}
int maxPage = page * 10;
int i = maxPage - 10;
sender.sendMessage(ChatColor.GOLD + "Maps List (Page " + page + ")");
sender.sendMessage(ChatColor.DARK_AQUA + "Maps List (Page " + page + ")");
//10 per page, so if it's page 2 it will check the array-list from 10-20.
boolean stopCheck = false;
while (i < maxPage && !stopCheck) {
while (i < maxPage && !stopCheck)
try {
sender.sendMessage(ChatColor.DARK_AQUA + "- " + ChatColor.AQUA + worlds.get(i));
i++;
Expand All @@ -349,71 +344,79 @@ public void listMaps2(CommandContext args, CommandSender sender) throws CommandE
i++;
stopCheck = true;
}
}
sender.sendMessage(ChatColor.GOLD + "To see next page, type '/listmaps " + (page + 1) + "'");
sender.sendMessage(ChatColor.DARK_AQUA + "To see next page, type '/listmaps " + (page + 1) + "'");
}

@Command(aliases = {"worldtp"},
@Command(aliases = {"worldtp", "wtp"},
usage = "<WorldName>",
desc = "Teleports you to a world.")
@CommandPermissions({"mapdev.worldtp"})
public void worldtp(CommandContext args, CommandSender sender) throws CommandException {
if (sender instanceof Player) {
Player p = (Player) sender;
if (args.argsLength() < 1) {
sender.sendMessage(ChatColor.RED + "Correct usage: /worldtp <WorldName>");
public void worldtp(CommandContext args, CommandSender sender) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "Error: You must be a player.");
return;
}
Player p = (Player) sender;
if (args.argsLength() < 1) {
sender.sendMessage(ChatColor.RED + "Correct usage: /worldtp <WorldName>");
} else {
if (Bukkit.getWorld(args.getString(0)) != null) {
p.teleport(Bukkit.getWorld(args.getString(0)).getSpawnLocation());
} else {
if (Bukkit.getWorld(args.getString(0)) != null) {
p.teleport(Bukkit.getWorld(args.getString(0)).getSpawnLocation());
} else {
p.sendMessage(ChatColor.RED + "The map you specified doesn't exist or isn't loaded!");
}
p.sendMessage(ChatColor.RED + "The map you specified doesn't exist or isn't loaded!");
}
} else {
sender.sendMessage("You must be a player to use this command!");
}
}

@Command(aliases = {"worldsetspawn"},
@Command(aliases = {"worldsetspawn", "wss"},
desc = "Sets spawn for a world.")
@CommandPermissions({"mapdev.worldsetspawn"})
public void worldSetSpawn(CommandContext args, CommandSender sender) throws CommandException {
if (sender instanceof Player) {
Player p = (Player) sender;
World world = p.getWorld();
world.setSpawnLocation((int) p.getLocation().getX(), (int) p.getLocation().getY(), (int) p.getLocation().getZ());
sender.sendMessage(ChatColor.AQUA + "Set spawn point for world '" + p.getWorld().getName() + "'");
} else {
sender.sendMessage("You must be a player to use this command!");
public void worldSetSpawn(CommandContext args, CommandSender sender) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "Error: You must be a player.");
return;
}

Player p = (Player) sender;
World world = p.getWorld();
world.setSpawnLocation((int) p.getLocation().getX(), (int) p.getLocation().getY(), (int) p.getLocation().getZ());
sender.sendMessage(ChatColor.AQUA + "Set spawn point for world '" + p.getWorld().getName() + "'");
}

@Command(aliases = {"terraform", "tf"},
usage = "/terraform",
desc = "Adds Terraforming tools to your inventory.",
flags = "l")
@Command(aliases = {"modify", "mf", "terraform", "tf"},
desc = "Adds Modification tools to your inventory.",
flags = "la")
@CommandPermissions({"mapdev.terraform"})
public void terraform(CommandContext args, CommandSender sender) throws CommandException {
if (sender instanceof Player) {
Player p = (Player) sender;
p.getInventory().clear();
p.getInventory().setItem(0, new ItemStack(Material.COMPASS));
p.getInventory().setItem(1, new ItemStack(Material.WOOD_AXE));
p.getInventory().setItem(2, new ItemStack(Material.ARROW));
p.getInventory().setItem(3, new ItemStack(Material.DIRT));
p.getInventory().setItem(4, new ItemStack(Material.STONE));
p.getInventory().setItem(5, new ItemStack(Material.DIAMOND_PICKAXE));
public void terraform(CommandContext args, CommandSender sender) {
if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "Error: You must be a player.");
return;
}

if (args.hasFlag('l')) {
p.getInventory().setItem(6, new ItemStack(Material.GRASS));
p.getInventory().setItem(7, new ItemStack(Material.SAND));
p.getInventory().setItem(8, new ItemStack(Material.LEATHER_HELMET));
p.sendMessage(ChatColor.DARK_AQUA + "Inventory replaced with Leet TerraForming tools!");
} else {
p.sendMessage(ChatColor.DARK_AQUA + "Inventory replaced with TerraForming tools!");
}
Player p = (Player) sender;
p.getInventory().clear();
p.getInventory().setItem(0, new ItemStack(Material.COMPASS));
p.getInventory().setItem(1, new ItemStack(Material.WOOD_AXE));
p.getInventory().setItem(2, new ItemStack(Material.ARROW));
p.getInventory().setItem(3, new ItemStack(Material.DIRT));
p.getInventory().setItem(4, new ItemStack(Material.STONE));
p.getInventory().setItem(5, new ItemStack(Material.DIAMOND_PICKAXE));
p.getInventory().setItem(8, Util.setName(new ItemStack(Material.NETHER_STAR, 1), ChatColor.BLUE + "Manage World"));

if (args.hasFlag('l')) {
p.getInventory().setItem(6, new ItemStack(Material.GRASS));
p.getInventory().setItem(7, new ItemStack(Material.SAND));
p.sendMessage(ChatColor.DARK_AQUA + "Inventory replaced with Elite Modification tools!");
} else if (args.hasFlag('a')) {
p.getInventory().setItem(0, new ItemStack(Material.COMPASS));
p.getInventory().setItem(3, new ItemStack(Material.INK_SACK, 1, (byte) 15));
p.getInventory().setItem(4, new ItemStack(Material.GRASS));
p.getInventory().setItem(5, new ItemStack(Material.STONE));
p.getInventory().setItem(6, new ItemStack(Material.CAKE));
p.getInventory().setItem(7, new ItemStack(Material.HUGE_MUSHROOM_2, 1, (byte) 90));
p.sendMessage(ChatColor.DARK_AQUA + "Inventory replaced with Advanced Modification tools!");
} else {
sender.sendMessage("You must be a player to use this command!");
p.sendMessage(ChatColor.DARK_AQUA + "Inventory replaced with Modification tools!");
}
}
}
28 changes: 4 additions & 24 deletions src/com/oresomecraft/mapdev/MapDevPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.sk89q.bukkit.util.CommandsManagerRegistration;
import com.sk89q.minecraft.util.commands.*;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
Expand All @@ -26,12 +25,12 @@ public MapDevPlugin() {

public void onDisable() {
PluginDescriptionFile pdfFile = getDescription();
this.logger.info(pdfFile.getName() + " is now disabled");
this.logger.info("[MapDevPlugin] " + pdfFile.getName() + " is now disabled!");
}

public void onEnable() {
PluginDescriptionFile pdfFile = getDescription();
this.logger.info(pdfFile.getName() + " version " + pdfFile.getVersion() + " is now enabled");
this.logger.info("[MapDevPlugin] " + pdfFile.getName() + " version " + pdfFile.getVersion() + " is now enabled!");
getServer().getPluginManager().registerEvents(this, this);
getServer().getPluginManager().registerEvents(new WorldListener(this), this);
registerCommands();
Expand All @@ -50,7 +49,6 @@ public static MapDevPlugin getInstance() {
*/

private CommandsManager<CommandSender> commands;
private boolean opPermissions;

private void registerCommands() {
final MapDevPlugin plugin = this;
Expand Down Expand Up @@ -95,27 +93,9 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
public boolean hasPermission(CommandSender sender, String perm) {
if (!(sender instanceof Player)) {
if (sender.hasPermission(perm)) {
return ((sender.isOp() && (opPermissions || sender instanceof ConsoleCommandSender)));
return ((sender.isOp() || sender instanceof ConsoleCommandSender));
}
}
return hasPermission(sender, ((Player) sender).getWorld(), perm);
}

public boolean hasPermission(CommandSender sender, World world, String perm) {
return ((sender.isOp() && opPermissions) || sender instanceof ConsoleCommandSender || sender.hasPermission(perm));
}

public void checkPermission(CommandSender sender, String perm)
throws CommandPermissionsException {
if (!hasPermission(sender, perm)) {
throw new CommandPermissionsException();
}
}

public void checkPermission(CommandSender sender, World world, String perm)
throws CommandPermissionsException {
if (!hasPermission(sender, world, perm)) {
throw new CommandPermissionsException();
}
return sender.hasPermission(perm);
}
}
Loading