Archived
0

Bridge: отправка ping-пакетов на Zond

This commit is contained in:
2017-06-24 17:12:29 +03:00
parent c96bb37845
commit 42f94093a7
5 changed files with 18 additions and 19 deletions

View File

@@ -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/' }

View File

@@ -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);

View File

@@ -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();
}

View File

@@ -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);
}
}
}

View File

@@ -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();
}