package moe.ymc.acron.cmd; import io.netty.channel.Channel; import moe.ymc.acron.s2c.response.EventCmdOut; import moe.ymc.acron.serialization.Serializer; import net.minecraft.server.command.CommandOutput; import net.minecraft.text.Text; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; import java.util.UUID; public class CmdOut implements CommandOutput { private static final Logger LOGGER = LogManager.getLogger(); private final @NotNull Channel channel; private final int id; private final boolean display; public CmdOut(@NotNull Channel channel, int id, boolean display) { this.channel = channel; this.id = id; this.display = display; } @Override public void sendSystemMessage(Text message, UUID sender) { LOGGER.debug("sendSystemMessage[{}]: {}", id, message.getString()); channel.writeAndFlush( Serializer.serialize(new EventCmdOut(id, sender, message.getString())) ); } @Override public boolean shouldReceiveFeedback() { return true; } @Override public boolean shouldTrackOutput() { return true; } @Override public boolean shouldBroadcastConsoleToOps() { return display; } }