Zond: попытка перевести основной функционал плагина на "зонд"
что бы плагин занимался только апи сервера
This commit is contained in:
@@ -6,15 +6,4 @@
|
||||
|
||||
Настройки хранятся в файле `config.yml`.
|
||||
|
||||
`clientId` - Идентификатор и одновременно имя сервера. Должно быть уникальным.
|
||||
|
||||
`mode` - Режим работы плагина. Имеется два режим: `1` и `2`.
|
||||
Первый предназначен для прямого подключения к ASys: принимаются комманды, передается вывод консоли.
|
||||
Второй - для подключения через Zond. В этом режиме плагин занимается только пинговкой и выполнением
|
||||
служебных (от Zond) комманд. По-умолчению значение `1`.
|
||||
|
||||
`host` - Хост/IP для подключения к ASys. В режиме `2` игнорируется и всегда имеет значение `127.0.0.1`.
|
||||
|
||||
`port` - Порт для подключения к ASys/Zond.
|
||||
|
||||
`passcode` - Секретное слово. Необходимо как дополнительный слой защиты. В режме `2` игнорируется.
|
||||
`port` - Порт для подключения к Zond.
|
||||
@@ -1,5 +1,5 @@
|
||||
group = 'asys'
|
||||
version = '0.6-SNAPSHOT'
|
||||
version = '0.7-SNAPSHOT'
|
||||
|
||||
repositories {
|
||||
maven { url 'https://hub.spigotmc.org/nexus/content/groups/public/' }
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
/*
|
||||
* DmitriyMX <dimon550@gmail.com>
|
||||
* 2017-05-17
|
||||
*/
|
||||
package asys.bridge.bukkit;
|
||||
|
||||
import asys.mcsmanager.packets.CS_ConsoleMessage;
|
||||
import io.netty.channel.Channel;
|
||||
import org.apache.logging.log4j.core.LogEvent;
|
||||
import org.apache.logging.log4j.core.appender.AbstractAppender;
|
||||
|
||||
public class BridgeLoggerAppender extends AbstractAppender {
|
||||
private Channel channel;
|
||||
|
||||
BridgeLoggerAppender() {
|
||||
super("ASysBridge", null, null);
|
||||
super.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void append(LogEvent event) {
|
||||
if (channel == null) return;
|
||||
|
||||
long timeMillis = event.getMillis();
|
||||
int intLevel = event.getLevel().intLevel();
|
||||
String loggerName = event.getLoggerName();
|
||||
String message = event.getMessage().getFormattedMessage();
|
||||
|
||||
CS_ConsoleMessage messagePkg = new CS_ConsoleMessage(
|
||||
timeMillis,
|
||||
intLevel,
|
||||
loggerName,
|
||||
message
|
||||
);
|
||||
|
||||
channel.writeAndFlush(messagePkg);
|
||||
}
|
||||
|
||||
void setChannel(Channel channel) {
|
||||
this.channel = channel;
|
||||
}
|
||||
}
|
||||
@@ -15,23 +15,11 @@ import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public class BridgePlugin extends JavaPlugin {
|
||||
public static BridgePlugin INSTANCE;
|
||||
private String appConnect = "ASys";
|
||||
private Client client;
|
||||
private TaskTicker connectTicker, pingTicker;
|
||||
private int tryConnect = 0;
|
||||
private BridgeLoggerAppender loggerAppender;
|
||||
private boolean needReconnect = true;
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
if (getConfig().getInt("mode") == 1) {
|
||||
((Logger)LogManager.getRootLogger()).addAppender(loggerAppender = new BridgeLoggerAppender());
|
||||
} else {
|
||||
this.appConnect = "Zond";
|
||||
}
|
||||
onEnable();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
if (INSTANCE == null) {
|
||||
@@ -66,7 +54,7 @@ public class BridgePlugin extends JavaPlugin {
|
||||
client = new Client();
|
||||
connectTicker = new TaskTicker().setStepTimeMs(5000L);
|
||||
connectTicker.setTask(() -> {
|
||||
getLogger().info(String.format("Connect(%d) to %s...", ++tryConnect, appConnect));
|
||||
getLogger().info(String.format("Connect(%d) to Zond...", ++tryConnect));
|
||||
if (getConfig().getInt("mode") == 1) {
|
||||
client.connect(getConfig().getString("host"), getConfig().getInt("port"));
|
||||
} else {
|
||||
@@ -89,9 +77,6 @@ public class BridgePlugin extends JavaPlugin {
|
||||
}
|
||||
|
||||
public void startPing(Channel channel) {
|
||||
if (getConfig().getInt("mode") == 1) {
|
||||
getLoggerAppender().setChannel(channel);
|
||||
}
|
||||
pingTicker = new TaskTicker().setStepTimeMs(5000L);
|
||||
pingTicker.setTask(() -> {
|
||||
channel.write(new CS_Ping(
|
||||
@@ -113,18 +98,11 @@ public class BridgePlugin extends JavaPlugin {
|
||||
}
|
||||
|
||||
public void stopPing() {
|
||||
if (getConfig().getInt("mode") == 1) {
|
||||
getLoggerAppender().setChannel(null);
|
||||
}
|
||||
if (pingTicker != null) {
|
||||
pingTicker.stop();
|
||||
}
|
||||
}
|
||||
|
||||
public BridgeLoggerAppender getLoggerAppender() {
|
||||
return loggerAppender;
|
||||
}
|
||||
|
||||
public boolean isNeedReconnect() {
|
||||
return needReconnect;
|
||||
}
|
||||
|
||||
@@ -1,7 +1 @@
|
||||
clientId: SpigotServer0
|
||||
# 1 - прямое соединение с ASys. Сообщения из консоли перехватываются
|
||||
# 2 - подключение через Zond. Сообщения из консоли не перехватываются
|
||||
mode: 1
|
||||
host: 127.0.0.1
|
||||
port: 8779
|
||||
passcode: testpassphrase
|
||||
port: 8710
|
||||
Reference in New Issue
Block a user