From 42f94093a71c1a1a69a2481acd9b20ad44e8c548 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sat, 24 Jun 2017 17:12:29 +0300 Subject: [PATCH] =?UTF-8?q?Bridge:=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20ping-=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BD=D0=B0=20Zond?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bridge/build.gradle | 2 +- .../java/asys/bridge/bukkit/BridgePlugin.java | 5 +++++ .../asys/bridge/client/AbstractBridge.java | 19 ++++--------------- .../main/java/asys/bridge/client/Client.java | 7 +++++++ .../main/java/asys/bridge/client/IBridge.java | 4 +--- 5 files changed, 18 insertions(+), 19 deletions(-) diff --git a/bridge/build.gradle b/bridge/build.gradle index 071d568..ab5ec1e 100644 --- a/bridge/build.gradle +++ b/bridge/build.gradle @@ -1,5 +1,5 @@ group = 'asys' -version = '0.8-SNAPSHOT' +version = '0.8.1-SNAPSHOT' repositories { maven { url 'https://hub.spigotmc.org/nexus/content/groups/public/' } diff --git a/bridge/src/main/java/asys/bridge/bukkit/BridgePlugin.java b/bridge/src/main/java/asys/bridge/bukkit/BridgePlugin.java index 4d73b8f..3431ec5 100644 --- a/bridge/src/main/java/asys/bridge/bukkit/BridgePlugin.java +++ b/bridge/src/main/java/asys/bridge/bukkit/BridgePlugin.java @@ -18,6 +18,11 @@ public class BridgePlugin extends JavaPlugin { this.bridgeBukkit.startReconnect(); } + @Override + public void onEnable() { + this.bridgeBukkit.startPing(); + } + @Override public void onDisable() { this.bridgeBukkit.setNeedReconnect(false); diff --git a/bridge/src/main/java/asys/bridge/client/AbstractBridge.java b/bridge/src/main/java/asys/bridge/client/AbstractBridge.java index fb4b277..bc8b0d3 100644 --- a/bridge/src/main/java/asys/bridge/client/AbstractBridge.java +++ b/bridge/src/main/java/asys/bridge/client/AbstractBridge.java @@ -20,7 +20,7 @@ public abstract class AbstractBridge implements IBridge { connectTicker = new TaskTicker().setStepTimeMs(5000L); connectTicker.setTask(() -> { getLogger().info(String.format("Connect(%d) to Zond...", ++tryConnect)); - client.connect(getConfig().getString("host"), getConfig().getInt("port")); + client.connect("127.0.0.1", getConfig().getInt("port")); if (client.isConnected()) { stopReconnect(); } else { @@ -48,24 +48,13 @@ public abstract class AbstractBridge implements IBridge { } @Override - public void startPing(Channel channel) { + public void startPing() { pingTicker = new TaskTicker().setStepTimeMs(5000L); pingTicker.setTask(() -> { - channel.write(new CS_Ping( + client.sendPacket(new CS_Ping( System.currentTimeMillis(), 20.0D, //FIXME fake tps - getCountOnlinePlayers() - )); - if (channel.isWritable()) { - channel.flush(); - } else { - getLogger().warn("Lost connection!"); - channel.close(); - stopPing(); - - getLogger().warn("Try reconnect..."); - startReconnect(); - } + getCountOnlinePlayers())); }).start(); } diff --git a/bridge/src/main/java/asys/bridge/client/Client.java b/bridge/src/main/java/asys/bridge/client/Client.java index b9d354b..7243997 100644 --- a/bridge/src/main/java/asys/bridge/client/Client.java +++ b/bridge/src/main/java/asys/bridge/client/Client.java @@ -4,6 +4,7 @@ */ package asys.bridge.client; +import asys.mcsmanager.packets.Packet; import asys.mcsmanager.packets.codec.PacketDecoder; import asys.mcsmanager.packets.codec.PacketEncoder; import asys.mcsmanager.packets.codec.PacketHandler; @@ -65,4 +66,10 @@ public class Client { } }; } + + public void sendPacket(Packet packet) { + if (isConnected()) { + channelFuture.channel().writeAndFlush(packet); + } + } } diff --git a/bridge/src/main/java/asys/bridge/client/IBridge.java b/bridge/src/main/java/asys/bridge/client/IBridge.java index 3ded3e8..d8118e1 100644 --- a/bridge/src/main/java/asys/bridge/client/IBridge.java +++ b/bridge/src/main/java/asys/bridge/client/IBridge.java @@ -4,8 +4,6 @@ */ package asys.bridge.client; -import io.netty.channel.Channel; - public interface IBridge { ILogger getLogger(); IConfig getConfig(); @@ -15,7 +13,7 @@ public interface IBridge { boolean isNeedReconnect(); void setNeedReconnect(boolean value); void stopReconnect(); - void startPing(Channel channel); + void startPing(); void stopPing(); void disconnect(); }