mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2024-12-13 19:50:31 +00:00
Merge pull request #362 from KingofGamesYami/ComputerCraft/featurecommand-event
Command Event
This commit is contained in:
parent
c5d99db654
commit
9b2a50cdfc
44
src/main/java/dan200/computercraft/ComputerCommand.java
Normal file
44
src/main/java/dan200/computercraft/ComputerCommand.java
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
package dan200.computercraft;
|
||||||
|
|
||||||
|
import dan200.computercraft.shared.computer.core.ComputerFamily;
|
||||||
|
import dan200.computercraft.shared.computer.core.ServerComputer;
|
||||||
|
import net.minecraft.command.CommandBase;
|
||||||
|
import net.minecraft.command.CommandException;
|
||||||
|
import net.minecraft.command.ICommandSender;
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
|
public class ComputerCommand extends CommandBase {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "computer";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUsage(ICommandSender iCommandSender) {
|
||||||
|
return "computer <id> <value1> [value2]...";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
||||||
|
if( args.length < 2 ){
|
||||||
|
throw new CommandException( "Usage: /computer <id> <value1> [value2]..." );
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
ServerComputer computer = ComputerCraft.serverComputerRegistry.lookup(Integer.valueOf(args[0]));
|
||||||
|
if( computer != null && computer.getFamily() == ComputerFamily.Command ){
|
||||||
|
computer.queueEvent( "computer_command", ArrayUtils.remove( args, 0 ) );
|
||||||
|
}else{
|
||||||
|
throw new CommandException( "Computer #" + args[0] + " is not a Command Computer" );
|
||||||
|
}
|
||||||
|
}catch( NumberFormatException e ){
|
||||||
|
throw new CommandException( "Invalid ID" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRequiredPermissionLevel(){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
@ -400,6 +400,7 @@ public class ComputerCraft
|
|||||||
@Mod.EventHandler
|
@Mod.EventHandler
|
||||||
public void onServerStarting( FMLServerStartingEvent event )
|
public void onServerStarting( FMLServerStartingEvent event )
|
||||||
{
|
{
|
||||||
|
event.registerServerCommand( new ComputerCommand() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Mod.EventHandler
|
@Mod.EventHandler
|
||||||
|
@ -39,6 +39,7 @@ public class ServerComputer extends ServerTerminal
|
|||||||
private World m_world;
|
private World m_world;
|
||||||
private BlockPos m_position;
|
private BlockPos m_position;
|
||||||
|
|
||||||
|
private final ComputerFamily m_family;
|
||||||
private final Computer m_computer;
|
private final Computer m_computer;
|
||||||
private NBTTagCompound m_userData;
|
private NBTTagCompound m_userData;
|
||||||
private boolean m_changed;
|
private boolean m_changed;
|
||||||
@ -54,6 +55,7 @@ public class ServerComputer extends ServerTerminal
|
|||||||
m_world = world;
|
m_world = world;
|
||||||
m_position = null;
|
m_position = null;
|
||||||
|
|
||||||
|
m_family = family;
|
||||||
m_computer = new Computer( this, getTerminal(), computerID );
|
m_computer = new Computer( this, getTerminal(), computerID );
|
||||||
m_computer.setLabel( label );
|
m_computer.setLabel( label );
|
||||||
m_userData = null;
|
m_userData = null;
|
||||||
@ -63,6 +65,10 @@ public class ServerComputer extends ServerTerminal
|
|||||||
m_ticksSincePing = 0;
|
m_ticksSincePing = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ComputerFamily getFamily(){
|
||||||
|
return m_family;
|
||||||
|
}
|
||||||
|
|
||||||
public World getWorld()
|
public World getWorld()
|
||||||
{
|
{
|
||||||
return m_world;
|
return m_world;
|
||||||
|
Loading…
Reference in New Issue
Block a user