CC-Tweaked/src/main/java/dan200/computercraft/shared/network/server/ComputerActionServerMessage...

61 lines
1.5 KiB
Java

/*
* This file is part of ComputerCraft - http://www.computercraft.info
* Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission.
* Send enquiries to dratcliffe@gmail.com
*/
package dan200.computercraft.shared.network.server;
import dan200.computercraft.shared.computer.core.IContainerComputer;
import dan200.computercraft.shared.computer.core.ServerComputer;
import net.minecraft.network.PacketBuffer;
import javax.annotation.Nonnull;
public class ComputerActionServerMessage extends ComputerServerMessage
{
private final Action action;
public ComputerActionServerMessage( int instanceId, Action action )
{
super( instanceId );
this.action = action;
}
public ComputerActionServerMessage( @Nonnull PacketBuffer buf )
{
super( buf );
action = buf.readEnum( Action.class );
}
@Override
public void toBytes( @Nonnull PacketBuffer buf )
{
super.toBytes( buf );
buf.writeEnum( action );
}
@Override
protected void handle( @Nonnull ServerComputer computer, @Nonnull IContainerComputer container )
{
switch( action )
{
case TURN_ON:
computer.turnOn();
break;
case REBOOT:
computer.reboot();
break;
case SHUTDOWN:
computer.shutdown();
break;
}
}
public enum Action
{
TURN_ON,
SHUTDOWN,
REBOOT
}
}