From da383026e504f53bc6a1bbd54a5b0df91b0f4469 Mon Sep 17 00:00:00 2001 From: Jerom van der Sar Date: Fri, 26 May 2017 16:32:25 +0200 Subject: [PATCH] Version 4.5 Update to Spigot 1.12-pre5 Improved API --- pom.xml | 6 ++--- .../bukkittelnet/BukkitTelnet.java | 4 +++ .../bukkittelnet/PlayerEventListener.java | 1 - .../bukkittelnet/SocketListener.java | 6 +++++ .../bukkittelnet/TelnetServer.java | 8 +++--- .../totalfreedom/bukkittelnet/api/Server.java | 13 ++++++---- .../session/SessionCommandSender.java | 25 +++++++++++++++++++ .../bukkittelnet/thirdparty/YamlConfig.java | 6 ++++- src/main/resources/config.yml | 2 +- src/main/resources/plugin.yml | 2 +- 10 files changed, 58 insertions(+), 15 deletions(-) diff --git a/pom.xml b/pom.xml index 43988ff..4fe4fa5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ me.totalfreedom bukkittelnet - 4.4 + 4.5 jar @@ -45,14 +45,14 @@ org.spigotmc spigot-api - 1.9-R0.1-SNAPSHOT + 1.12-pre5-SNAPSHOT compile org.projectlombok lombok - 1.16.6 + 1.16.16 provided diff --git a/src/main/java/me/totalfreedom/bukkittelnet/BukkitTelnet.java b/src/main/java/me/totalfreedom/bukkittelnet/BukkitTelnet.java index dd302e0..64e439a 100644 --- a/src/main/java/me/totalfreedom/bukkittelnet/BukkitTelnet.java +++ b/src/main/java/me/totalfreedom/bukkittelnet/BukkitTelnet.java @@ -1,7 +1,9 @@ package me.totalfreedom.bukkittelnet; +import me.totalfreedom.bukkittelnet.api.Server; import org.bukkit.Bukkit; import org.bukkit.event.HandlerList; +import org.bukkit.plugin.ServicePriority; import org.bukkit.plugin.java.JavaPlugin; public class BukkitTelnet extends JavaPlugin @@ -37,6 +39,8 @@ public class BukkitTelnet extends JavaPlugin getServer().getPluginManager().registerEvents(listener, plugin); + getServer().getServicesManager().register(Server.class, telnet, this, ServicePriority.Normal); + TelnetLogger.info(plugin.getName() + " v" + plugin.getDescription().getVersion() + " enabled"); } diff --git a/src/main/java/me/totalfreedom/bukkittelnet/PlayerEventListener.java b/src/main/java/me/totalfreedom/bukkittelnet/PlayerEventListener.java index 050a952..e9d3b7a 100644 --- a/src/main/java/me/totalfreedom/bukkittelnet/PlayerEventListener.java +++ b/src/main/java/me/totalfreedom/bukkittelnet/PlayerEventListener.java @@ -11,7 +11,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; diff --git a/src/main/java/me/totalfreedom/bukkittelnet/SocketListener.java b/src/main/java/me/totalfreedom/bukkittelnet/SocketListener.java index 578655c..57ad292 100644 --- a/src/main/java/me/totalfreedom/bukkittelnet/SocketListener.java +++ b/src/main/java/me/totalfreedom/bukkittelnet/SocketListener.java @@ -7,6 +7,7 @@ import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -149,4 +150,9 @@ public class SocketListener extends Thread clientSessions.clear(); } + + public List getSessions() + { + return Collections.unmodifiableList(clientSessions); + } } diff --git a/src/main/java/me/totalfreedom/bukkittelnet/TelnetServer.java b/src/main/java/me/totalfreedom/bukkittelnet/TelnetServer.java index 9dcb89c..248014a 100644 --- a/src/main/java/me/totalfreedom/bukkittelnet/TelnetServer.java +++ b/src/main/java/me/totalfreedom/bukkittelnet/TelnetServer.java @@ -4,9 +4,11 @@ import java.io.IOException; import java.net.InetAddress; import java.net.ServerSocket; import java.net.UnknownHostException; +import java.util.List; import lombok.Getter; import me.totalfreedom.bukkittelnet.TelnetConfigLoader.TelnetConfig; import me.totalfreedom.bukkittelnet.api.Server; +import me.totalfreedom.bukkittelnet.session.ClientSession; public class TelnetServer implements Server { @@ -15,7 +17,7 @@ public class TelnetServer implements Server private final BukkitTelnet plugin; @Getter private final TelnetConfig config; - // + @Getter private SocketListener socketListener; public TelnetServer(BukkitTelnet plugin, TelnetConfig config) @@ -92,9 +94,9 @@ public class TelnetServer implements Server } @Override - public SocketListener getSocketListener() + public List getSessions() { - return socketListener; + return socketListener.getSessions(); } } diff --git a/src/main/java/me/totalfreedom/bukkittelnet/api/Server.java b/src/main/java/me/totalfreedom/bukkittelnet/api/Server.java index 0fffc1e..4755fbe 100644 --- a/src/main/java/me/totalfreedom/bukkittelnet/api/Server.java +++ b/src/main/java/me/totalfreedom/bukkittelnet/api/Server.java @@ -1,11 +1,9 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package me.totalfreedom.bukkittelnet.api; +import java.util.List; import me.totalfreedom.bukkittelnet.SocketListener; +import me.totalfreedom.bukkittelnet.TelnetConfigLoader.TelnetConfig; +import me.totalfreedom.bukkittelnet.session.ClientSession; public interface Server { @@ -14,6 +12,11 @@ public interface Server public void stopServer(); + @Deprecated public SocketListener getSocketListener(); + public TelnetConfig getConfig(); + + public List getSessions(); + } diff --git a/src/main/java/me/totalfreedom/bukkittelnet/session/SessionCommandSender.java b/src/main/java/me/totalfreedom/bukkittelnet/session/SessionCommandSender.java index c61814e..98e104a 100644 --- a/src/main/java/me/totalfreedom/bukkittelnet/session/SessionCommandSender.java +++ b/src/main/java/me/totalfreedom/bukkittelnet/session/SessionCommandSender.java @@ -1,6 +1,7 @@ package me.totalfreedom.bukkittelnet.session; import java.util.Set; +import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.command.ConsoleCommandSender; @@ -156,4 +157,28 @@ public class SessionCommandSender implements ConsoleCommandSender session.writeRawLine(string); } + @Override + public Spigot spigot() + { + return new Spigot() + { + + @Override + public void sendMessage(BaseComponent component) + { + SessionCommandSender.this.sendMessage(component.toPlainText()); + } + + @Override + public void sendMessage(BaseComponent... components) + { + for (BaseComponent bc : components) + { + sendMessage(bc); + } + } + + }; + } + } diff --git a/src/main/java/me/totalfreedom/bukkittelnet/thirdparty/YamlConfig.java b/src/main/java/me/totalfreedom/bukkittelnet/thirdparty/YamlConfig.java index c9d1196..de484bc 100644 --- a/src/main/java/me/totalfreedom/bukkittelnet/thirdparty/YamlConfig.java +++ b/src/main/java/me/totalfreedom/bukkittelnet/thirdparty/YamlConfig.java @@ -2,7 +2,10 @@ package me.totalfreedom.bukkittelnet.thirdparty; import java.io.File; import java.io.IOException; +import java.io.InputStreamReader; +import java.io.StringWriter; import org.apache.commons.lang.exception.ExceptionUtils; +import org.apache.logging.log4j.core.util.IOUtils; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.Plugin; @@ -138,7 +141,8 @@ public class YamlConfig extends YamlConfiguration final YamlConfiguration DEFAULT_CONFIG = new YamlConfiguration(); try { - DEFAULT_CONFIG.load(PLUGIN.getResource(CONFIG_FILE.getName())); + final String configString = IOUtils.toString(new InputStreamReader(PLUGIN.getResource(CONFIG_FILE.getName()))); + DEFAULT_CONFIG.loadFromString(configString); } catch (Throwable ex) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 81ccde1..e3f0f95 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,4 +1,4 @@ -# BukkitTelnet v4.2 Configuration File +# BukkitTelnet v4.5 Configuration File # Address to listen on, leave blank for all address: '' diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 33c9e6a..938a8d9 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: BukkitTelnet main: me.totalfreedom.bukkittelnet.BukkitTelnet -version: 4.4 +version: 4.5 description: Telnet console access plugin. authors: [bekvon, Madgeek1450, Prozza]