Search in sources :

Example 1 with NetworkDataOutputStream

use of net.minecraft.server.rcon.NetworkDataOutputStream in project SpongeCommon by SpongePowered.

the class QueryThreadGs4Mixin method impl$basicSendTo.

// @formatter:on
@Redirect(method = "processPacket", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/rcon/thread/QueryThreadGs4;sendTo([BLjava/net/DatagramPacket;)V"))
public void impl$basicSendTo(QueryThreadGs4 query, byte[] param0, DatagramPacket datagramPacket) throws IOException {
    final Cause currentCause = Sponge.server().causeStackManager().currentCause();
    final QueryServerEvent.Basic event = SpongeEventFactory.createQueryServerEventBasic(currentCause, (InetSocketAddress) datagramPacket.getSocketAddress(), "SMP", this.worldName, this.serverName, this.maxPlayers, this.serverInterface.getPlayerCount());
    Sponge.eventManager().post(event);
    NetworkDataOutputStream var3 = new NetworkDataOutputStream(1460);
    var3.write(0);
    var3.writeBytes(this.shadow$getIdentBytes(event.address()));
    var3.writeString(event.motd());
    var3.writeString(event.gameType());
    var3.writeString(event.map());
    var3.writeString(Integer.toString(event.playerCount()));
    var3.writeString(Integer.toString(event.maxPlayerCount()));
    var3.writeShort((short) this.serverPort);
    var3.writeString(this.hostIp);
    this.shadow$sendTo(var3.toByteArray(), datagramPacket);
}
Also used : NetworkDataOutputStream(net.minecraft.server.rcon.NetworkDataOutputStream) Cause(org.spongepowered.api.event.Cause) QueryServerEvent(org.spongepowered.api.event.server.query.QueryServerEvent) Redirect(org.spongepowered.asm.mixin.injection.Redirect)

Aggregations

NetworkDataOutputStream (net.minecraft.server.rcon.NetworkDataOutputStream)1 Cause (org.spongepowered.api.event.Cause)1 QueryServerEvent (org.spongepowered.api.event.server.query.QueryServerEvent)1 Redirect (org.spongepowered.asm.mixin.injection.Redirect)1