diff options
Diffstat (limited to 'src/main/java/com/MylesAndMore/tumble')
3 files changed, 69 insertions, 0 deletions
diff --git a/src/main/java/com/MylesAndMore/tumble/Main.java b/src/main/java/com/MylesAndMore/tumble/Main.java index 4228e16..27fadb2 100644 --- a/src/main/java/com/MylesAndMore/tumble/Main.java +++ b/src/main/java/com/MylesAndMore/tumble/Main.java @@ -2,6 +2,7 @@ package com.MylesAndMore.tumble; import com.MylesAndMore.tumble.commands.ReloadCommand; import com.MylesAndMore.tumble.api.Metrics; +import com.MylesAndMore.tumble.commands.SetWorldConfig; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin{ @@ -11,6 +12,7 @@ public class Main extends JavaPlugin{ getServer().getPluginManager().registerEvents(new EventListener(), this); // Register commands this.getCommand("reload").setExecutor(new ReloadCommand()); + this.getCommand("setworld").setExecutor(new SetWorldConfig()); // Save the default config file (packaged in the JAR) this.saveDefaultConfig(); diff --git a/src/main/java/com/MylesAndMore/tumble/WorldManager.java b/src/main/java/com/MylesAndMore/tumble/WorldManager.java new file mode 100644 index 0000000..be660b4 --- /dev/null +++ b/src/main/java/com/MylesAndMore/tumble/WorldManager.java @@ -0,0 +1,5 @@ +package com.MylesAndMore.tumble; + +public class WorldManager { + +} diff --git a/src/main/java/com/MylesAndMore/tumble/commands/SetWorldConfig.java b/src/main/java/com/MylesAndMore/tumble/commands/SetWorldConfig.java new file mode 100644 index 0000000..8406253 --- /dev/null +++ b/src/main/java/com/MylesAndMore/tumble/commands/SetWorldConfig.java @@ -0,0 +1,62 @@ +package com.MylesAndMore.tumble.commands; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.plugin.Plugin; + +import java.util.Objects; + +public class SetWorldConfig implements CommandExecutor { + Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("tumble"); + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + // Initialize vars for their respective command arguments + String world = args[0]; + String worldType = args[1]; + // Catch for null arguments + if (args.length > 0) { + // Check if the world type is lobby + if (Objects.equals(worldType, "lobby")) { + // Check if the world is actually a world on the server + if (Bukkit.getWorld(world) != null) { + // Set the specified value of the world in the config under lobbyWorld + plugin.getConfig().set("lobbyWorld", world); + // Save said config + plugin.saveConfig(); + // Feedback + sender.sendMessage(ChatColor.GREEN + "Lobby world successfully linked: " + ChatColor.GRAY + world); + sender.sendMessage(ChatColor.GREEN + "Run /tumble:reload for the changes to take effect."); + } + // Feedback for if the world doesn't exist + else { + sender.sendMessage(ChatColor.RED + "Failed to find a world named " + ChatColor.GRAY + world); + } + } + // Check if the world type is game + else if (Objects.equals(args[1], "game")) { + if (Bukkit.getWorld(world) != null) { + plugin.getConfig().set("gameWorld", world); + plugin.saveConfig(); + sender.sendMessage(ChatColor.GREEN + "Game world successfully linked: " + ChatColor.GRAY + world); + sender.sendMessage(ChatColor.GREEN + "Run /tumble:reload for the changes to take effect."); + } + else { + sender.sendMessage(ChatColor.RED + "Failed to find a world named " + ChatColor.GRAY + world); + } + } + // Feedback for if lobby or game wasn't entered + else { + sender.sendMessage(ChatColor.RED + "Allowed world types are " + ChatColor.GRAY + "lobby " + ChatColor.RED + "and " + ChatColor.GRAY + "game" + ChatColor.RED + "."); + } + } + // Feedback for if no args were entered + else { + sender.sendMessage(ChatColor.RED + "Usage: " + ChatColor.GRAY + "/tumble:setworld <world> lobby|game"); + } + return true; + } +} |