SubServers-2/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketOutExRunEvent.java

222 lines
8.7 KiB
Java
Raw Normal View History

2016-12-24 05:55:17 +01:00
package net.ME1312.SubServers.Bungee.Network.Packet;
2016-12-19 01:38:02 +01:00
2019-04-18 16:02:09 +02:00
import net.ME1312.Galaxi.Library.Map.ObjectMap;
import net.ME1312.Galaxi.Library.Util;
import net.ME1312.SubData.Server.Protocol.PacketObjectOut;
2020-11-16 21:34:59 +01:00
import net.ME1312.SubData.Server.SubDataClient;
import net.ME1312.SubServers.Bungee.Event.*;
import net.ME1312.SubServers.Bungee.Library.SubEvent;
import net.ME1312.SubServers.Bungee.SubProxy;
2020-11-16 21:34:59 +01:00
2016-12-19 01:38:02 +01:00
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
2019-04-18 16:02:09 +02:00
import java.util.LinkedList;
import java.util.List;
2017-01-07 20:06:54 +01:00
/**
* Event Send Packet
*/
2019-04-18 16:02:09 +02:00
public class PacketOutExRunEvent implements Listener, PacketObjectOut<Integer> {
private SubProxy plugin;
2019-04-18 16:02:09 +02:00
private ObjectMap<String> args;
2016-12-19 01:38:02 +01:00
private String type;
2017-01-07 20:06:54 +01:00
/**
2019-04-18 16:02:09 +02:00
* New PacketOutExRunEvent (Registerer)
2017-01-07 20:06:54 +01:00
*
* @param plugin
*/
public PacketOutExRunEvent(SubProxy plugin) {
Util.nullpo(plugin);
2016-12-19 01:38:02 +01:00
this.plugin = plugin;
}
2017-01-07 20:06:54 +01:00
/**
2019-04-18 16:02:09 +02:00
* New PacketOutExRunEvent (Out)
2017-01-07 20:06:54 +01:00
*
* @param event Event to be run
* @param args Arguments
*/
2019-04-18 16:02:09 +02:00
public PacketOutExRunEvent(Class<? extends SubEvent> event, ObjectMap<String> args) {
Util.nullpo(event, args);
2016-12-19 01:38:02 +01:00
this.type = event.getSimpleName();
this.args = args;
}
@Override
2019-04-18 16:02:09 +02:00
public ObjectMap<Integer> send(SubDataClient client) {
ObjectMap<Integer> json = new ObjectMap<Integer>();
json.set(0x0000, type);
json.set(0x0001, args);
2016-12-19 01:38:02 +01:00
return json;
}
@Override
2019-04-18 16:02:09 +02:00
public int version() {
return 0x0001;
}
private void broadcast(PacketOutExRunEvent packet) {
2019-05-14 04:02:38 +02:00
broadcast(null, packet);
}
private void broadcast(Object self, PacketOutExRunEvent packet) {
if (plugin.subdata != null) {
List<SubDataClient> clients = new LinkedList<SubDataClient>();
clients.addAll(plugin.subdata.getClients().values());
for (SubDataClient client : clients) {
if (client.getHandler() == null || client.getHandler() != self) { // Don't send events about yourself to yourself
if (client.getHandler() == null || client.getHandler().getSubData()[0] == client) { // Don't send events over subchannels
client.sendPacket(packet);
}
2019-05-14 04:02:38 +02:00
}
}
2019-04-18 16:02:09 +02:00
}
2016-12-19 01:38:02 +01:00
}
@EventHandler(priority = Byte.MAX_VALUE)
public void event(SubAddProxyEvent event) {
2019-04-18 16:02:09 +02:00
ObjectMap<String> args = new ObjectMap<String>();
args.set("proxy", event.getProxy().getName());
2019-05-14 04:02:38 +02:00
broadcast(event.getProxy(), new PacketOutExRunEvent(event.getClass(), args));
}
@EventHandler(priority = Byte.MAX_VALUE)
public void event(SubAddHostEvent event) {
if (!event.isCancelled()) {
2019-04-18 16:02:09 +02:00
ObjectMap<String> args = new ObjectMap<String>();
if (event.getPlayer() != null) args.set("player", event.getPlayer());
args.set("host", event.getHost().getName());
2019-05-14 04:02:38 +02:00
broadcast(event.getHost(), new PacketOutExRunEvent(event.getClass(), args));
}
}
@EventHandler(priority = Byte.MAX_VALUE)
2016-12-19 01:38:02 +01:00
public void event(SubAddServerEvent event) {
if (!event.isCancelled()) {
2019-04-18 16:02:09 +02:00
ObjectMap<String> args = new ObjectMap<String>();
if (event.getPlayer() != null) args.set("player", event.getPlayer());
if (event.getHost() != null) args.set("host", event.getHost().getName());
args.set("server", event.getServer().getName());
2019-05-14 04:02:38 +02:00
broadcast(event.getServer(), new PacketOutExRunEvent(event.getClass(), args));
2016-12-19 01:38:02 +01:00
}
}
@EventHandler(priority = Byte.MAX_VALUE)
2016-12-19 01:38:02 +01:00
public void event(SubCreateEvent event) {
if (!event.isCancelled()) {
2019-04-18 16:02:09 +02:00
ObjectMap<String> args = new ObjectMap<String>();
if (event.getPlayer() != null) args.set("player", event.getPlayer());
args.set("update", event.isUpdate());
args.set("name", event.getName());
args.set("host", event.getHost().getName());
args.set("template", event.getTemplate().getName());
2019-04-18 16:02:09 +02:00
if (event.getVersion() != null) args.set("version", event.getVersion());
args.set("port", event.getPort());
2019-04-18 16:02:09 +02:00
broadcast(new PacketOutExRunEvent(event.getClass(), args));
2016-12-19 01:38:02 +01:00
}
}
2019-06-25 23:13:27 +02:00
2019-12-18 08:49:40 +01:00
@EventHandler(priority = Byte.MAX_VALUE)
public void event(SubCreatedEvent event) {
ObjectMap<String> args = new ObjectMap<String>();
if (event.getPlayer() != null) args.set("player", event.getPlayer());
2019-12-18 08:49:40 +01:00
args.set("success", event.wasSuccessful());
args.set("update", event.wasUpdate());
args.set("name", event.getName());
args.set("host", event.getHost().getName());
args.set("template", event.getTemplate().getName());
if (event.getVersion() != null) args.set("version", event.getVersion());
args.set("port", event.getPort());
broadcast(new PacketOutExRunEvent(event.getClass(), args));
}
@EventHandler(priority = Byte.MAX_VALUE)
2016-12-19 01:38:02 +01:00
public void event(SubSendCommandEvent event) {
if (!event.isCancelled()) {
2019-04-18 16:02:09 +02:00
ObjectMap<String> args = new ObjectMap<String>();
if (event.getPlayer() != null) args.set("player", event.getPlayer());
args.set("server", event.getServer().getName());
args.set("command", event.getCommand());
if (event.getTarget() != null) args.set("target", event.getTarget());
2019-04-18 16:02:09 +02:00
broadcast(new PacketOutExRunEvent(event.getClass(), args));
2016-12-19 01:38:02 +01:00
}
}
@EventHandler(priority = Byte.MAX_VALUE)
public void event(SubEditServerEvent event) {
if (!event.isCancelled()) {
2019-04-18 16:02:09 +02:00
ObjectMap<String> args = new ObjectMap<String>();
if (event.getPlayer() != null) args.set("player", event.getPlayer());
args.set("server", event.getServer().getName());
2020-11-14 08:07:25 +01:00
args.set("edit", event.getEdit().key());
args.set("value", event.getEdit().value().asObject());
2019-04-18 16:02:09 +02:00
broadcast(new PacketOutExRunEvent(event.getClass(), args));
}
}
@EventHandler(priority = Byte.MAX_VALUE)
2016-12-19 01:38:02 +01:00
public void event(SubStartEvent event) {
if (!event.isCancelled()) {
2019-04-18 16:02:09 +02:00
ObjectMap<String> args = new ObjectMap<String>();
if (event.getPlayer() != null) args.set("player", event.getPlayer());
args.set("server", event.getServer().getName());
2019-04-18 16:02:09 +02:00
broadcast(new PacketOutExRunEvent(event.getClass(), args));
2016-12-19 01:38:02 +01:00
}
}
2019-06-25 23:13:27 +02:00
@EventHandler(priority = Byte.MAX_VALUE)
public void event(SubStartedEvent event) {
ObjectMap<String> args = new ObjectMap<String>();
args.set("server", event.getServer().getName());
broadcast(event.getServer(), new PacketOutExRunEvent(event.getClass(), args));
}
@EventHandler(priority = Byte.MAX_VALUE)
2016-12-19 01:38:02 +01:00
public void event(SubStopEvent event) {
if (!event.isCancelled()) {
2019-04-18 16:02:09 +02:00
ObjectMap<String> args = new ObjectMap<String>();
if (event.getPlayer() != null) args.set("player", event.getPlayer());
args.set("server", event.getServer().getName());
args.set("force", event.isForced());
2019-04-18 16:02:09 +02:00
broadcast(new PacketOutExRunEvent(event.getClass(), args));
2017-04-10 05:39:22 +02:00
2016-12-19 01:38:02 +01:00
}
}
@EventHandler(priority = Byte.MAX_VALUE)
2016-12-19 01:38:02 +01:00
public void event(SubStoppedEvent event) {
2019-04-18 16:02:09 +02:00
ObjectMap<String> args = new ObjectMap<String>();
args.set("server", event.getServer().getName());
2019-06-25 23:13:27 +02:00
broadcast(event.getServer(), new PacketOutExRunEvent(event.getClass(), args));
2017-04-10 05:39:22 +02:00
2016-12-19 01:38:02 +01:00
}
2019-06-25 23:13:27 +02:00
@EventHandler(priority = Byte.MAX_VALUE)
2016-12-20 00:31:01 +01:00
public void event(SubRemoveServerEvent event) {
if (!event.isCancelled()) {
2019-04-18 16:02:09 +02:00
ObjectMap<String> args = new ObjectMap<String>();
if (event.getPlayer() != null) args.set("player", event.getPlayer());
if (event.getHost() != null) args.set("host", event.getHost().getName());
args.set("server", event.getServer().getName());
2019-05-14 04:02:38 +02:00
broadcast(event.getServer(), new PacketOutExRunEvent(event.getClass(), args));
2016-12-20 00:31:01 +01:00
}
}
@EventHandler(priority = Byte.MAX_VALUE)
public void event(SubRemoveHostEvent event) {
if (!event.isCancelled()) {
2019-04-18 16:02:09 +02:00
ObjectMap<String> args = new ObjectMap<String>();
if (event.getPlayer() != null) args.set("player", event.getPlayer());
args.set("host", event.getHost().getName());
2019-05-14 04:02:38 +02:00
broadcast(event.getHost(), new PacketOutExRunEvent(event.getClass(), args));
}
}
@EventHandler(priority = Byte.MAX_VALUE)
public void event(SubRemoveProxyEvent event) {
2019-04-18 16:02:09 +02:00
ObjectMap<String> args = new ObjectMap<String>();
args.set("proxy", event.getProxy().getName());
2019-05-14 04:02:38 +02:00
broadcast(event.getProxy(), new PacketOutExRunEvent(event.getClass(), args));
}
2016-12-19 01:38:02 +01:00
}