diff --git a/NWorldPermissions/NWorldPermissions.iml b/NWorldPermissions/NWorldPermissions.iml
index 644750d..245d342 100644
--- a/NWorldPermissions/NWorldPermissions.iml
+++ b/NWorldPermissions/NWorldPermissions.iml
@@ -7,6 +7,6 @@
-
+
\ No newline at end of file
diff --git a/NWorldPermissions/NWorldPermissions.ipr b/NWorldPermissions/NWorldPermissions.ipr
index 922b8d8..7e75302 100644
--- a/NWorldPermissions/NWorldPermissions.ipr
+++ b/NWorldPermissions/NWorldPermissions.ipr
@@ -6,9 +6,9 @@
-
-
+
+
@@ -18,140 +18,23 @@
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
+
+
-
-
+
+
+
-
-
-
- teleport
- teleportation
- teleported
- teleporting
- unteleported
-
-
+
+
+
+
+
+
+
+
+
+
@@ -165,13 +48,24 @@
-
+
+
+
+
+
+
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NWorldPermissions/res/plugin.yml b/NWorldPermissions/res/plugin.yml
index 189e19e..4c5d351 100644
--- a/NWorldPermissions/res/plugin.yml
+++ b/NWorldPermissions/res/plugin.yml
@@ -1,6 +1,6 @@
name: NWorldPermissions
main: top.nololiyt.worldpermissions.RootPlugin
-version: 4.0.4
+version: 4.0.4_Pre1
author: yueyinqiu5990
description: A strange power stopping players being teleported to a world.
website: https://github.com/yueyinqiu/NWorldPermissions/wiki
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/MarksManager.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/MarksManager.java
deleted file mode 100644
index 85f40eb..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/MarksManager.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package top.nololiyt.worldpermissions;
-
-import org.bukkit.Location;
-import org.bukkit.configuration.file.YamlConfiguration;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-
-public class MarksManager
-{
- private RootPlugin rootPlugin;
-
- private YamlConfiguration configuration;
-
- MarksManager(RootPlugin rootPlugin)
- {
- this.rootPlugin = rootPlugin;
- File file = getMarksFile();
- if (!file.exists())
- {
- saveDefaultFile(file);
- }
- reloadConfiguration();
- }
-
- private File getMarksFile()
- {
- return new File(
- rootPlugin.getDataFolder().getAbsolutePath(), "marks.yml");
- }
-
- private void saveDefaultFile(File file)
- {
- InputStream res = rootPlugin.getResource("marks.yml");
- try
- {
- file.getParentFile().mkdirs();
- file.delete();
- file.createNewFile();
- FileOutputStream fileOutputStream = new FileOutputStream(file);
-
- byte[] buffer = new byte[4096];
- for (; ; )
- {
- int count = res.read(buffer, 0, buffer.length);
- fileOutputStream.write(buffer, 0, count);
- if (count < buffer.length)
- {
- break;
- }
- }
-
- fileOutputStream.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
-
- public void reloadConfiguration()
- {
- configuration = YamlConfiguration.loadConfiguration(
- getMarksFile());
- }
-
- public void setMark(String name, Location mark) throws IOException
- {
- configuration.set(name, mark);
- configuration.save(getMarksFile());
- }
-
- public Location getMark(String name)
- {
- Object oLocation = configuration.get(name);
- if (oLocation == null)
- {
- return null;
- }
- return (Location) oLocation;
- }
-}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/MarksManager.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/MarksManager.kt
new file mode 100644
index 0000000..295af60
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/MarksManager.kt
@@ -0,0 +1,67 @@
+package top.nololiyt.worldpermissions
+
+import org.bukkit.Location
+import org.bukkit.configuration.file.YamlConfiguration
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+
+import java.io.File
+import java.io.FileOutputStream
+import java.io.IOException
+import java.io.InputStream
+
+class MarksManager internal constructor(private val rootPlugin: RootPlugin) {
+
+ private var configuration: YamlConfiguration? = null
+
+ private val marksFile: File
+ get() = File(
+ rootPlugin.dataFolder.absolutePath, "marks.yml")
+
+ init {
+ val file = marksFile
+ if (!file.exists()) {
+ saveDefaultFile(file)
+ }
+ reloadConfiguration()
+ }
+
+ private fun saveDefaultFile(file: File) {
+ val res = rootPlugin.getResource("marks.yml")
+ try {
+ file.parentFile.mkdirs()
+ file.delete()
+ file.createNewFile()
+ val fileOutputStream = FileOutputStream(file)
+
+ val buffer = ByteArray(4096)
+ while (true) {
+ val count = res!!.read(buffer, 0, buffer.size)
+ fileOutputStream.write(buffer, 0, count)
+ if (count < buffer.size) {
+ break
+ }
+ }
+
+ fileOutputStream.close()
+ } catch (e: IOException) {
+ e.printStackTrace()
+ }
+
+ }
+
+ fun reloadConfiguration() {
+ configuration = YamlConfiguration.loadConfiguration(
+ marksFile)
+ }
+
+ fun setMark(name: String, mark: Location?) {
+ configuration!!.set(name, mark)
+ configuration!!.save(marksFile)
+ }
+
+ fun getMark(name: String): Location? {
+ val oLocation = configuration!!.get(name) ?: return null
+ return oLocation as Location
+ }
+}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/MessagesManager.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/MessagesManager.java
deleted file mode 100644
index e41884a..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/MessagesManager.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package top.nololiyt.worldpermissions;
-
-import org.bukkit.configuration.file.YamlConfiguration;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-
-import java.io.*;
-
-public class MessagesManager
-{
- private RootPlugin rootPlugin;
-
- private YamlConfiguration configuration;
-
- MessagesManager(RootPlugin rootPlugin)
- {
- this.rootPlugin = rootPlugin;
- File file = getMessagesFile();
- if (!file.exists())
- {
- saveDefaultFile(file);
- }
- reloadConfiguration();
- }
-
- private File getMessagesFile()
- {
- return new File(
- rootPlugin.getDataFolder().getAbsolutePath(), "messages.yml");
- }
-
- private void saveDefaultFile(File file)
- {
- InputStream res = rootPlugin.getResource("messages.yml");
- try
- {
- file.getParentFile().mkdirs();
- file.delete();
- file.createNewFile();
- FileOutputStream fileOutputStream = new FileOutputStream(file);
-
- byte[] buffer = new byte[4096];
- for (; ; )
- {
- int count = res.read(buffer, 0, buffer.length);
- fileOutputStream.write(buffer, 0, count);
- if (count < buffer.length)
- {
- break;
- }
- }
-
- fileOutputStream.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
-
- public void reloadConfiguration()
- {
- configuration = YamlConfiguration.loadConfiguration(
- getMessagesFile());
- }
-
- public String getMessage(DotDividedStringBuilder node, StringPair[] stringPairs)
- {
- String key = node.toString();
- String result = configuration.getString(key);
-
- if(result == null)
- {
- rootPlugin.getLogger().severe(
- "File 'messages.yml' is corrupted and '" + key
- + "' is missing.");
- return "";
- }
-
- result = result.trim().replace('&', '§');
- for (StringPair pair : stringPairs)
- {
- result = result.replace(pair.getKey(), pair.getValue());
- }
- return result;
- }
-}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/MessagesManager.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/MessagesManager.kt
new file mode 100644
index 0000000..38b05b1
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/MessagesManager.kt
@@ -0,0 +1,71 @@
+package top.nololiyt.worldpermissions
+
+import org.bukkit.configuration.file.YamlConfiguration
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+
+import java.io.*
+
+class MessagesManager internal constructor(private val rootPlugin: RootPlugin) {
+
+ private var configuration: YamlConfiguration? = null
+
+ private val messagesFile: File
+ get() = File(
+ rootPlugin.dataFolder.absolutePath, "messages.yml")
+
+ init {
+ val file = messagesFile
+ if (!file.exists()) {
+ saveDefaultFile(file)
+ }
+ reloadConfiguration()
+ }
+
+ private fun saveDefaultFile(file: File) {
+ val res = rootPlugin.getResource("messages.yml")
+ try {
+ file.parentFile.mkdirs()
+ file.delete()
+ file.createNewFile()
+ val fileOutputStream = FileOutputStream(file)
+
+ val buffer = ByteArray(4096)
+ while (true) {
+ val count = res!!.read(buffer, 0, buffer.size)
+ fileOutputStream.write(buffer, 0, count)
+ if (count < buffer.size) {
+ break
+ }
+ }
+
+ fileOutputStream.close()
+ } catch (e: IOException) {
+ e.printStackTrace()
+ }
+
+ }
+
+ fun reloadConfiguration() {
+ configuration = YamlConfiguration.loadConfiguration(
+ messagesFile)
+ }
+
+ fun getMessage(node: DotDividedStringBuilder, stringPairs: Array): String {
+ val key = node.toString()
+ var result = configuration!!.getString(key)
+
+ if (result == null) {
+ rootPlugin.logger.severe(
+ "File 'messages.yml' is corrupted and '" + key
+ + "' is missing.")
+ return ""
+ }
+
+ var r = result.trim().replace('&', '§')
+ for (pair in stringPairs) {
+ r = r.replace(pair!!.key, pair!!.value)
+ }
+ return r
+ }
+}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/PlayerListener.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/PlayerListener.java
deleted file mode 100644
index edb6c56..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/PlayerListener.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package top.nololiyt.worldpermissions;
-
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerJoinEvent;
-import org.bukkit.event.player.PlayerQuitEvent;
-import org.bukkit.event.player.PlayerTeleportEvent;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
-public class PlayerListener implements Listener
-{
- private RootPlugin rootPlugin;
-
- PlayerListener(RootPlugin rootPlugin)
- {
- this.rootPlugin = rootPlugin;
- }
-
- @EventHandler
- public void onPlayerLogin(PlayerJoinEvent e)
- {
- if ((!rootPlugin.getConfig().getBoolean("offline-players-tracker.enabled")) ||
- rootPlugin.getConfig().getBoolean("offline-players-tracker.record-only"))
- {
- return;
- }
-
- Player player = e.getPlayer();
- File file = new File(
- rootPlugin.getDataFolder().getAbsolutePath(), "playersData");
- file.mkdirs();
- file = new File(file.getAbsolutePath(), player.getUniqueId().toString() + ".yml");
- if (!file.exists())
- return;
-
- YamlConfiguration yamlConfiguration = YamlConfiguration
- .loadConfiguration(file);
- Object location = yamlConfiguration.get("position");
- if (location != null)
- player.teleport((Location) location);
- }
- @EventHandler
- public void onPlayerQuitEvent(PlayerQuitEvent e)
- {
- if(!rootPlugin.getConfig().getBoolean("offline-players-tracker.enabled"))
- {
- return;
- }
- Player player = e.getPlayer();
- try
- {
- File file = new File(
- rootPlugin.getDataFolder().getAbsolutePath(), "playersData");
- file.mkdirs();
- file = new File(file.getAbsolutePath(), player.getUniqueId().toString() + ".yml");
- if (!file.exists())
- file.createNewFile();
-
- YamlConfiguration yamlConfiguration = YamlConfiguration
- .loadConfiguration(file);
- yamlConfiguration.set("position", player.getLocation());
- yamlConfiguration.save(file);
- }
- catch (IOException ex)
- {
- ex.printStackTrace();
- }
- }
-
- @EventHandler
- public void onPlayerTeleport(PlayerTeleportEvent e)
- {
- World dest = e.getTo().getWorld();
- if (dest.equals(e.getFrom().getWorld()))
- {
- return;
- }
-
- String destName = dest.getName();
-
- Player player = e.getPlayer();
-
- if (!worldIsControlled(dest))
- {
- return;
- }
-
- StringPair[] pairs = new StringPair[]{
- StringPair.playerName(player.getDisplayName())
- };
-
- if (player.hasPermission("nworldpermissions.forfreeto." + destName))
- {
- String message = rootPlugin.getMessagesManager().getMessage(
- new DotDividedStringBuilder(
- "messages.to-players.when-teleport-to-controlled-worlds.teleported"),
- pairs);
- if (!message.isEmpty())
- player.sendMessage(message);
- return;
- }
-
- e.setCancelled(true);
- String message = rootPlugin.getMessagesManager().getMessage(
- new DotDividedStringBuilder(
- "messages.to-players.when-teleport-to-controlled-worlds.denied"
- ), pairs);
- if (!message.isEmpty())
- player.sendMessage(message);
- }
-
- private boolean worldIsControlled(World world)
- {
- List worlds = rootPlugin.getConfig().getStringList("controlled-worlds");
- String destName = world.getName();
- return worlds.contains(destName);
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/RootCommandExecutor.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/RootCommandExecutor.java
deleted file mode 100644
index aeea9ea..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/RootCommandExecutor.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package top.nololiyt.worldpermissions;
-
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.command.CommandSender;
-import top.nololiyt.worldpermissions.commands.RootRouter;
-
-public class RootCommandExecutor implements CommandExecutor
-{
- private RootPlugin rootPlugin;
-
- RootCommandExecutor(RootPlugin rootPlugin)
- {
- this.rootPlugin = rootPlugin;
- this.router = new RootRouter(rootPlugin);
- }
-
- RootRouter router;
- @Override
- public boolean onCommand(CommandSender commandSender, Command command, String label, String[] args)
- {
- router.RouteCommand(commandSender,command,label,args);
- return true;
- }
-}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/RootCommandExecutor.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/RootCommandExecutor.kt
new file mode 100644
index 0000000..806b99f
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/RootCommandExecutor.kt
@@ -0,0 +1,20 @@
+package top.nololiyt.worldpermissions
+
+import org.bukkit.command.Command
+import org.bukkit.command.CommandExecutor
+import org.bukkit.command.CommandSender
+import top.nololiyt.worldpermissions.commands.RootRouter
+
+class RootCommandExecutor internal constructor(private val rootPlugin: RootPlugin) : CommandExecutor {
+
+ internal var router: RootRouter
+
+ init {
+ this.router = RootRouter(rootPlugin)
+ }
+
+ override fun onCommand(commandSender: CommandSender, command: Command, label: String, args: Array): Boolean {
+ router.RouteCommand(commandSender, command, label, args)
+ return true
+ }
+}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/RootPlugin.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/RootPlugin.java
deleted file mode 100644
index fdb1758..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/RootPlugin.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package top.nololiyt.worldpermissions;
-
-
-import org.bukkit.Bukkit;
-import org.bukkit.plugin.java.JavaPlugin;
-import top.nololiyt.worldpermissions.playerlisteners.LoginAndQuitListener;
-import top.nololiyt.worldpermissions.playerlisteners.TeleportListener;
-
-public class RootPlugin extends JavaPlugin {
- private MessagesManager messagesManager;
-
- public MessagesManager getMessagesManager()
- {
- return messagesManager;
- }
-
-
- private MarksManager marksManager;
- public MarksManager getMarksManager()
- {
- return marksManager;
- }
- @Override
- public void onEnable() {
- saveDefaultConfig();
- messagesManager = new MessagesManager(this);
- marksManager = new MarksManager(this);
-
- getCommand("nworldpermissions").setExecutor(new RootCommandExecutor(this));
-
- Bukkit.getPluginManager().registerEvents(
- new LoginAndQuitListener(this), this);
- Bukkit.getPluginManager().registerEvents(
- new TeleportListener(this), this);
-
- new UpdateChecker(this).checkAndLog();
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/RootPlugin.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/RootPlugin.kt
new file mode 100644
index 0000000..cb7514d
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/RootPlugin.kt
@@ -0,0 +1,31 @@
+package top.nololiyt.worldpermissions
+
+
+import org.bukkit.Bukkit
+import org.bukkit.plugin.java.JavaPlugin
+import top.nololiyt.worldpermissions.playerlisteners.LoginAndQuitListener
+import top.nololiyt.worldpermissions.playerlisteners.TeleportListener
+
+class RootPlugin : JavaPlugin() {
+ var messagesManager: MessagesManager? = null
+ private set
+
+
+ var marksManager: MarksManager? = null
+ private set
+
+ override fun onEnable() {
+ saveDefaultConfig()
+ messagesManager = MessagesManager(this)
+ marksManager = MarksManager(this)
+
+ getCommand("nworldpermissions")!!.setExecutor(RootCommandExecutor(this))
+
+ Bukkit.getPluginManager().registerEvents(
+ LoginAndQuitListener(this), this)
+ Bukkit.getPluginManager().registerEvents(
+ TeleportListener(this), this)
+
+ UpdateChecker(this).checkAndLog()
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/UpdateChecker.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/UpdateChecker.java
deleted file mode 100644
index a6c02d3..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/UpdateChecker.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package top.nololiyt.worldpermissions;
-
-import jdk.internal.util.xml.impl.ReaderUTF8;
-import org.bukkit.Bukkit;
-import org.bukkit.plugin.Plugin;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.net.URL;
-import java.util.Scanner;
-
-public class UpdateChecker
-{
- private Plugin plugin;
-
- public UpdateChecker(Plugin plugin)
- {
- this.plugin = plugin;
- }
-
- public void checkAndLog()
- {
- Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> {
- try (InputStream inputStream = new URL(
- "https://api.github.com/repos/yueyinqiu/NWorldPermissions/releases/latest")
- .openStream())
- {
- JSONObject jsonObject = new JSONObject(
- readToEnd(inputStream)
- );
- String tag_name = jsonObject.getString("tag_name");
-
- if (!plugin.getDescription().getVersion().equalsIgnoreCase(tag_name))
- {
- JSONArray assets = jsonObject.getJSONArray("assets");
- JSONObject asset = assets.getJSONObject(0);
- String browser_download_url = asset.getString("browser_download_url");
-
- plugin.getLogger().warning("A new version: '" + tag_name + "' is available. " +
- "It can be downloaded at '" + browser_download_url + "'.");
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- });
- }
-
- private String readToEnd(InputStream inputStream)
- {
- Scanner scanner = new Scanner(inputStream);
- StringBuilder stringBuilder = new StringBuilder();
- while(scanner.hasNextLine())
- {
- stringBuilder.append(scanner.nextLine());
- }
- return stringBuilder.toString();
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/UpdateChecker.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/UpdateChecker.kt
new file mode 100644
index 0000000..576839c
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/UpdateChecker.kt
@@ -0,0 +1,51 @@
+package top.nololiyt.worldpermissions
+
+import jdk.internal.util.xml.impl.ReaderUTF8
+import org.bukkit.Bukkit
+import org.bukkit.plugin.Plugin
+import org.json.JSONArray
+import org.json.JSONException
+import org.json.JSONObject
+
+import java.io.IOException
+import java.io.InputStream
+import java.io.Reader
+import java.net.URL
+import java.util.Scanner
+
+class UpdateChecker(private val plugin: Plugin) {
+
+ fun checkAndLog() {
+ Bukkit.getScheduler().runTaskAsynchronously(this.plugin, Runnable {
+ try {
+ URL("https://api.github.com/repos/yueyinqiu/NWorldPermissions/releases/latest")
+ .openStream().use { inputStream ->
+ val jsonObject = JSONObject(
+ readToEnd(inputStream)
+ )
+ val tag_name = jsonObject.getString("tag_name")
+
+ if (!plugin.description.version.equals(tag_name, ignoreCase = true)) {
+ val assets = jsonObject.getJSONArray("assets")
+ val asset = assets.getJSONObject(0)
+ val browser_download_url = asset.getString("browser_download_url")
+
+ plugin.logger.warning("A new version: '" + tag_name + "' is available. " +
+ "It can be downloaded at '" + browser_download_url + "'.")
+ }
+ }
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ });
+ }
+
+ private fun readToEnd(inputStream: InputStream): String {
+ val scanner = Scanner(inputStream)
+ val stringBuilder = StringBuilder()
+ while (scanner.hasNextLine()) {
+ stringBuilder.append(scanner.nextLine())
+ }
+ return stringBuilder.toString()
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/CommandLayer.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/CommandLayer.java
deleted file mode 100644
index ac0ef65..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/CommandLayer.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package top.nololiyt.worldpermissions.commands;
-
-import org.bukkit.command.CommandSender;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-
-public interface CommandLayer
-{
- void execute(int layer,
- RootPlugin rootPlugin,
- DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey,
- CommandSender commandSender,
- String[] args);
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/CommandLayer.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/CommandLayer.kt
new file mode 100644
index 0000000..ebe98cd
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/CommandLayer.kt
@@ -0,0 +1,14 @@
+package top.nololiyt.worldpermissions.commands
+
+import org.bukkit.command.CommandSender
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+
+interface CommandLayer {
+ fun execute(layer: Int,
+ rootPlugin: RootPlugin,
+ permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder,
+ commandSender: CommandSender,
+ args: Array)
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/Executor.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/Executor.java
deleted file mode 100644
index fca63f5..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/Executor.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package top.nololiyt.worldpermissions.commands;
-
-import org.bukkit.command.CommandSender;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-
-
-public abstract class Executor implements CommandLayer
-{
- protected abstract String permissionName();
- protected abstract String messageKey();
-
- protected abstract boolean run(int layer,
- RootPlugin rootPlugin,
- DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey,
- CommandSender commandSender,
- String[] args);
-
- public void execute(int layer,
- RootPlugin rootPlugin,
- DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey,
- CommandSender commandSender,
- String[] args)
- {
- if (permissionName() != null)
- {
- permission.append(permissionName());
- if (!commandSender.hasPermission(permission.toString()))
- {
- return;
- }
- }
- DotDividedStringBuilder messageKeyCopy = new DotDividedStringBuilder(messageKey);
-
- if (messageKey() != null)
- messageKey.append(messageKey());
-
- if (!run(layer,rootPlugin, permission, messageKey, commandSender, args))
- {
- sendHelp(messageKeyCopy, rootPlugin, commandSender);
- }
- }
-
- protected boolean sendHelp(DotDividedStringBuilder messageKey,
- RootPlugin rootPlugin, CommandSender commandSender)
- {
- messageKey.append("help");
- StringPair[] pairs = new StringPair[]{
- StringPair.senderName(commandSender.getName())
- };
-
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey, pairs);
- if (!message.isEmpty())
- commandSender.sendMessage(message);
- return true;
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/Executor.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/Executor.kt
new file mode 100644
index 0000000..6c78d75
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/Executor.kt
@@ -0,0 +1,53 @@
+package top.nololiyt.worldpermissions.commands
+
+import org.bukkit.command.CommandSender
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+
+
+abstract class Executor : CommandLayer {
+ protected abstract fun permissionName(): String?
+ protected abstract fun messageKey(): String?
+
+ protected abstract fun run(layer: Int,
+ rootPlugin: RootPlugin,
+ permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder,
+ commandSender: CommandSender,
+ args: Array): Boolean
+
+ override fun execute(layer: Int,
+ rootPlugin: RootPlugin,
+ permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder,
+ commandSender: CommandSender,
+ args: Array) {
+ if (permissionName() != null) {
+ permission.append(permissionName()!!)
+ if (!commandSender.hasPermission(permission.toString())) {
+ return
+ }
+ }
+ val messageKeyCopy = DotDividedStringBuilder(messageKey)
+
+ if (messageKey() != null)
+ messageKey.append(messageKey()!!)
+
+ if (!run(layer, rootPlugin, permission, messageKey, commandSender, args)) {
+ sendHelp(messageKeyCopy, rootPlugin, commandSender)
+ }
+ }
+
+ protected fun sendHelp(messageKey: DotDividedStringBuilder,
+ rootPlugin: RootPlugin, commandSender: CommandSender): Boolean {
+ messageKey.append("help")
+ val pairs = arrayOf(StringPair.senderName(commandSender.name))
+
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey, pairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/RootRouter.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/RootRouter.java
deleted file mode 100644
index 7d722cd..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/RootRouter.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package top.nololiyt.worldpermissions.commands;
-
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.commands.reload.ReloadRouter;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.commands.config.ConfigRouter;
-import top.nololiyt.worldpermissions.commands.marks.MarksRouter;
-import top.nololiyt.worldpermissions.commands.tp.TpRouter;
-
-public class RootRouter extends Router
-{
-
- private RootPlugin rootPlugin;
-
- public RootRouter(RootPlugin rootPlugin)
- {
- this.rootPlugin = rootPlugin;
- }
-
-
- public void RouteCommand(CommandSender commandSender, Command command,
- String label, String[] args)
- {
- DotDividedStringBuilder messagesRoot = new DotDividedStringBuilder("messages");
- DotDividedStringBuilder permissionRoot = new DotDividedStringBuilder("nworldpermissions");
-
- execute(0,rootPlugin,permissionRoot,messagesRoot,commandSender,args);
-
- }
-
-
- @Override
- protected String permissionName()
- {
- return null;
- }
-
- @Override
- protected String messageKey()
- {
- return null;
- }
-
- /**
- * Return the next layer matching the arg.
- * If no layer match it, please return 'null' and the help list will be sent.
- *
- * @param arg
- * @return
- */
- @Override
- protected CommandLayer nextLayer(String arg)
- {
- switch (arg)
- {
- case "config":
- return new ConfigRouter();
- case "tp":
- return new TpRouter();
- case "marks":
- return new MarksRouter();
- case "reload":
- return new ReloadRouter();
- default:
- return null;
- }
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/RootRouter.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/RootRouter.kt
new file mode 100644
index 0000000..32032a9
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/RootRouter.kt
@@ -0,0 +1,49 @@
+package top.nololiyt.worldpermissions.commands
+
+import org.bukkit.command.Command
+import org.bukkit.command.CommandSender
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.commands.reload.ReloadRouter
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.commands.config.ConfigRouter
+import top.nololiyt.worldpermissions.commands.marks.MarksRouter
+import top.nololiyt.worldpermissions.commands.tp.TpRouter
+
+class RootRouter(private val rootPlugin: RootPlugin) : Router() {
+
+
+ fun RouteCommand(commandSender: CommandSender, command: Command,
+ label: String, args: Array) {
+ val messagesRoot = DotDividedStringBuilder("messages")
+ val permissionRoot = DotDividedStringBuilder("nworldpermissions")
+
+ execute(0, rootPlugin, permissionRoot, messagesRoot, commandSender, args)
+
+ }
+
+
+ override fun permissionName(): String? {
+ return null
+ }
+
+ override fun messageKey(): String? {
+ return null
+ }
+
+ /**
+ * Return the next layer matching the arg.
+ * If no layer match it, please return 'null' and the help list will be sent.
+ *
+ * @param arg
+ * @return
+ */
+ override fun nextLayer(arg: String): CommandLayer? {
+ when (arg) {
+ "config" -> return ConfigRouter()
+ "tp" -> return TpRouter()
+ "marks" -> return MarksRouter()
+ "reload" -> return ReloadRouter()
+ else -> return null
+ }
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/Router.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/Router.java
deleted file mode 100644
index 13cf25e..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/Router.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package top.nololiyt.worldpermissions.commands;
-
-import org.bukkit.command.CommandSender;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-
-public abstract class Router implements CommandLayer
-{
- protected abstract String permissionName();
- protected abstract String messageKey();
- /**
- * Return the next layer matching the arg.
- * If no layer match it, please return 'null' and the help list will be sent.
- * @param arg
- * @return
- */
- protected abstract CommandLayer nextLayer(String arg);
-
- public void execute(int layer,
- RootPlugin rootPlugin,
- DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey,
- CommandSender commandSender,
- String[] args)
- {
- if (permissionName() != null)
- {
- permission.append(permissionName());
- if (!commandSender.hasPermission(permission.toString()))
- {
- return;
- }
- }
- if (messageKey() != null)
- messageKey.append(messageKey());
-
- if (args.length <= layer)
- {
- sendHelp(messageKey, rootPlugin, commandSender);
- return;
- }
-
- CommandLayer nextLayer = nextLayer(args[layer].toLowerCase());
- if (nextLayer == null)
- {
- sendHelp(messageKey, rootPlugin, commandSender);
- return;
- }
- nextLayer.execute(
- layer + 1,
- rootPlugin,
- permission,
- messageKey,
- commandSender,
- args
- );
- }
-
-
- private boolean sendHelp(DotDividedStringBuilder messageKey,
- RootPlugin rootPlugin, CommandSender commandSender)
- {
- messageKey.append("help");
- StringPair[] pairs = new StringPair[]{
- StringPair.senderName(commandSender.getName())
- };
-
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey, pairs);
- if (!message.isEmpty())
- commandSender.sendMessage(message);
- return true;
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/Router.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/Router.kt
new file mode 100644
index 0000000..e8f51a8
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/Router.kt
@@ -0,0 +1,66 @@
+package top.nololiyt.worldpermissions.commands
+
+import org.bukkit.command.CommandSender
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+
+abstract class Router : CommandLayer {
+ protected abstract fun permissionName(): String?
+ protected abstract fun messageKey(): String?
+ /**
+ * Return the next layer matching the arg.
+ * If no layer match it, please return 'null' and the help list will be sent.
+ * @param arg
+ * @return
+ */
+ protected abstract fun nextLayer(arg: String): CommandLayer?
+
+ override fun execute(layer: Int,
+ rootPlugin: RootPlugin,
+ permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder,
+ commandSender: CommandSender,
+ args: Array) {
+ if (permissionName() != null) {
+ permission.append(permissionName()!!)
+ if (!commandSender.hasPermission(permission.toString())) {
+ return
+ }
+ }
+ if (messageKey() != null)
+ messageKey.append(messageKey()!!)
+
+ if (args.size <= layer) {
+ sendHelp(messageKey, rootPlugin, commandSender)
+ return
+ }
+
+ val nextLayer = nextLayer(args[layer].toLowerCase())
+ if (nextLayer == null) {
+ sendHelp(messageKey, rootPlugin, commandSender)
+ return
+ }
+ nextLayer.execute(
+ layer + 1,
+ rootPlugin,
+ permission,
+ messageKey,
+ commandSender,
+ args
+ )
+ }
+
+
+ private fun sendHelp(messageKey: DotDividedStringBuilder,
+ rootPlugin: RootPlugin, commandSender: CommandSender): Boolean {
+ messageKey.append("help")
+ val pairs = arrayOf(StringPair.senderName(commandSender.name))
+
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey, pairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/AddExecutor.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/AddExecutor.java
deleted file mode 100644
index ad375bf..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/AddExecutor.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package top.nololiyt.worldpermissions.commands.config;
-
-import org.bukkit.command.CommandSender;
-import org.bukkit.configuration.Configuration;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-import top.nololiyt.worldpermissions.commands.Executor;
-
-import java.util.List;
-
-public class AddExecutor extends Executor
-{
- protected final static String layerName = "add";
-
- @Override
- protected String permissionName()
- {
- return null;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
-
- @Override
- protected boolean run(int layer, RootPlugin rootPlugin, DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey, CommandSender commandSender,
- String[] args)
- {
- if (args.length - 1 != layer)
- return false;
-
- StringPair[] cPairs = new StringPair[]{
- StringPair.worldName(args[layer]),
- StringPair.senderName(commandSender.getName())
- };
-
- Configuration config = rootPlugin.getConfig();
- List worlds = config.getStringList("controlled-worlds");
- if (!worlds.contains(args[layer]))
- {
- worlds.add(args[layer]);
- }
- config.set("controlled-worlds", worlds);
- rootPlugin.saveConfig();
-
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey.append("completed"), cPairs);
- if (!message.isEmpty())
- commandSender.sendMessage(message);
- return true;
- }
-}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/AddExecutor.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/AddExecutor.kt
new file mode 100644
index 0000000..1938f8d
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/AddExecutor.kt
@@ -0,0 +1,46 @@
+package top.nololiyt.worldpermissions.commands.config
+
+import org.bukkit.command.CommandSender
+import org.bukkit.configuration.Configuration
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+import top.nololiyt.worldpermissions.commands.Executor
+
+class AddExecutor : Executor() {
+
+ override fun permissionName(): String? {
+ return null
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ override fun run(layer: Int, rootPlugin: RootPlugin, permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder, commandSender: CommandSender,
+ args: Array): Boolean {
+ if (args.size - 1 != layer)
+ return false
+
+ val cPairs = arrayOf(StringPair.worldName(args[layer]), StringPair.senderName(commandSender.name))
+
+ val config = rootPlugin.config
+ val worlds = config.getStringList("controlled-worlds")
+ if (!worlds.contains(args[layer])) {
+ worlds.add(args[layer])
+ }
+ config.set("controlled-worlds", worlds)
+ rootPlugin.saveConfig()
+
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("completed"), cPairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+ }
+
+ companion object {
+ protected val layerName = "add"
+ }
+}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/ConfigRouter.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/ConfigRouter.java
deleted file mode 100644
index 9275d46..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/ConfigRouter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package top.nololiyt.worldpermissions.commands.config;
-
-import top.nololiyt.worldpermissions.commands.CommandLayer;
-import top.nololiyt.worldpermissions.commands.Router;
-
-public class ConfigRouter extends Router
-{
- protected final static String layerName = "config";
- @Override
- protected String permissionName()
- {
- return layerName;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
- /**
- * Return the next layer matching the arg.
- * If no layer match it, please return 'null' and the help list will be sent.
- *
- * @param arg
- * @return
- */
- @Override
- protected CommandLayer nextLayer(String arg)
- {
- switch (arg)
- {
- case "add":
- return new AddExecutor();
- case "remove":
- return new RemoveExecutor();
- default:
- return null;
- }
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/ConfigRouter.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/ConfigRouter.kt
new file mode 100644
index 0000000..eb8368f
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/ConfigRouter.kt
@@ -0,0 +1,33 @@
+package top.nololiyt.worldpermissions.commands.config
+
+import top.nololiyt.worldpermissions.commands.CommandLayer
+import top.nololiyt.worldpermissions.commands.Router
+
+class ConfigRouter : Router() {
+ override fun permissionName(): String? {
+ return layerName
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ /**
+ * Return the next layer matching the arg.
+ * If no layer match it, please return 'null' and the help list will be sent.
+ *
+ * @param arg
+ * @return
+ */
+ override fun nextLayer(arg: String): CommandLayer? {
+ when (arg) {
+ "add" -> return AddExecutor()
+ "remove" -> return RemoveExecutor()
+ else -> return null
+ }
+ }
+
+ companion object {
+ protected val layerName = "config"
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/RemoveExecutor.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/RemoveExecutor.java
deleted file mode 100644
index ab1197d..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/RemoveExecutor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package top.nololiyt.worldpermissions.commands.config;
-
-import org.bukkit.command.CommandSender;
-import org.bukkit.configuration.Configuration;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-import top.nololiyt.worldpermissions.commands.Executor;
-
-import java.util.List;
-
-public class RemoveExecutor extends Executor
-{
- protected final static String layerName = "remove";
-
- @Override
- protected String permissionName()
- {
- return null;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
-
- @Override
- protected boolean run(int layer, RootPlugin rootPlugin, DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey, CommandSender commandSender,
- String[] args)
- {
- if (args.length - 1 != layer)
- return false;
-
- StringPair[] cPairs = new StringPair[]{
- StringPair.worldName(args[layer]),
- StringPair.senderName(commandSender.getName())
- };
-
- Configuration config = rootPlugin.getConfig();
- List worlds = config.getStringList("controlled-worlds");
-
- worlds.remove(args[layer]);
- config.set("controlled-worlds", worlds);
-
- rootPlugin.saveConfig();
-
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey.append("completed"), cPairs);
- if (!message.isEmpty())
- commandSender.sendMessage(message);
- return true;
- }
-}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/RemoveExecutor.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/RemoveExecutor.kt
new file mode 100644
index 0000000..deebada
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/config/RemoveExecutor.kt
@@ -0,0 +1,46 @@
+package top.nololiyt.worldpermissions.commands.config
+
+import org.bukkit.command.CommandSender
+import org.bukkit.configuration.Configuration
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+import top.nololiyt.worldpermissions.commands.Executor
+
+class RemoveExecutor : Executor() {
+
+ override fun permissionName(): String? {
+ return null
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ override fun run(layer: Int, rootPlugin: RootPlugin, permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder, commandSender: CommandSender,
+ args: Array): Boolean {
+ if (args.size - 1 != layer)
+ return false
+
+ val cPairs = arrayOf(StringPair.worldName(args[layer]), StringPair.senderName(commandSender.name))
+
+ val config = rootPlugin.config
+ val worlds = config.getStringList("controlled-worlds")
+
+ worlds.remove(args[layer])
+ config.set("controlled-worlds", worlds)
+
+ rootPlugin.saveConfig()
+
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("completed"), cPairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+ }
+
+ companion object {
+ protected val layerName = "remove"
+ }
+}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/AddExecutor.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/AddExecutor.java
deleted file mode 100644
index be4d69a..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/AddExecutor.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package top.nololiyt.worldpermissions.commands.marks;
-
-import org.bukkit.command.CommandSender;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.entity.Player;
-import top.nololiyt.worldpermissions.MarksManager;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-import top.nololiyt.worldpermissions.commands.Executor;
-
-import java.io.File;
-import java.io.IOException;
-
-public class AddExecutor extends Executor
-{
- protected final static String layerName = "add";
-
- @Override
- protected String permissionName()
- {
- return null;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
-
- @Override
- protected boolean run(int layer, RootPlugin rootPlugin, DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey, CommandSender commandSender,
- String[] args)
- {
- if (!(commandSender instanceof Player))
- {
- StringPair[] pairs = new StringPair[]{
- StringPair.senderName(commandSender.getName()),
- };
-
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey.append("without-a-position"), pairs);
- if (!message.isEmpty())
- commandSender.sendMessage(message);
- return true;
- }
-
- if (args.length - 1 != layer)
- return false;
-
- Player sender = ((Player) commandSender);
- StringPair[] cPairs = new StringPair[]{
- StringPair.markName(args[layer]),
- StringPair.senderName(sender.getDisplayName())
- };
- try
- {
- MarksManager marksManager = rootPlugin.getMarksManager();
- if(marksManager.getMark(args[layer]) != null)
- {
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey.append("with-occupied-name"), cPairs);
- if (!message.isEmpty())
- sender.sendMessage(message);
-
- return true;
- }
- marksManager.setMark(args[layer],sender.getLocation());
-
-
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey.append("completed"), cPairs);
- if (!message.isEmpty())
- sender.sendMessage(message);
- return true;
- }
- catch(IOException ex)
- {
- ex.printStackTrace();
-
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey.append("failed"), cPairs);
- if (!message.isEmpty())
- sender.sendMessage(message);
- return true;
- }
- }
-}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/AddExecutor.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/AddExecutor.kt
new file mode 100644
index 0000000..4e192c4
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/AddExecutor.kt
@@ -0,0 +1,75 @@
+package top.nololiyt.worldpermissions.commands.marks
+
+import org.bukkit.command.CommandSender
+import org.bukkit.configuration.file.YamlConfiguration
+import org.bukkit.entity.Player
+import top.nololiyt.worldpermissions.MarksManager
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+import top.nololiyt.worldpermissions.commands.Executor
+
+import java.io.File
+import java.io.IOException
+
+class AddExecutor : Executor() {
+
+ override fun permissionName(): String? {
+ return null
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ override fun run(layer: Int, rootPlugin: RootPlugin, permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder, commandSender: CommandSender,
+ args: Array): Boolean {
+ if (commandSender !is Player) {
+ val pairs = arrayOf(StringPair.senderName(commandSender.name))
+
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("without-a-position"), pairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+ }
+
+ if (args.size - 1 != layer)
+ return false
+
+ val cPairs = arrayOf(StringPair.markName(args[layer]), StringPair.senderName(commandSender.displayName))
+ try {
+ val marksManager = rootPlugin.marksManager
+ if (marksManager!!.getMark(args[layer]) != null) {
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("with-occupied-name"), cPairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+
+ return true
+ }
+ marksManager.setMark(args[layer], commandSender.location)
+
+
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("completed"), cPairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+ } catch (ex: IOException) {
+ ex.printStackTrace()
+
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("failed"), cPairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+ }
+
+ }
+
+ companion object {
+ protected val layerName = "add"
+ }
+}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/MarksRouter.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/MarksRouter.java
deleted file mode 100644
index 61b1405..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/MarksRouter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package top.nololiyt.worldpermissions.commands.marks;
-
-import top.nololiyt.worldpermissions.commands.CommandLayer;
-import top.nololiyt.worldpermissions.commands.Router;
-
-public class MarksRouter extends Router
-{
- protected final static String layerName = "marks";
- @Override
- protected String permissionName()
- {
- return layerName;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
- /**
- * Return the next layer matching the arg.
- * If no layer match it, please return 'null' and the help list will be sent.
- *
- * @param arg
- * @return
- */
- @Override
- protected CommandLayer nextLayer(String arg)
- {
- switch (arg)
- {
- case "add":
- return new AddExecutor();
- case "remove":
- return new RemoveExecutor();
- default:
- return null;
- }
- }
-}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/MarksRouter.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/MarksRouter.kt
new file mode 100644
index 0000000..d6cc758
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/MarksRouter.kt
@@ -0,0 +1,33 @@
+package top.nololiyt.worldpermissions.commands.marks
+
+import top.nololiyt.worldpermissions.commands.CommandLayer
+import top.nololiyt.worldpermissions.commands.Router
+
+class MarksRouter : Router() {
+ override fun permissionName(): String? {
+ return layerName
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ /**
+ * Return the next layer matching the arg.
+ * If no layer match it, please return 'null' and the help list will be sent.
+ *
+ * @param arg
+ * @return
+ */
+ override fun nextLayer(arg: String): CommandLayer? {
+ when (arg) {
+ "add" -> return AddExecutor()
+ "remove" -> return RemoveExecutor()
+ else -> return null
+ }
+ }
+
+ companion object {
+ protected val layerName = "marks"
+ }
+}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/RemoveExecutor.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/RemoveExecutor.java
deleted file mode 100644
index 3d6bf41..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/RemoveExecutor.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package top.nololiyt.worldpermissions.commands.marks;
-
-import org.bukkit.command.CommandSender;
-import org.bukkit.configuration.file.YamlConfiguration;
-import top.nololiyt.worldpermissions.MarksManager;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-import top.nololiyt.worldpermissions.commands.Executor;
-
-import java.io.File;
-import java.io.IOException;
-
-public class RemoveExecutor extends Executor
-{
- protected final static String layerName = "remove";
-
- @Override
- protected String permissionName()
- {
- return null;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
-
- @Override
- protected boolean run(int layer, RootPlugin rootPlugin, DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey, CommandSender commandSender,
- String[] args)
- {
- if (args.length - 1 != layer)
- return false;
-
- StringPair[] cPairs = new StringPair[]{
- StringPair.markName(args[layer]),
- StringPair.senderName(commandSender.getName())
- };
- try
- {
- MarksManager marksManager = rootPlugin.getMarksManager();
-
- if(marksManager.getMark(args[layer]) == null)
- {
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey.append("no-such-mark"), cPairs);
- if (!message.isEmpty())
- commandSender.sendMessage(message);
- return true;
- }
-
- marksManager.setMark(args[layer], null);
- }
- catch(IOException ex)
- {
- ex.printStackTrace();
-
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey.append("failed"), cPairs);
- if (!message.isEmpty())
- commandSender.sendMessage(message);
- return true;
- }
-
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey.append("completed"), cPairs);
- if (!message.isEmpty())
- commandSender.sendMessage(message);
- return true;
- }
-}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/RemoveExecutor.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/RemoveExecutor.kt
new file mode 100644
index 0000000..b81b8e8
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/marks/RemoveExecutor.kt
@@ -0,0 +1,65 @@
+package top.nololiyt.worldpermissions.commands.marks
+
+import com.sun.xml.internal.ws.client.SenderException
+import org.bukkit.command.CommandSender
+import org.bukkit.configuration.file.YamlConfiguration
+import top.nololiyt.worldpermissions.MarksManager
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+import top.nololiyt.worldpermissions.commands.Executor
+
+import java.io.File
+import java.io.IOException
+
+class RemoveExecutor : Executor() {
+
+ override fun permissionName(): String? {
+ return null
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ override fun run(layer: Int, rootPlugin: RootPlugin, permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder, commandSender: CommandSender,
+ args: Array): Boolean {
+ if (args.size - 1 != layer)
+ return false
+
+ val cPairs = arrayOf(StringPair.markName(args[layer]), StringPair.senderName(commandSender.name))
+ try {
+ val marksManager = rootPlugin.marksManager
+
+ if (marksManager!!.getMark(args[layer]) == null) {
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("no-such-mark"), cPairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+ }
+
+ marksManager.setMark(args[layer], null);
+
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("completed"), cPairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+
+ } catch (ex: IOException) {
+ ex.printStackTrace()
+
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("failed"), cPairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+ }
+ }
+
+ companion object {
+ protected val layerName = "remove"
+ }
+}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/ConfigExecutor.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/ConfigExecutor.java
deleted file mode 100644
index 51e3441..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/ConfigExecutor.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package top.nololiyt.worldpermissions.commands.reload;
-
-import org.bukkit.command.CommandSender;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-import top.nololiyt.worldpermissions.commands.Executor;
-
-public class ConfigExecutor extends Executor
-{
- protected final static String layerName = "config";
-
- @Override
- protected String permissionName()
- {
- return null;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
-
- @Override
- protected boolean run(int layer, RootPlugin rootPlugin, DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey, CommandSender commandSender,
- String[] args)
- {
- rootPlugin.reloadConfig();
-
- messageKey.append("completed");
-
- StringPair[] pairs = new StringPair[]{
- StringPair.senderName(commandSender.getName())
- };
-
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey, pairs);
- if (!message.isEmpty())
- commandSender.sendMessage(message);
- return true;
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/ConfigExecutor.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/ConfigExecutor.kt
new file mode 100644
index 0000000..c434b25
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/ConfigExecutor.kt
@@ -0,0 +1,38 @@
+package top.nololiyt.worldpermissions.commands.reload
+
+import org.bukkit.command.CommandSender
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+import top.nololiyt.worldpermissions.commands.Executor
+
+class ConfigExecutor : Executor() {
+
+ override fun permissionName(): String? {
+ return null
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ override fun run(layer: Int, rootPlugin: RootPlugin, permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder, commandSender: CommandSender,
+ args: Array): Boolean {
+ rootPlugin.reloadConfig()
+
+ messageKey.append("completed")
+
+ val pairs = arrayOf(StringPair.senderName(commandSender.name))
+
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey, pairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+ }
+
+ companion object {
+ protected val layerName = "config"
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/MarksExecutor.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/MarksExecutor.java
deleted file mode 100644
index fc2c177..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/MarksExecutor.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package top.nololiyt.worldpermissions.commands.reload;
-
-import org.bukkit.command.CommandSender;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.commands.Executor;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-
-public class MarksExecutor extends Executor
-{
- protected final static String layerName = "marks";
-
- @Override
- protected String permissionName()
- {
- return null;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
-
- @Override
- protected boolean run(int layer, RootPlugin rootPlugin, DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey, CommandSender commandSender,
- String[] args)
- {
- rootPlugin.getMarksManager().reloadConfiguration();
-
- messageKey.append("completed");
-
- StringPair[] pairs = new StringPair[]{
- StringPair.senderName(commandSender.getName())
- };
-
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey, pairs);
- if (!message.isEmpty())
- commandSender.sendMessage(message);
- return true;
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/MarksExecutor.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/MarksExecutor.kt
new file mode 100644
index 0000000..1369c8a
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/MarksExecutor.kt
@@ -0,0 +1,38 @@
+package top.nololiyt.worldpermissions.commands.reload
+
+import org.bukkit.command.CommandSender
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.commands.Executor
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+
+class MarksExecutor : Executor() {
+
+ override fun permissionName(): String? {
+ return null
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ override fun run(layer: Int, rootPlugin: RootPlugin, permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder, commandSender: CommandSender,
+ args: Array): Boolean {
+ rootPlugin.marksManager!!.reloadConfiguration()
+
+ messageKey.append("completed")
+
+ val pairs = arrayOf(StringPair.senderName(commandSender.name))
+
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey, pairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+ }
+
+ companion object {
+ protected val layerName = "marks"
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/MessagesExecutor.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/MessagesExecutor.java
deleted file mode 100644
index 90817bc..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/MessagesExecutor.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package top.nololiyt.worldpermissions.commands.reload;
-
-import org.bukkit.command.CommandSender;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-import top.nololiyt.worldpermissions.commands.Executor;
-
-public class MessagesExecutor extends Executor
-{
- protected final static String layerName = "messages";
-
- @Override
- protected String permissionName()
- {
- return null;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
-
- @Override
- protected boolean run(int layer, RootPlugin rootPlugin, DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey, CommandSender commandSender,
- String[] args)
- {
- rootPlugin.getMessagesManager().reloadConfiguration();
-
- messageKey.append("completed");
-
- StringPair[] pairs = new StringPair[]{
- StringPair.senderName(commandSender.getName())
- };
-
- String message = rootPlugin.getMessagesManager().getMessage(
- messageKey, pairs);
- if (!message.isEmpty())
- commandSender.sendMessage(message);
- return true;
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/MessagesExecutor.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/MessagesExecutor.kt
new file mode 100644
index 0000000..66558d5
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/MessagesExecutor.kt
@@ -0,0 +1,38 @@
+package top.nololiyt.worldpermissions.commands.reload
+
+import org.bukkit.command.CommandSender
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+import top.nololiyt.worldpermissions.commands.Executor
+
+class MessagesExecutor : Executor() {
+
+ override fun permissionName(): String? {
+ return null
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ override fun run(layer: Int, rootPlugin: RootPlugin, permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder, commandSender: CommandSender,
+ args: Array): Boolean {
+ rootPlugin.messagesManager!!.reloadConfiguration()
+
+ messageKey.append("completed")
+
+ val pairs = arrayOf(StringPair.senderName(commandSender.name))
+
+ val message = rootPlugin.messagesManager!!.getMessage(
+ messageKey, pairs)
+ if (!message.isBlank())
+ commandSender.sendMessage(message)
+ return true
+ }
+
+ companion object {
+ protected val layerName = "messages"
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/ReloadRouter.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/ReloadRouter.java
deleted file mode 100644
index 1566474..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/ReloadRouter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package top.nololiyt.worldpermissions.commands.reload;
-
-import top.nololiyt.worldpermissions.commands.CommandLayer;
-import top.nololiyt.worldpermissions.commands.Router;
-
-public class ReloadRouter extends Router
-{
- protected final static String layerName = "reload";
- @Override
- protected String permissionName()
- {
- return layerName;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
- /**
- * Return the next layer matching the arg.
- * If no layer match it, please return 'null' and the help list will be sent.
- *
- * @param arg
- * @return
- */
- @Override
- protected CommandLayer nextLayer(String arg)
- {
- switch (arg)
- {
- case "config":
- return new ConfigExecutor();
- case "messages":
- return new MessagesExecutor();
- case "marks":
- return new MarksExecutor();
- default:
- return null;
- }
- }
-}
-
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/ReloadRouter.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/ReloadRouter.kt
new file mode 100644
index 0000000..7ed5fcc
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/reload/ReloadRouter.kt
@@ -0,0 +1,35 @@
+package top.nololiyt.worldpermissions.commands.reload
+
+import top.nololiyt.worldpermissions.commands.CommandLayer
+import top.nololiyt.worldpermissions.commands.Router
+
+class ReloadRouter : Router() {
+ override fun permissionName(): String? {
+ return layerName
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ /**
+ * Return the next layer matching the arg.
+ * If no layer match it, please return 'null' and the help list will be sent.
+ *
+ * @param arg
+ * @return
+ */
+ override fun nextLayer(arg: String): CommandLayer? {
+ when (arg) {
+ "config" -> return ConfigExecutor()
+ "messages" -> return MessagesExecutor()
+ "marks" -> return MarksExecutor()
+ else -> return null
+ }
+ }
+
+ companion object {
+ protected val layerName = "reload"
+ }
+}
+
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/OfflineExecutor.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/OfflineExecutor.java
deleted file mode 100644
index 25cc26f..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/OfflineExecutor.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package top.nololiyt.worldpermissions.commands.tp;
-
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.command.CommandSender;
-import org.bukkit.configuration.file.YamlConfiguration;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-import top.nololiyt.worldpermissions.commands.Executor;
-
-import java.io.File;
-import java.io.IOException;
-
-public class OfflineExecutor extends Executor
-{
- protected final static String layerName = "offline";
-
- @Override
- protected String permissionName()
- {
- return null;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
-
- @Override
- protected boolean run(int layer, RootPlugin rootPlugin, DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey, CommandSender commandSender,
- String[] args)
- {
- if (args.length - 1 != layer + 1)
- return false;
-
- String worldName = args[layer];
- String markName = args[layer + 1];
-
- StringPair[] basePairs = new StringPair[]{
- StringPair.markName(markName),
- StringPair.worldName(worldName),
- StringPair.senderName(commandSender.getName())
- };
-
- if ((!rootPlugin.getConfig().getBoolean("offline-players-tracker.enabled")) ||
- rootPlugin.getConfig().getBoolean("offline-players-tracker.record-only"))
- {
- commandSender.sendMessage(rootPlugin.getMessagesManager().getMessage(
- messageKey.append("tracker-not-enabled"), basePairs));
- return true;
- }
-
- World world = Bukkit.getWorld(args[layer]);
- if (world == null)
- {
- commandSender.sendMessage(rootPlugin.getMessagesManager().getMessage(
- messageKey.append("no-such-world"), basePairs));
- return true;
- }
-
- Location location = rootPlugin.getMarksManager().getMark(markName);
- if (location == null)
- {
- commandSender.sendMessage(rootPlugin.getMessagesManager().getMessage(
- messageKey.append("no-such-mark"), basePairs));
- return true;
- }
-
- File dir = new File(
- rootPlugin.getDataFolder().getAbsolutePath(), "playersData");
- dir.mkdirs();
-
- int count = 0;
- for (File file : dir.listFiles())
- {
- YamlConfiguration configuration =
- YamlConfiguration.loadConfiguration(file);
- if (configuration.getLocation("position").getWorld().equals(world))
- {
- configuration.set("position", location);
- try
- {
- configuration.save(file);
- count++;
- }
- catch (IOException ex)
- {
- ex.printStackTrace();
- }
- }
- }
- StringPair[] cPairs = new StringPair[]{
- StringPair.teleportedCount(String.valueOf(count)),
- StringPair.markName(markName),
- StringPair.worldName(worldName),
- StringPair.senderName(commandSender.getName())
- };
- commandSender.sendMessage(rootPlugin.getMessagesManager().getMessage(
- messageKey.append("completed"), cPairs));
- return true;
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/OfflineExecutor.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/OfflineExecutor.kt
new file mode 100644
index 0000000..4fab99d
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/OfflineExecutor.kt
@@ -0,0 +1,84 @@
+package top.nololiyt.worldpermissions.commands.tp
+
+import org.bukkit.Bukkit
+import org.bukkit.Location
+import org.bukkit.World
+import org.bukkit.command.CommandSender
+import org.bukkit.configuration.file.YamlConfiguration
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+import top.nololiyt.worldpermissions.commands.Executor
+
+import java.io.File
+import java.io.IOException
+
+class OfflineExecutor : Executor() {
+
+ override fun permissionName(): String? {
+ return null
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ override fun run(layer: Int, rootPlugin: RootPlugin, permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder, commandSender: CommandSender,
+ args: Array): Boolean {
+ if (args.size - 1 != layer + 1)
+ return false
+
+ val worldName = args[layer]
+ val markName = args[layer + 1]
+
+ val basePairs = arrayOf(StringPair.markName(markName), StringPair.worldName(worldName), StringPair.senderName(commandSender.name))
+
+ if (!rootPlugin.config.getBoolean("offline-players-tracker.enabled") || rootPlugin.config.getBoolean("offline-players-tracker.record-only")) {
+ commandSender.sendMessage(rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("tracker-not-enabled"), basePairs))
+ return true
+ }
+
+ val world = Bukkit.getWorld(args[layer])
+ if (world == null) {
+ commandSender.sendMessage(rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("no-such-world"), basePairs))
+ return true
+ }
+
+ val location = rootPlugin.marksManager!!.getMark(markName)
+ if (location == null) {
+ commandSender.sendMessage(rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("no-such-mark"), basePairs))
+ return true
+ }
+
+ val dir = File(
+ rootPlugin.dataFolder.absolutePath, "playersData")
+ dir.mkdirs()
+
+ var count = 0
+ for (file in dir.listFiles()!!) {
+ val configuration = YamlConfiguration.loadConfiguration(file)
+ if (configuration.getLocation("position")!!.world == world) {
+ configuration.set("position", location)
+ try {
+ configuration.save(file)
+ count++
+ } catch (ex: IOException) {
+ ex.printStackTrace()
+ }
+
+ }
+ }
+ val cPairs = arrayOf(StringPair.teleportedCount(count.toString()), StringPair.markName(markName), StringPair.worldName(worldName), StringPair.senderName(commandSender.name))
+ commandSender.sendMessage(rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("completed"), cPairs))
+ return true
+ }
+
+ companion object {
+ protected val layerName = "offline"
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/OnlineExecutor.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/OnlineExecutor.java
deleted file mode 100644
index 3229307..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/OnlineExecutor.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package top.nololiyt.worldpermissions.commands.tp;
-
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.command.CommandSender;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.entity.Player;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.commands.Executor;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
-public class OnlineExecutor extends Executor
-{
- protected final static String layerName = "online";
-
- @Override
- protected String permissionName()
- {
- return null;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
-
- @Override
- protected boolean run(int layer, RootPlugin rootPlugin, DotDividedStringBuilder permission,
- DotDividedStringBuilder messageKey, CommandSender commandSender,
- String[] args)
- {
- if (args.length - 1 != layer + 1)
- return false;
-
- String worldName = args[layer];
- String markName = args[layer + 1];
-
- StringPair[] basePairs = new StringPair[]{
- StringPair.markName(markName),
- StringPair.worldName(worldName),
- StringPair.senderName(commandSender.getName())
- };
-
- World world = Bukkit.getWorld(args[layer]);
- if (world == null)
- {
- commandSender.sendMessage(rootPlugin.getMessagesManager().getMessage(
- messageKey.append("no-such-world"), basePairs));
- return true;
- }
-
- Location location = rootPlugin.getMarksManager().getMark(markName);
- if (location == null)
- {
- commandSender.sendMessage(rootPlugin.getMessagesManager().getMessage(
- messageKey.append("no-such-mark"), basePairs));
- return true;
- }
-
- List players = world.getPlayers();
-
- StringPair[] playersPairs = new StringPair[]{
- null,
- StringPair.markName(markName),
- StringPair.worldName(worldName),
- StringPair.senderName(commandSender.getName())
- };
-
- int sCount = 0,fCount = 0;
- for (Player player : players)
- {
- playersPairs[0] = StringPair.playerName(player.getDisplayName());
-
- player.sendMessage(rootPlugin.getMessagesManager().getMessage(
- new DotDividedStringBuilder(
- "messages.to-players.when-teleported-by-tp-online.before-teleport"),
- playersPairs));
- if (!player.teleport(location))
- {
- fCount++;
- commandSender.sendMessage(rootPlugin.getMessagesManager().getMessage(
- messageKey.append("failed-to-teleport-someone"), playersPairs));
- }
- else
- {
- sCount++;
- }
- }
-
- StringPair[] cPairs = new StringPair[]{
- StringPair.teleportedCount(String.valueOf(sCount)),
- StringPair.unteleportedCount(String.valueOf(fCount)),
- StringPair.markName(markName),
- StringPair.worldName(worldName),
- StringPair.senderName(commandSender.getName())
- };
- commandSender.sendMessage(rootPlugin.getMessagesManager().getMessage(
- messageKey.append("completed"), cPairs));
- return true;
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/OnlineExecutor.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/OnlineExecutor.kt
new file mode 100644
index 0000000..5ee3c91
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/OnlineExecutor.kt
@@ -0,0 +1,83 @@
+package top.nololiyt.worldpermissions.commands.tp
+
+import org.bukkit.Bukkit
+import org.bukkit.Location
+import org.bukkit.World
+import org.bukkit.command.CommandSender
+import org.bukkit.configuration.file.YamlConfiguration
+import org.bukkit.entity.Player
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.commands.Executor
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+
+import java.io.File
+import java.io.IOException
+
+class OnlineExecutor : Executor() {
+
+ override fun permissionName(): String? {
+ return null
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ override fun run(layer: Int, rootPlugin: RootPlugin, permission: DotDividedStringBuilder,
+ messageKey: DotDividedStringBuilder, commandSender: CommandSender,
+ args: Array): Boolean {
+ if (args.size - 1 != layer + 1)
+ return false
+
+ val worldName = args[layer]
+ val markName = args[layer + 1]
+
+ val basePairs = arrayOf(StringPair.markName(markName), StringPair.worldName(worldName), StringPair.senderName(commandSender.name))
+
+ val world = Bukkit.getWorld(args[layer])
+ if (world == null) {
+ commandSender.sendMessage(rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("no-such-world"), basePairs))
+ return true
+ }
+
+ val location = rootPlugin.marksManager!!.getMark(markName)
+ if (location == null) {
+ commandSender.sendMessage(rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("no-such-mark"), basePairs))
+ return true
+ }
+
+ val players = world.players
+
+ val playersPairs = arrayOf(null, StringPair.markName(markName), StringPair.worldName(worldName), StringPair.senderName(commandSender.name))
+
+ var sCount = 0
+ var fCount = 0
+ for (player in players) {
+ playersPairs[0] = StringPair.playerName(player.displayName)
+
+ player.sendMessage(rootPlugin.messagesManager!!.getMessage(
+ DotDividedStringBuilder(
+ "messages.to-players.when-teleported-by-tp-online.before-teleport"),
+ playersPairs))
+ if (!player.teleport(location)) {
+ fCount++
+ commandSender.sendMessage(rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("failed-to-teleport-someone"), playersPairs))
+ } else {
+ sCount++
+ }
+ }
+
+ val cPairs = arrayOf(StringPair.teleportedCount(sCount.toString()), StringPair.unteleportedCount(fCount.toString()), StringPair.markName(markName), StringPair.worldName(worldName), StringPair.senderName(commandSender.name))
+ commandSender.sendMessage(rootPlugin.messagesManager!!.getMessage(
+ messageKey.append("completed"), cPairs))
+ return true
+ }
+
+ companion object {
+ protected val layerName = "online"
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/TpRouter.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/TpRouter.java
deleted file mode 100644
index de342ea..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/TpRouter.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package top.nololiyt.worldpermissions.commands.tp;
-
-import top.nololiyt.worldpermissions.commands.CommandLayer;
-import top.nololiyt.worldpermissions.commands.Router;
-
-public class TpRouter extends Router
-{
- protected final static String layerName = "tp";
- @Override
- protected String permissionName()
- {
- return layerName;
- }
-
- @Override
- protected String messageKey()
- {
- return layerName;
- }
-
- /**
- * Return the next layer matching the arg.
- * If no layer match it, please return 'null' and the help list will be sent.
- *
- * @param arg
- * @return
- */
- @Override
- protected CommandLayer nextLayer(String arg)
- {
- switch (arg)
- {
- case "offline":
- return new OfflineExecutor();
- case "online":
- return new OnlineExecutor();
- default:
- return null;
- }
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/TpRouter.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/TpRouter.kt
new file mode 100644
index 0000000..8940ad3
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/commands/tp/TpRouter.kt
@@ -0,0 +1,33 @@
+package top.nololiyt.worldpermissions.commands.tp
+
+import top.nololiyt.worldpermissions.commands.CommandLayer
+import top.nololiyt.worldpermissions.commands.Router
+
+class TpRouter : Router() {
+ override fun permissionName(): String? {
+ return layerName
+ }
+
+ override fun messageKey(): String? {
+ return layerName
+ }
+
+ /**
+ * Return the next layer matching the arg.
+ * If no layer match it, please return 'null' and the help list will be sent.
+ *
+ * @param arg
+ * @return
+ */
+ override fun nextLayer(arg: String): CommandLayer? {
+ when (arg) {
+ "offline" -> return OfflineExecutor()
+ "online" -> return OnlineExecutor()
+ else -> return null
+ }
+ }
+
+ companion object {
+ protected val layerName = "tp"
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/entities/DotDividedStringBuilder.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/entities/DotDividedStringBuilder.java
deleted file mode 100644
index 0ff5593..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/entities/DotDividedStringBuilder.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package top.nololiyt.worldpermissions.entities;
-
-public class DotDividedStringBuilder
-{
- private StringBuilder stringBuilder;
-
- @Override
- public String toString()
- {
- return stringBuilder.toString();
- }
-
- public DotDividedStringBuilder append(String name)
- {
- this.stringBuilder.append('.')
- .append(name);
- return this;
- }
-
- public DotDividedStringBuilder(String root)
- {
- this.stringBuilder = new StringBuilder();
- this.stringBuilder.append(root);
- }
-
- public DotDividedStringBuilder(DotDividedStringBuilder builder)
- {
- this.stringBuilder = new StringBuilder();
- this.stringBuilder.append(builder.stringBuilder.toString());
- }
-}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/entities/DotDividedStringBuilder.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/entities/DotDividedStringBuilder.kt
new file mode 100644
index 0000000..f15ac6f
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/entities/DotDividedStringBuilder.kt
@@ -0,0 +1,25 @@
+package top.nololiyt.worldpermissions.entities
+
+class DotDividedStringBuilder {
+ private var stringBuilder: StringBuilder? = null
+
+ override fun toString(): String {
+ return stringBuilder!!.toString()
+ }
+
+ fun append(name: String): DotDividedStringBuilder {
+ this.stringBuilder!!.append('.')
+ .append(name)
+ return this
+ }
+
+ constructor(root: String) {
+ this.stringBuilder = StringBuilder()
+ this.stringBuilder!!.append(root)
+ }
+
+ constructor(builder: DotDividedStringBuilder) {
+ this.stringBuilder = StringBuilder()
+ this.stringBuilder!!.append(builder.stringBuilder!!.toString())
+ }
+}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/entities/StringPair.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/entities/StringPair.java
deleted file mode 100644
index d4f2c4f..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/entities/StringPair.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package top.nololiyt.worldpermissions.entities;
-
-public class StringPair
-{
- private String key;
-
- public String getKey()
- {
- return key;
- }
-
- private String value;
-
- public String getValue()
- {
- return value;
- }
-
- private StringPair(String key, String value)
- {
- this.key = key;
- this.value = value;
- }
-
- public static StringPair senderName(String value)
- {
- return new StringPair("{senderName}", value);
- }
-
- public static StringPair playerName(String value)
- {
- return new StringPair("{playerName}", value);
- }
-
- public static StringPair worldName(String value)
- {
- return new StringPair("{worldName}", value);
- }
-
- public static StringPair teleportedCount(String value)
- {
- return new StringPair("{teleportedCount}", value);
- }
-
- public static StringPair unteleportedCount(String value)
- {
- return new StringPair("{unteleportedCount}", value);
- }
-
- public static StringPair markName(String value)
- {
- return new StringPair("{markName}", value);
- }
-}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/entities/StringPair.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/entities/StringPair.kt
new file mode 100644
index 0000000..ae45e03
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/entities/StringPair.kt
@@ -0,0 +1,30 @@
+package top.nololiyt.worldpermissions.entities
+
+class StringPair private constructor(val key: String, val value: String) {
+ companion object {
+
+ fun senderName(value: String): StringPair {
+ return StringPair("{senderName}", value)
+ }
+
+ fun playerName(value: String): StringPair {
+ return StringPair("{playerName}", value)
+ }
+
+ fun worldName(value: String): StringPair {
+ return StringPair("{worldName}", value)
+ }
+
+ fun teleportedCount(value: String): StringPair {
+ return StringPair("{teleportedCount}", value)
+ }
+
+ fun unteleportedCount(value: String): StringPair {
+ return StringPair("{unteleportedCount}", value)
+ }
+
+ fun markName(value: String): StringPair {
+ return StringPair("{markName}", value)
+ }
+ }
+}
\ No newline at end of file
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/playerlisteners/LoginAndQuitListener.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/playerlisteners/LoginAndQuitListener.java
deleted file mode 100644
index 0bc75d4..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/playerlisteners/LoginAndQuitListener.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package top.nololiyt.worldpermissions.playerlisteners;
-
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerJoinEvent;
-import org.bukkit.event.player.PlayerQuitEvent;
-import org.bukkit.event.player.PlayerTeleportEvent;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
-public class LoginAndQuitListener implements Listener
-{
- private RootPlugin rootPlugin;
-
- public LoginAndQuitListener(RootPlugin rootPlugin)
- {
- this.rootPlugin = rootPlugin;
- }
-
- @EventHandler
- public void onPlayerLogin(PlayerJoinEvent e)
- {
- if ((!rootPlugin.getConfig().getBoolean("offline-players-tracker.enabled")) ||
- rootPlugin.getConfig().getBoolean("offline-players-tracker.record-only"))
- {
- return;
- }
-
- Player player = e.getPlayer();
- File file = new File(
- rootPlugin.getDataFolder().getAbsolutePath(), "playersData");
- file.mkdirs();
- file = new File(file.getAbsolutePath(), player.getUniqueId().toString() + ".yml");
- if (!file.exists())
- return;
-
- YamlConfiguration yamlConfiguration = YamlConfiguration
- .loadConfiguration(file);
- Object location = yamlConfiguration.get("position");
- if (location != null)
- player.teleport((Location) location);
- }
- @EventHandler
- public void onPlayerQuitEvent(PlayerQuitEvent e)
- {
- if(!rootPlugin.getConfig().getBoolean("offline-players-tracker.enabled"))
- {
- return;
- }
- Player player = e.getPlayer();
- try
- {
- File file = new File(
- rootPlugin.getDataFolder().getAbsolutePath(), "playersData");
- file.mkdirs();
- file = new File(file.getAbsolutePath(), player.getUniqueId().toString() + ".yml");
- if (!file.exists())
- file.createNewFile();
-
- YamlConfiguration yamlConfiguration = YamlConfiguration
- .loadConfiguration(file);
- yamlConfiguration.set("position", player.getLocation());
- yamlConfiguration.save(file);
- }
- catch (IOException ex)
- {
- ex.printStackTrace();
- }
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/playerlisteners/LoginAndQuitListener.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/playerlisteners/LoginAndQuitListener.kt
new file mode 100644
index 0000000..e775b22
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/playerlisteners/LoginAndQuitListener.kt
@@ -0,0 +1,65 @@
+package top.nololiyt.worldpermissions.playerlisteners
+
+import org.bukkit.Location
+import org.bukkit.World
+import org.bukkit.configuration.file.YamlConfiguration
+import org.bukkit.entity.Player
+import org.bukkit.event.EventHandler
+import org.bukkit.event.Listener
+import org.bukkit.event.player.PlayerJoinEvent
+import org.bukkit.event.player.PlayerQuitEvent
+import org.bukkit.event.player.PlayerTeleportEvent
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+
+import java.io.File
+import java.io.IOException
+
+class LoginAndQuitListener(private val rootPlugin: RootPlugin) : Listener {
+
+ @EventHandler
+ fun onPlayerLogin(e: PlayerJoinEvent) {
+ if (!rootPlugin.config.getBoolean("offline-players-tracker.enabled") || rootPlugin.config.getBoolean("offline-players-tracker.record-only")) {
+ return
+ }
+
+ val player = e.player
+ var file = File(
+ rootPlugin.dataFolder.absolutePath, "playersData")
+ file.mkdirs()
+ file = File(file.absolutePath, player.uniqueId.toString() + ".yml")
+ if (!file.exists())
+ return
+
+ val yamlConfiguration = YamlConfiguration
+ .loadConfiguration(file)
+ val location = yamlConfiguration.get("position")
+ if (location != null)
+ player.teleport((location as Location?)!!)
+ }
+
+ @EventHandler
+ fun onPlayerQuitEvent(e: PlayerQuitEvent) {
+ if (!rootPlugin.config.getBoolean("offline-players-tracker.enabled")) {
+ return
+ }
+ val player = e.player
+ try {
+ var file = File(
+ rootPlugin.dataFolder.absolutePath, "playersData")
+ file.mkdirs()
+ file = File(file.absolutePath, player.uniqueId.toString() + ".yml")
+ if (!file.exists())
+ file.createNewFile()
+
+ val yamlConfiguration = YamlConfiguration
+ .loadConfiguration(file)
+ yamlConfiguration.set("position", player.location)
+ yamlConfiguration.save(file)
+ } catch (ex: IOException) {
+ ex.printStackTrace()
+ }
+
+ }
+}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/playerlisteners/TeleportListener.java b/NWorldPermissions/src/top/nololiyt/worldpermissions/playerlisteners/TeleportListener.java
deleted file mode 100644
index 8d74ac8..0000000
--- a/NWorldPermissions/src/top/nololiyt/worldpermissions/playerlisteners/TeleportListener.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package top.nololiyt.worldpermissions.playerlisteners;
-
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerTeleportEvent;
-import top.nololiyt.worldpermissions.RootPlugin;
-import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder;
-import top.nololiyt.worldpermissions.entities.StringPair;
-
-import java.util.List;
-
-public class TeleportListener implements Listener
-{
- private RootPlugin rootPlugin;
-
- public TeleportListener(RootPlugin rootPlugin)
- {
- this.rootPlugin = rootPlugin;
- }
-
- @EventHandler
- public void onPlayerTeleport(PlayerTeleportEvent e)
- {
- World dest = e.getTo().getWorld();
- if (dest.equals(e.getFrom().getWorld()))
- {
- return;
- }
-
- String destName = dest.getName();
-
- Player player = e.getPlayer();
-
- if (!worldIsControlled(dest))
- {
- return;
- }
-
- StringPair[] pairs = new StringPair[]{
- StringPair.playerName(player.getDisplayName())
- };
-
- if (player.hasPermission("nworldpermissions.forfreeto." + destName))
- {
- String message = rootPlugin.getMessagesManager().getMessage(
- new DotDividedStringBuilder(
- "messages.to-players.when-teleport-to-controlled-worlds.teleported"),
- pairs);
- if (!message.isEmpty())
- player.sendMessage(message);
- return;
- }
-
- e.setCancelled(true);
- String message = rootPlugin.getMessagesManager().getMessage(
- new DotDividedStringBuilder(
- "messages.to-players.when-teleport-to-controlled-worlds.denied"
- ), pairs);
- if (!message.isEmpty())
- player.sendMessage(message);
- }
-
- private boolean worldIsControlled(World world)
- {
- List worlds = rootPlugin.getConfig().getStringList("controlled-worlds");
- String destName = world.getName();
- return worlds.contains(destName);
- }
-}
diff --git a/NWorldPermissions/src/top/nololiyt/worldpermissions/playerlisteners/TeleportListener.kt b/NWorldPermissions/src/top/nololiyt/worldpermissions/playerlisteners/TeleportListener.kt
new file mode 100644
index 0000000..565e24a
--- /dev/null
+++ b/NWorldPermissions/src/top/nololiyt/worldpermissions/playerlisteners/TeleportListener.kt
@@ -0,0 +1,55 @@
+package top.nololiyt.worldpermissions.playerlisteners
+
+import org.bukkit.World
+import org.bukkit.entity.Player
+import org.bukkit.event.EventHandler
+import org.bukkit.event.Listener
+import org.bukkit.event.player.PlayerTeleportEvent
+import top.nololiyt.worldpermissions.RootPlugin
+import top.nololiyt.worldpermissions.entities.DotDividedStringBuilder
+import top.nololiyt.worldpermissions.entities.StringPair
+
+class TeleportListener(private val rootPlugin: RootPlugin) : Listener {
+
+ @EventHandler
+ fun onPlayerTeleport(e: PlayerTeleportEvent) {
+ val dest = e.to!!.world
+ if (dest == e.from.world) {
+ return
+ }
+
+ val destName = dest!!.name
+
+ val player = e.player
+
+ if (!worldIsControlled(dest)) {
+ return
+ }
+
+ val pairs = arrayOf(StringPair.playerName(player.displayName))
+
+ if (player.hasPermission("nworldpermissions.forfreeto.$destName")) {
+ val message = rootPlugin.messagesManager!!.getMessage(
+ DotDividedStringBuilder(
+ "messages.to-players.when-teleport-to-controlled-worlds.teleported"),
+ pairs)
+ if (!message.isBlank())
+ player.sendMessage(message)
+ return
+ }
+
+ e.isCancelled = true
+ val message = rootPlugin.messagesManager!!.getMessage(
+ DotDividedStringBuilder(
+ "messages.to-players.when-teleport-to-controlled-worlds.denied"
+ ), pairs)
+ if (!message.isBlank())
+ player.sendMessage(message)
+ }
+
+ private fun worldIsControlled(world: World): Boolean {
+ val worlds = rootPlugin.config.getStringList("controlled-worlds")
+ val destName = world.name
+ return worlds.contains(destName)
+ }
+}