From f02833bb8e30b3f33c27a22f56816b54fa170f06 Mon Sep 17 00:00:00 2001 From: uweb Date: Mon, 10 Jul 2023 20:30:47 +0200 Subject: [PATCH] Initial commit --- .gitignore | 113 ++++++++++++++++++ README.md | 0 pom.xml | 76 ++++++++++++ .../de/uweb95/worldcreator/WorldCreator.java | 17 +++ .../commands/CommandInterface.java | 17 +++ .../worldcreator/commands/CommandManager.java | 75 ++++++++++++ .../commands/CreateWorldCommand.java | 34 ++++++ .../commands/DeleteWorldCommand.java | 33 +++++ .../worldcreator/commands/HelpCommand.java | 29 +++++ .../commands/ImportWorldCommand.java | 30 +++++ .../commands/ListWorldsCommand.java | 30 +++++ .../commands/LoadWorldCommand.java | 30 +++++ .../worldcreator/commands/RuleCommand.java | 67 +++++++++++ .../commands/TeleportCommand.java | 48 ++++++++ .../commands/UnloadWorldCommand.java | 43 +++++++ .../worldcreator/commands/VersionCommand.java | 27 +++++ .../worldcreator/util/Configuration.java | 47 ++++++++ .../de/uweb95/worldcreator/util/Message.java | 17 +++ .../worldcreator/util/UpdateChecker.java | 2 + .../worldcreator/util/WorldConfiguration.java | 2 + .../util/WorldConfigurationEntry.java | 2 + .../uweb95/worldcreator/util/WorldHelper.java | 25 ++++ src/main/resources/plugin.yml | 8 ++ src/main/resources/worlds.yml | 0 24 files changed, 772 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 pom.xml create mode 100644 src/main/java/de/uweb95/worldcreator/WorldCreator.java create mode 100644 src/main/java/de/uweb95/worldcreator/commands/CommandInterface.java create mode 100644 src/main/java/de/uweb95/worldcreator/commands/CommandManager.java create mode 100644 src/main/java/de/uweb95/worldcreator/commands/CreateWorldCommand.java create mode 100644 src/main/java/de/uweb95/worldcreator/commands/DeleteWorldCommand.java create mode 100644 src/main/java/de/uweb95/worldcreator/commands/HelpCommand.java create mode 100644 src/main/java/de/uweb95/worldcreator/commands/ImportWorldCommand.java create mode 100644 src/main/java/de/uweb95/worldcreator/commands/ListWorldsCommand.java create mode 100644 src/main/java/de/uweb95/worldcreator/commands/LoadWorldCommand.java create mode 100644 src/main/java/de/uweb95/worldcreator/commands/RuleCommand.java create mode 100644 src/main/java/de/uweb95/worldcreator/commands/TeleportCommand.java create mode 100644 src/main/java/de/uweb95/worldcreator/commands/UnloadWorldCommand.java create mode 100644 src/main/java/de/uweb95/worldcreator/commands/VersionCommand.java create mode 100644 src/main/java/de/uweb95/worldcreator/util/Configuration.java create mode 100644 src/main/java/de/uweb95/worldcreator/util/Message.java create mode 100644 src/main/java/de/uweb95/worldcreator/util/UpdateChecker.java create mode 100644 src/main/java/de/uweb95/worldcreator/util/WorldConfiguration.java create mode 100644 src/main/java/de/uweb95/worldcreator/util/WorldConfigurationEntry.java create mode 100644 src/main/java/de/uweb95/worldcreator/util/WorldHelper.java create mode 100644 src/main/resources/plugin.yml create mode 100644 src/main/resources/worlds.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4788b4b --- /dev/null +++ b/.gitignore @@ -0,0 +1,113 @@ +# User-specific stuff +.idea/ + +*.iml +*.ipr +*.iws + +# IntelliJ +out/ + +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +target/ + +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next + +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +.mvn/wrapper/maven-wrapper.jar +.flattened-pom.xml + +# Common working directory +run/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..df9b292 --- /dev/null +++ b/pom.xml @@ -0,0 +1,76 @@ + + + 4.0.0 + + de.uweb95 + WorldCreator + 1.0-SNAPSHOT + jar + + WorldCreator + + A simple plugin to generate and import worlds + + 1.8 + UTF-8 + + https://mc.lunar-software.eu + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + ${java.version} + ${java.version} + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + shade + + + false + + + + + + + + src/main/resources + true + + + + + + + papermc-repo + https://repo.papermc.io/repository/maven-public/ + + + sonatype + https://oss.sonatype.org/content/groups/public/ + + + + + + io.papermc.paper + paper-api + 1.20-R0.1-SNAPSHOT + provided + + + diff --git a/src/main/java/de/uweb95/worldcreator/WorldCreator.java b/src/main/java/de/uweb95/worldcreator/WorldCreator.java new file mode 100644 index 0000000..c03d980 --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/WorldCreator.java @@ -0,0 +1,17 @@ +package de.uweb95.worldcreator; + +import org.bukkit.plugin.java.JavaPlugin; + +public final class WorldCreator extends JavaPlugin { + + @Override + public void onEnable() { + // Plugin startup logic + + } + + @Override + public void onDisable() { + // Plugin shutdown logic + } +} diff --git a/src/main/java/de/uweb95/worldcreator/commands/CommandInterface.java b/src/main/java/de/uweb95/worldcreator/commands/CommandInterface.java new file mode 100644 index 0000000..c843bed --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/commands/CommandInterface.java @@ -0,0 +1,17 @@ +package de.uweb95.minebay.commands; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.List; + +public interface CommandInterface { + boolean onlyPlayer = false; + + boolean checkPermissions(Player player); + + boolean executeCommand(CommandSender sender, Command command, String commandLabel, String[] args); + + List onTabComplete(CommandSender sender, Command command, String commandLabel, String[] args); +} diff --git a/src/main/java/de/uweb95/worldcreator/commands/CommandManager.java b/src/main/java/de/uweb95/worldcreator/commands/CommandManager.java new file mode 100644 index 0000000..60c317b --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/commands/CommandManager.java @@ -0,0 +1,75 @@ +package de.uweb95.minebay.commands; + +import de.uweb95.minebay.util.Message; +import de.uweb95.minebay.util.Translation; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.*; + +public class CommandManager implements CommandInterface { + private final Map commands = new HashMap<>(); + + public void registerCommand(String command, CommandInterface commandClass) { + commands.put(command, commandClass); + } + + public void unregisterCommand(String command) { + commands.remove(command); + } + + @Override + public boolean checkPermissions(Player player) { + return player.hasPermission("minebay"); + } + + @Override + public boolean executeCommand(CommandSender sender, Command command, String commandLabel, String[] args) { + CommandInterface selectedCommand = null; + + if (args.length > 0) { + selectedCommand = commands.get(args[0]); + } + + if (selectedCommand != null) { + if (sender instanceof Player && !selectedCommand.checkPermissions((Player) sender)) { + return false; + } + + return selectedCommand.executeCommand(sender, command, commandLabel, args); + } + + sendHelpMessage(sender); + + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String commandLabel, String[] args) { + List options = new ArrayList<>(); + + if (args.length > 1) { + CommandInterface selectedCommand; + selectedCommand = commands.get(args[0]); + + if (selectedCommand == null) { + return null; + } + + return selectedCommand.onTabComplete(sender, command, commandLabel, args); + } + + commands.forEach((key, value) -> options.add(key)); + + return options; + } + + private void sendHelpMessage(CommandSender sender) { + StringBuilder builder = new StringBuilder(Translation.getTranslation("help")).append("\n"); + + commands.forEach((key, value) -> builder.append(key).append("\n")); + + sender.sendMessage(Message.pluginMessage(builder.toString())); + } +} diff --git a/src/main/java/de/uweb95/worldcreator/commands/CreateWorldCommand.java b/src/main/java/de/uweb95/worldcreator/commands/CreateWorldCommand.java new file mode 100644 index 0000000..0f7778e --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/commands/CreateWorldCommand.java @@ -0,0 +1,34 @@ +package de.uweb95.minebay.commands; + +import de.uweb95.minebay.util.Message; +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.WorldCreator; +import org.bukkit.WorldType; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.List; + +public class CreateWorldCommand implements CommandInterface { + @Override + public boolean checkPermissions(Player player) { + return player.hasPermission("minebay.user") || player.hasPermission("minebay.admin"); + } + + @Override + public boolean executeCommand(CommandSender sender, Command command, String commandLabel, String[] args) { + + WorldCreator worldCreator = new WorldCreator("world_test"); + worldCreator.type(WorldType.NORMAL); + worldCreator.createWorld(); + + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String commandLabel, String[] args) { + return null; + } +} diff --git a/src/main/java/de/uweb95/worldcreator/commands/DeleteWorldCommand.java b/src/main/java/de/uweb95/worldcreator/commands/DeleteWorldCommand.java new file mode 100644 index 0000000..f141312 --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/commands/DeleteWorldCommand.java @@ -0,0 +1,33 @@ +package de.uweb95.worldcreator.commands; + +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.WorldCreator; +import org.bukkit.WorldType; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.List; + +public class ImportWorldCommand implements CommandInterface { + @Override + public boolean checkPermissions(Player player) { + return player.hasPermission("minebay.user") || player.hasPermission("minebay.admin"); + } + + @Override + public boolean executeCommand(CommandSender sender, Command command, String commandLabel, String[] args) { + Bukkit.createWorld(WorldCreator.name("world_test")); + + Bukkit.unloadWorld("world_test", false); + Bukkit.getWorldContainer(); + Bukkit.getWorld("world name").getWorldFolder().delete(); + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String commandLabel, String[] args) { + return null; + } +} diff --git a/src/main/java/de/uweb95/worldcreator/commands/HelpCommand.java b/src/main/java/de/uweb95/worldcreator/commands/HelpCommand.java new file mode 100644 index 0000000..3054696 --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/commands/HelpCommand.java @@ -0,0 +1,29 @@ +package de.uweb95.worldcreator.commands; + +import de.uweb95.worldcreator.util.Message; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.List; + +public class ListWorldsCommand implements CommandInterface { + @Override + public boolean checkPermissions(Player player) { + return player.hasPermission("wc.unload") || player.hasPermission("wc.admin"); + } + + @Override + public boolean executeCommand(CommandSender sender, Command command, String commandLabel, String[] args) { + StringBuilder output = new StringBuilder(""); + + sender.sendMessage(Message.pluginMessage(output.toString())); + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String commandLabel, String[] args) { + return null; + } +} diff --git a/src/main/java/de/uweb95/worldcreator/commands/ImportWorldCommand.java b/src/main/java/de/uweb95/worldcreator/commands/ImportWorldCommand.java new file mode 100644 index 0000000..5f1dcde --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/commands/ImportWorldCommand.java @@ -0,0 +1,30 @@ +package de.uweb95.worldcreator.commands; + +import org.bukkit.WorldCreator; +import org.bukkit.WorldType; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.List; + +public class CreateWorldCommand implements CommandInterface { + @Override + public boolean checkPermissions(Player player) { + return player.hasPermission("minebay.user") || player.hasPermission("minebay.admin"); + } + + @Override + public boolean executeCommand(CommandSender sender, Command command, String commandLabel, String[] args) { + WorldCreator worldCreator = new WorldCreator("world_test"); + worldCreator.type(WorldType.NORMAL); + worldCreator.createWorld(); + + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String commandLabel, String[] args) { + return null; + } +} diff --git a/src/main/java/de/uweb95/worldcreator/commands/ListWorldsCommand.java b/src/main/java/de/uweb95/worldcreator/commands/ListWorldsCommand.java new file mode 100644 index 0000000..d69d703 --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/commands/ListWorldsCommand.java @@ -0,0 +1,30 @@ +package de.uweb95.worldcreator.commands; + +import de.uweb95.worldcreator.util.Message; +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.io.File; +import java.util.List; + +public class UnloadWorldCommand implements CommandInterface { + @Override + public boolean checkPermissions(Player player) { + return player.hasPermission("wc.unload") || player.hasPermission("wc.admin"); + } + + @Override + public boolean executeCommand(CommandSender sender, Command command, String commandLabel, String[] args) { + Bukkit.unloadWorld("world_test", true); + + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String commandLabel, String[] args) { + return null; + } +} diff --git a/src/main/java/de/uweb95/worldcreator/commands/LoadWorldCommand.java b/src/main/java/de/uweb95/worldcreator/commands/LoadWorldCommand.java new file mode 100644 index 0000000..fd7aee5 --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/commands/LoadWorldCommand.java @@ -0,0 +1,30 @@ +package de.uweb95.worldcreator.commands; + +import de.uweb95.worldcreator.util.Message; +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.io.File; +import java.util.List; + +public class UnloadWorldCommand implements CommandInterface { + @Override + public boolean checkPermissions(Player player) { + return player.hasPermission("wc.unload") || player.hasPermission("wc.admin"); + } + + @Override + public boolean executeCommand(CommandSender sender, Command command, String commandLabel, String[] args) { + Bukkit.unloadWorld("world_test", false); + + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String commandLabel, String[] args) { + return null; + } +} diff --git a/src/main/java/de/uweb95/worldcreator/commands/RuleCommand.java b/src/main/java/de/uweb95/worldcreator/commands/RuleCommand.java new file mode 100644 index 0000000..f507b79 --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/commands/RuleCommand.java @@ -0,0 +1,67 @@ +package de.uweb95.worldcreator.commands; + +import de.uweb95.worldcreator.util.Message; +import de.uweb95.worldcreator.util.WorldHelper; +import org.apache.commons.lang3.SystemUtils; +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +public class GameRuleCommand implements CommandInterface { + @Override + public boolean checkPermissions(Player player) { + return player.hasPermission("wc.delete"); + } + + @Override + public boolean executeCommand(CommandSender sender, Command command, String commandLabel, String[] args) { + String worldName = WorldHelper.getWorldFromArgs(args); + + if (worldName == null) { + return true; + } + + World world = Bukkit.getWorld(worldName); + + if (world == null) { + sender.sendMessage(Message.pluginMessage(String.format("The world '%s' does not exist", worldName))); + return true; + } + + File worldFolder = world.getWorldFolder(); + Bukkit.unloadWorld(world, false); + + if (worldFolder.delete()) { + sender.sendMessage(Message.pluginMessage(String.format("The folder for world '%s' does not exist. It might not be deleted.", worldName))); + return true; + } + + sender.sendMessage(Message.pluginMessage("World deleted successfully!")); + + if (SystemUtils.OS_NAME.contains("Windows") && worldFolder.exists()) { + worldFolder.deleteOnExit(); + sender.sendMessage(Message.pluginMessage("Deleting the world folder does not work correctly on Windows. We'll try to delete it when the server stops.")); + } + + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String commandLabel, String[] args) { + List options = new ArrayList<>(); + + if (args.length == 2) { + for (World world : Bukkit.getWorlds()) { + options.add(world.getName()); + } + } + + return options; + } +} diff --git a/src/main/java/de/uweb95/worldcreator/commands/TeleportCommand.java b/src/main/java/de/uweb95/worldcreator/commands/TeleportCommand.java new file mode 100644 index 0000000..5927a43 --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/commands/TeleportCommand.java @@ -0,0 +1,48 @@ +package de.uweb95.worldcreator.commands; + +import de.uweb95.worldcreator.util.Message; +import de.uweb95.worldcreator.util.WorldConfiguration; +import de.uweb95.worldcreator.util.WorldHelper; +import org.bukkit.Bukkit; +import org.bukkit.WorldCreator; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +public class LoadWorldCommand implements CommandInterface { + @Override + public boolean checkPermissions(Player player) { + return player.hasPermission("wc.load"); + } + + @Override + public boolean executeCommand(CommandSender sender, Command command, String commandLabel, String[] args) { + String worldName = WorldHelper.getWorldFromArgs(args); + + if (worldName == null) { + sender.sendMessage(Message.pluginMessage("/wc help")); + return true; + } + + new WorldCreator(worldName).createWorld(); + WorldConfiguration.getInstance().setWorldLoad(worldName, true); + + sender.sendMessage(Message.pluginMessage("World loaded successfully!")); + + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String commandLabel, String[] args) { + List options = new ArrayList<>(); + + if (args.length == 2) { + options.add(""); + } + + return options; + } +} diff --git a/src/main/java/de/uweb95/worldcreator/commands/UnloadWorldCommand.java b/src/main/java/de/uweb95/worldcreator/commands/UnloadWorldCommand.java new file mode 100644 index 0000000..3524701 --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/commands/UnloadWorldCommand.java @@ -0,0 +1,43 @@ +package de.uweb95.worldcreator.commands; + +import de.uweb95.worldcreator.WorldCreator; +import de.uweb95.worldcreator.util.Message; +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.io.File; +import java.util.List; + +public class DeleteWorldCommand implements CommandInterface { + @Override + public boolean checkPermissions(Player player) { + return player.hasPermission("minebay.user") || player.hasPermission("minebay.admin"); + } + + @Override + public boolean executeCommand(CommandSender sender, Command command, String commandLabel, String[] args) { + World world = Bukkit.getWorld("world_test"); + + if (world == null) { + sender.sendMessage(Message.pluginMessage(String.format("The world '%s' does not exist", "world_test"))); + return false; + } + + Bukkit.unloadWorld(world, false); + File worldFolder = world.getWorldFolder(); + + if (worldFolder.delete()) { + sender.sendMessage(Message.pluginMessage(String.format("The folder for world '%s' does not exist. It might not be deleted.", "world_test"))); + } + + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String commandLabel, String[] args) { + return null; + } +} diff --git a/src/main/java/de/uweb95/worldcreator/commands/VersionCommand.java b/src/main/java/de/uweb95/worldcreator/commands/VersionCommand.java new file mode 100644 index 0000000..05d58ad --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/commands/VersionCommand.java @@ -0,0 +1,27 @@ +package de.uweb95.minebay.commands; + +import de.uweb95.minebay.util.Message; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.List; + +public class VersionCommand implements CommandInterface { + @Override + public boolean checkPermissions(Player player) { + return player.hasPermission("minebay.user") || player.hasPermission("minebay.admin"); + } + + @Override + public boolean executeCommand(CommandSender sender, Command command, String commandLabel, String[] args) { + sender.sendMessage(Message.pluginMessage("Version 1.0")); + + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String commandLabel, String[] args) { + return null; + } +} diff --git a/src/main/java/de/uweb95/worldcreator/util/Configuration.java b/src/main/java/de/uweb95/worldcreator/util/Configuration.java new file mode 100644 index 0000000..8cb8d28 --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/util/Configuration.java @@ -0,0 +1,47 @@ +package de.uweb95.minebay.util; + +import de.uweb95.minebay.Minebay; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; + +import java.io.File; +import java.util.HashMap; +import java.util.Map; + +public class Configuration { + private static Map configFiles = new HashMap<>(); + + public static void loadPluginConfig() { + Minebay plugin = Minebay.getInstance(); + File dataFolder = plugin.getDataFolder(); + if (!dataFolder.exists()) dataFolder.mkdir(); + + File configurationFile = new File(dataFolder + System.getProperty("file.separator") + "config.yml"); + if (!configurationFile.exists()) plugin.saveDefaultConfig(); + + try { + plugin.getConfig().load(configurationFile); + } catch (Exception e) { + plugin.getLogger().severe("Could not load the config file! Please check if the permissions are set! Error: " + e.getMessage()); + } + } + + public static void loadConfig(String filename) { + if (configFiles.containsKey(filename)) { + return; + } + + File configFile = new File(Minebay.getInstance().getDataFolder(), filename); + + if (!configFile.exists()) { + configFile.getParentFile().mkdirs(); + Minebay.getInstance().saveResource(filename, false); + } + + configFiles.put(filename, YamlConfiguration.loadConfiguration(configFile)); + } + + public static FileConfiguration getConfig(String filename) { + return configFiles.get(filename); + } +} diff --git a/src/main/java/de/uweb95/worldcreator/util/Message.java b/src/main/java/de/uweb95/worldcreator/util/Message.java new file mode 100644 index 0000000..c1b3d8a --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/util/Message.java @@ -0,0 +1,17 @@ +package de.uweb95.minebay.util; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.Style; +import net.kyori.adventure.text.format.TextColor; + +public class Message { + public static Component pluginMessage(String text, String color) { + Component prefix = Component.text("[Minebay] ", Style.style(TextColor.fromCSSHexString("#00bfff"))); + Component message = Component.text(text, Style.style(TextColor.fromCSSHexString(color))); + return prefix.append(message); + } + + public static Component pluginMessage(String text) { + return pluginMessage(text, "#ffffff"); + } +} diff --git a/src/main/java/de/uweb95/worldcreator/util/UpdateChecker.java b/src/main/java/de/uweb95/worldcreator/util/UpdateChecker.java new file mode 100644 index 0000000..2d730ec --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/util/UpdateChecker.java @@ -0,0 +1,2 @@ +package de.uweb95.worldcreator.util;public class UpdateChecker { +} diff --git a/src/main/java/de/uweb95/worldcreator/util/WorldConfiguration.java b/src/main/java/de/uweb95/worldcreator/util/WorldConfiguration.java new file mode 100644 index 0000000..af7906c --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/util/WorldConfiguration.java @@ -0,0 +1,2 @@ +package de.uweb95.worldcreator.util;public class WorldConfiguration { +} diff --git a/src/main/java/de/uweb95/worldcreator/util/WorldConfigurationEntry.java b/src/main/java/de/uweb95/worldcreator/util/WorldConfigurationEntry.java new file mode 100644 index 0000000..a28d669 --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/util/WorldConfigurationEntry.java @@ -0,0 +1,2 @@ +package de.uweb95.worldcreator.util;public class WorldConfigurationEntry { +} diff --git a/src/main/java/de/uweb95/worldcreator/util/WorldHelper.java b/src/main/java/de/uweb95/worldcreator/util/WorldHelper.java new file mode 100644 index 0000000..7eb1648 --- /dev/null +++ b/src/main/java/de/uweb95/worldcreator/util/WorldHelper.java @@ -0,0 +1,25 @@ +package de.uweb95.worldcreator.util; + +import org.bukkit.Bukkit; + +import java.io.File; + +public class World { + + public static String getWorldFromArgs(String[] args) { + String world = null; + + if (args.length > 1) { + world = args[1]; + } + + return world; + } + + public static boolean checkIfWorldFolderExists(String name) { + String path = Bukkit.getWorldContainer().getPath() + "/" + name; + File folder = new File(path); + + return folder.exists() && folder.isDirectory(); + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..b8271c6 --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,8 @@ +name: WorldCreator +version: '${project.version}' +main: de.uweb95.worldcreator.WorldCreator +api-version: 1.20 +prefix: WorldCreator +authors: [Uweb95] +description: A simple plugin to generate and import worlds +website: https://mc.lunar-software.eu diff --git a/src/main/resources/worlds.yml b/src/main/resources/worlds.yml new file mode 100644 index 0000000..e69de29