SubServers-2/SubServers.Sync/velocity/src/net/ME1312/SubServers/Velocity/Network/Packet/PacketInExEditServer.java

66 lines
2.3 KiB
Java

package net.ME1312.SubServers.Velocity.Network.Packet;
import net.ME1312.Galaxi.Library.Map.ObjectMap;
import net.ME1312.SubData.Client.Protocol.PacketObjectIn;
import net.ME1312.SubData.Client.SubDataSender;
import net.ME1312.SubServers.Velocity.ExProxy;
import net.ME1312.SubServers.Velocity.Library.Compatibility.ChatColor;
import net.ME1312.SubServers.Velocity.Server.ServerData;
import com.velocitypowered.api.proxy.server.RegisteredServer;
/**
* Server Edit Notification Packet
*/
public class PacketInExEditServer implements PacketObjectIn<Integer> {
private ExProxy plugin;
/**
* New PacketExControlServer (In)
*/
public PacketInExEditServer(ExProxy plugin) {
this.plugin = plugin;
}
@Override
public void receive(SubDataSender client, ObjectMap<Integer> data) {
ServerData server = ExProxy.getInstance().getServer(data.getRawString(0x0000)).map(RegisteredServer::getServerInfo).map(plugin::getData).orElse(null);
if (server != null) {
switch (data.getInt(0x0001)) {
case 0:
server.setDisplayName(data.getList(0x0002).get(0).asRawString());
break;
case 1:
server.setMotd(ChatColor.parseColor('&', data.getList(0x0002).get(0).asRawString()));
break;
case 2:
server.setRestricted(data.getList(0x0002).get(0).asBoolean());
break;
case 3:
server.setHidden(data.getList(0x0002).get(0).asBoolean());
break;
case 4:
server.setSubData(data.getList(0x0002).get(1).asUUID(), data.getList(0x0002).get(0).asInt());
break;
case 5:
server.setSubData(null, data.getList(0x0002).get(0).asInt());
break;
case 6:
server.whitelist = data.getList(0x0002).get(0).asUUIDList();
break;
case 7:
server.whitelist(data.getList(0x0002).get(0).asUUID());
break;
case 8:
server.unwhitelist(data.getList(0x0002).get(0).asUUID());
break;
}
}
}
@Override
public int version() {
return 0x0002;
}
}