package com.gmail.woodyc40.common.protocol;
import com.google.common.base.Charsets;
import net.tridentsdk.meta.MessageBuilder;
import net.tridentsdk.server.player.TridentPlayer;
/**
* Tests the protocol class(es)
*
* @author Pierre C
*/
public class ProtocolTest {
public static void main(String[] args) {
/*
ProtocolManagement management = ProtocolManagement.manager();
management.intercept(event -> System.out.println(event.getClass() + " has happened"));
for (int i = 0; i < 10; i++) {
final int finalI = i;
management.transmit(new ProtocolEvent() {
}, pipe -> {
System.out.println("This is the " + finalI + "th round");
return ProtocolAction.NO_PLAYERS;
});
}
*/
/* // I haven't tested this LOL
ProtocolManagement management = ProtocolManagement.manager();
management.intercept(new ProtocolListener<PacketReceivedEvent>() {
@Override
public void intercept(PacketReceivedEvent event) {
Packet packet = event.packet();
if (packet.id() == 0x01) {
// Packet 0x01 received is player chat
// Read the first field
String string = (String) packet.read();
// Prevent it from being processed if you're
// a skythekidrs fanboy
if (string.contains("budder")) {
event.setIgnored(true);
} else {
String skythekidrs = "skythekidrs";
if (string.contains(skythekidrs)) {
// Strings are immutable
String newString = string.replace(skythekidrs, "");
// Write the first field
packet.write(newString);
}
}
}
}
}); */
// Not tested
ProtocolManagement management = ProtocolManagement.manager();
Packet packet = management.createPacket(0x02, true);
// WRITING
ByteAppender appender = ByteAppender.empty();
appender.append(new MessageBuilder("Hello World").build().asJson().getBytes(Charsets.UTF_8));
appender.append((byte) 0);
packet.decode(appender.wrapped().peek());
// or
packet.write(new MessageBuilder("Hello World").build().asJson());
packet.write((byte) 0);
// SENDING
management.send(appender, TridentPlayer.players());
// or
management.send(pipe -> {
packet.encode(pipe);
return TridentPlayer.players();
});
}
}