2
0
mirror of https://github.com/proxiodev/RedisBungee.git synced 2026-04-25 16:00:27 +00:00

reduce code used in settings.gradle.kts, changes to plugin message

This commit is contained in:
2024-05-16 18:38:41 +04:00
parent 81ae05b6a4
commit dbaee0df4c
13 changed files with 69 additions and 81 deletions

View File

@@ -0,0 +1,31 @@
plugins {
`java-library`
`maven-publish`
}
dependencies {
api(project(":Limework-Plugin-Message-API-Protocol"))
compileOnly(libs.guava)
}
tasks {
compileJava {
options.encoding = Charsets.UTF_8.name()
options.release.set(17) // use java 8 for shit servers that still stuck on minecraft 1.8
}
javadoc {
options.encoding = Charsets.UTF_8.name()
}
processResources {
filteringCharset = Charsets.UTF_8.name()
}
}
publishing {
publications {
create<MavenPublication>("maven") {
from(components["java"])
}
}
}

View File

@@ -0,0 +1,24 @@
package net.limework.valiobungee.pluginmessage.models;
public class Proxy {
private String proxyId;
private int players;
public Proxy() {
}
public Proxy(String proxyId, int players) {
this.proxyId = proxyId;
this.players = players;
}
public String proxyId() {
return proxyId;
}
public int players() {
return players;
}
}

View File

@@ -0,0 +1,10 @@
package net.limework.valiobungee.pluginmessage.protocol;
import net.limework.pluginmessageapi.protocol.PluginMessageHandler;
import net.limework.valiobungee.pluginmessage.protocol.messages.proxybound.RequestProxiesListMessage;
public interface ProxyboundHandler extends PluginMessageHandler {
void handle(RequestProxiesListMessage message);
}

View File

@@ -0,0 +1,10 @@
package net.limework.valiobungee.pluginmessage.protocol;
import net.limework.pluginmessageapi.protocol.PluginMessageHandler;
import net.limework.valiobungee.pluginmessage.protocol.messages.servebound.ProxiesListMessage;
public interface ServerboundHandler extends PluginMessageHandler {
void handle(ProxiesListMessage message);
}

View File

@@ -0,0 +1,38 @@
package net.limework.valiobungee.pluginmessage.protocol.messages;
import net.limework.pluginmessageapi.protocol.PluginMessageRegistry;
import net.limework.valiobungee.pluginmessage.protocol.messages.proxybound.RequestProxiesListMessage;
import net.limework.valiobungee.pluginmessage.protocol.messages.servebound.ProxiesListMessage;
public class Registry {
private static final PluginMessageRegistry serverbound = new PluginMessageRegistry();
private static final PluginMessageRegistry proxybound = new PluginMessageRegistry();
static {
registerProxybound();
registerServerbound();
}
private static void registerServerbound() {
serverbound.register(0, ProxiesListMessage.class, ProxiesListMessage::new);
}
private static void registerProxybound() {
proxybound.register(0, RequestProxiesListMessage.class, RequestProxiesListMessage::new);
}
public static PluginMessageRegistry serverbound() {
return serverbound;
}
public static PluginMessageRegistry proxybound() {
return proxybound;
}
}

View File

@@ -0,0 +1,24 @@
package net.limework.valiobungee.pluginmessage.protocol.messages.proxybound;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import net.limework.pluginmessageapi.protocol.PluginMessage;
public abstract class RequestMessage extends PluginMessage {
public RequestMessage() {
}
@Override
public void encode(ByteArrayDataOutput out) {
// do nothing
}
@Override
public void decode(ByteArrayDataInput in) {
// do nothing
}
}

View File

@@ -0,0 +1,15 @@
package net.limework.valiobungee.pluginmessage.protocol.messages.proxybound;
import net.limework.pluginmessageapi.protocol.PluginMessageHandler;
import net.limework.valiobungee.pluginmessage.protocol.ProxyboundHandler;
public class RequestProxiesListMessage extends RequestMessage {
public RequestProxiesListMessage() {
}
@Override
public void handle(PluginMessageHandler handler) {
((ProxyboundHandler) handler).handle(this);
}
}

View File

@@ -0,0 +1,46 @@
package net.limework.valiobungee.pluginmessage.protocol.messages.servebound;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import net.limework.pluginmessageapi.protocol.PluginMessage;
import net.limework.pluginmessageapi.protocol.PluginMessageHandler;
import net.limework.valiobungee.pluginmessage.models.Proxy;
import net.limework.valiobungee.pluginmessage.protocol.ServerboundHandler;
public class ProxiesListMessage extends PluginMessage {
private Proxy[] proxies;
public ProxiesListMessage() {
}
public Proxy[] proxies() {
return proxies;
}
@Override
public void decode(ByteArrayDataInput in) {
int proxiesNumber = in.readInt();
this.proxies = new Proxy[proxiesNumber];
for (int i = 0; i < proxiesNumber; i++) {
String id = in.readUTF();
int players = in.readInt();
proxies[i] = new Proxy(id, players);
}
}
@Override
public void encode(ByteArrayDataOutput out) {
out.writeInt(proxies.length);
for (Proxy proxy : proxies) {
out.writeUTF(proxy.proxyId());
out.writeInt(proxy.players());
}
}
@Override
public void handle(PluginMessageHandler handler) {
((ServerboundHandler) handler).handle(this);
}
}