Added support for selecting machine on start
And also checking if there's already a running machine And if the given machine is not found Removed screen updating every 5 seconds, now it only checks if the machine is turned off Always reassigning the machine
This commit is contained in:
parent
794ba3e042
commit
4aee453274
4 changed files with 92 additions and 59 deletions
|
@ -1,5 +1,5 @@
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>io.github.NorbiPeti</groupId>
|
<groupId>io.github.NorbiPeti</groupId>
|
||||||
<artifactId>VirtualComputer</artifactId>
|
<artifactId>VirtualComputer</artifactId>
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
<source>1.8</source>
|
<source>1.8</source>
|
||||||
<target>1.8</target>
|
<target>1.8</target>
|
||||||
<compilerArgs>
|
<compilerArgs>
|
||||||
<arg>-g</arg> <!-- TODO: Still warns about this -->
|
<arg>-g</arg> <!-- LocalVariableTable -->
|
||||||
</compilerArgs>
|
</compilerArgs>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
@ -70,7 +70,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.virtualbox</groupId>
|
<groupId>org.virtualbox</groupId>
|
||||||
<artifactId>VirtualBox</artifactId>
|
<artifactId>VirtualBox</artifactId>
|
||||||
<version>6.0</version>
|
<version>6.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bukkit</groupId>
|
<groupId>org.bukkit</groupId>
|
||||||
|
@ -91,14 +91,19 @@
|
||||||
<version>2.1.7</version>
|
<version>2.1.7</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.aparapi</groupId>
|
<groupId>com.aparapi</groupId>
|
||||||
<artifactId>aparapi</artifactId>
|
<artifactId>aparapi</artifactId>
|
||||||
<version>1.10.0</version>
|
<version>1.10.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
<version>1.16.16</version>
|
<version>1.16.16</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency> <!-- javax.annotations.Nullable -->
|
||||||
|
<groupId>com.google.code.findbugs</groupId>
|
||||||
|
<artifactId>jsr305</artifactId>
|
||||||
|
<version>3.0.0</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
|
@ -10,16 +10,19 @@ public class Commands implements CommandExecutor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||||
switch (cmd.getName().toLowerCase()) {
|
if (args.length == 0)
|
||||||
case "computer": {
|
return false;
|
||||||
if (args.length == 0)
|
switch (args[0].toLowerCase()) {
|
||||||
return false;
|
|
||||||
switch (args[0].toLowerCase()) {
|
|
||||||
case "start":
|
case "start":
|
||||||
case "poweron":
|
case "poweron":
|
||||||
case "on":
|
case "on":
|
||||||
case "startup":
|
case "startup":
|
||||||
PluginMain.Instance.Start(sender);
|
int c = getMachineIndex(args);
|
||||||
|
if (c == -1) {
|
||||||
|
sender.sendMessage("§cUsage: /" + label + " start [index]");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
PluginMain.Instance.Start(sender, c);
|
||||||
break;
|
break;
|
||||||
case "stop":
|
case "stop":
|
||||||
case "poweroff":
|
case "poweroff":
|
||||||
|
@ -31,7 +34,12 @@ public class Commands implements CommandExecutor {
|
||||||
case "powerbutton":
|
case "powerbutton":
|
||||||
case "pwrbtn":
|
case "pwrbtn":
|
||||||
case "powerbtn":
|
case "powerbtn":
|
||||||
PluginMain.Instance.PowerButton(sender);
|
c = getMachineIndex(args);
|
||||||
|
if (c == -1) {
|
||||||
|
sender.sendMessage("§cUsage: /" + label + " powerbutton [index]");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
PluginMain.Instance.PowerButton(sender, c);
|
||||||
break;
|
break;
|
||||||
case "reset":
|
case "reset":
|
||||||
case "restart":
|
case "restart":
|
||||||
|
@ -91,46 +99,56 @@ public class Commands implements CommandExecutor {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
switch (args[1].toLowerCase()) {
|
switch (args[1].toLowerCase()) {
|
||||||
case "key":
|
case "key":
|
||||||
case "keyboard":
|
case "keyboard":
|
||||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + sender.getName()
|
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + sender.getName()
|
||||||
+ " [\"\",{\"text\":\" [0]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D0\"}},{\"text\":\" [1]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D1\"}},{\"text\":\" [2]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D2\"}},{\"text\":\" [3]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D3\"}},{\"text\":\" [4]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D4\"}},{\"text\":\" [5]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D5\"}},{\"text\":\" [6]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D6\"}},{\"text\":\" [7]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D7\"}},{\"text\":\" [8]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D8\"}},{\"text\":\" [9]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D9\"}}]");
|
+ " [\"\",{\"text\":\" [0]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D0\"}},{\"text\":\" [1]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D1\"}},{\"text\":\" [2]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D2\"}},{\"text\":\" [3]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D3\"}},{\"text\":\" [4]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D4\"}},{\"text\":\" [5]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D5\"}},{\"text\":\" [6]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D6\"}},{\"text\":\" [7]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D7\"}},{\"text\":\" [8]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D8\"}},{\"text\":\" [9]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D9\"}}]");
|
||||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + sender.getName()
|
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + sender.getName()
|
||||||
+ " [\"\",{\"text\":\" [Tab]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key Tab\"}},{\"text\":\" [Q]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key Q\"}},{\"text\":\" [W]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key W\"}},{\"text\":\" [E]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key E\"}},{\"text\":\" [R]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key R\"}},{\"text\":\" [T]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key T\"}},{\"text\":\" [Y]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key Y\"}},{\"text\":\" [U]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key U\"}},{\"text\":\" [I]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key I\"}},{\"text\":\" [O]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key O\"}},{\"text\":\" [P]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key P\"}}]");
|
+ " [\"\",{\"text\":\" [Tab]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key Tab\"}},{\"text\":\" [Q]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key Q\"}},{\"text\":\" [W]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key W\"}},{\"text\":\" [E]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key E\"}},{\"text\":\" [R]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key R\"}},{\"text\":\" [T]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key T\"}},{\"text\":\" [Y]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key Y\"}},{\"text\":\" [U]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key U\"}},{\"text\":\" [I]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key I\"}},{\"text\":\" [O]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key O\"}},{\"text\":\" [P]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key P\"}}]");
|
||||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + sender.getName()
|
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + sender.getName()
|
||||||
+ " [\"\",{\"text\":\" [CapsLock]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key CapsLock\"}},{\"text\":\" [A]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key A\"}},{\"text\":\" [S]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key S\"}},{\"text\":\" [D]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D\"}},{\"text\":\" [F]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key F\"}},{\"text\":\" [G]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key G\"}},{\"text\":\" [H]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key H\"}},{\"text\":\" [J]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key J\"}},{\"text\":\" [K]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key K\"}},{\"text\":\" [L]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key L\"}},{\"text\":\" [Return]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key Return\"}}]");
|
+ " [\"\",{\"text\":\" [CapsLock]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key CapsLock\"}},{\"text\":\" [A]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key A\"}},{\"text\":\" [S]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key S\"}},{\"text\":\" [D]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key D\"}},{\"text\":\" [F]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key F\"}},{\"text\":\" [G]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key G\"}},{\"text\":\" [H]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key H\"}},{\"text\":\" [J]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key J\"}},{\"text\":\" [K]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key K\"}},{\"text\":\" [L]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key L\"}},{\"text\":\" [Enter]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key Enter\"}}]");
|
||||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + sender.getName()
|
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + sender.getName()
|
||||||
+ " [\"\",{\"text\":\" [Z]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key Z\"}},{\"text\":\" [X]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key X\"}},{\"text\":\" [C]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key C\"}},{\"text\":\" [V]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key V\"}},{\"text\":\" [B]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key B\"}},{\"text\":\" [N]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key N\"}},{\"text\":\" [M]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key M\"}}]");
|
+ " [\"\",{\"text\":\" [Z]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key Z\"}},{\"text\":\" [X]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key X\"}},{\"text\":\" [C]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key C\"}},{\"text\":\" [V]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key V\"}},{\"text\":\" [B]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key B\"}},{\"text\":\" [N]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key N\"}},{\"text\":\" [M]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key M\"}}]");
|
||||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + sender.getName()
|
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + sender.getName()
|
||||||
+ " [\"\",{\"text\":\" [Ctrl]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key ControlLeft\"}},{\"text\":\" [Alt]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key AltLeft\"}},{\"text\":\" [Space]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key Space\"}},{\"text\":\" [AltGr]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key AltRight\"}},{\"text\":\" [Ctrl]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key ControlRight\"}}]");
|
+ " [\"\",{\"text\":\" [Ctrl]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key ControlLeft\"}},{\"text\":\" [Alt]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key AltLeft\"}},{\"text\":\" [Space]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key Space\"}},{\"text\":\" [AltGr]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key AltRight\"}},{\"text\":\" [Ctrl]\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/computer key ControlRight\"}}]");
|
||||||
case "mouse":
|
case "mouse":
|
||||||
if (!(sender instanceof Player)) {
|
if (!MouseLockerPlayerListener.LockedPlayers.containsKey(sender)) {
|
||||||
sender.sendMessage("§cOnly ingame players can use this command.");
|
MouseLockerPlayerListener.LockedPlayers.put((Player) sender, ((Player) sender).getLocation());
|
||||||
return true;
|
sender.sendMessage("§aMouse locked.");
|
||||||
}
|
} else {
|
||||||
if (!MouseLockerPlayerListener.LockedPlayers.containsKey(sender)) {
|
MouseLockerPlayerListener.LockedPlayers.remove(sender);
|
||||||
MouseLockerPlayerListener.LockedPlayers.put((Player) sender, ((Player) sender).getLocation());
|
sender.sendMessage("§bMouse unlocked.");
|
||||||
sender.sendMessage("§aMouse locked.");
|
}
|
||||||
} else {
|
break;
|
||||||
MouseLockerPlayerListener.LockedPlayers.remove(sender);
|
case "mspeed":
|
||||||
sender.sendMessage("§bMouse unlocked.");
|
case "mousespeed":
|
||||||
}
|
if (args.length < 3) {
|
||||||
break;
|
sender.sendMessage("§cUsage: /computer input mspeed <integer>");
|
||||||
case "mspeed":
|
return true;
|
||||||
case "mousespeed":
|
}
|
||||||
if (args.length < 3) {
|
MouseLockerPlayerListener.LockedSpeed = Float.parseFloat(args[2]);
|
||||||
sender.sendMessage("§cUsage: /computer input mspeed <integer>");
|
sender.sendMessage("§aMouse speed set to " + MouseLockerPlayerListener.LockedSpeed);
|
||||||
return true;
|
|
||||||
}
|
|
||||||
MouseLockerPlayerListener.LockedSpeed = Float.parseFloat(args[2]);
|
|
||||||
sender.sendMessage("§aMouse speed set to " + MouseLockerPlayerListener.LockedSpeed);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks the 2nd parameter
|
||||||
|
*
|
||||||
|
* @return The index of the machine or -1 on usage error
|
||||||
|
*/
|
||||||
|
private int getMachineIndex(String[] args) {
|
||||||
|
int c = 0;
|
||||||
|
if (args.length >= 2) {
|
||||||
|
try {
|
||||||
|
c = Integer.parseInt(args[1]);
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
return c;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class GPURenderer extends MapRenderer implements IRenderer {
|
||||||
Color[] cs = (Color[]) field.get(null);
|
Color[] cs = (Color[]) field.get(null);
|
||||||
colors_ = new int[cs.length];
|
colors_ = new int[cs.length];
|
||||||
for (int i = 0; i < colors_.length; i++) {
|
for (int i = 0; i < colors_.length; i++) {
|
||||||
colors_[i] = cs[i].getRGB(); //TODO: BGR or RGB?
|
colors_[i] = cs[i].getRGB();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
kernel = new GPURendererInternal(mapx, mapy, colors_);
|
kernel = new GPURendererInternal(mapx, mapy, colors_);
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class PluginMain extends JavaPlugin {
|
||||||
*/
|
*/
|
||||||
public static ByteBuffer allpixels; // It's set on each change
|
public static ByteBuffer allpixels; // It's set on each change
|
||||||
public static ArrayList<IRenderer> renderers = new ArrayList<>();
|
public static ArrayList<IRenderer> renderers = new ArrayList<>();
|
||||||
/**
|
/*
|
||||||
* Only used if {@link #direct} is true.
|
* Only used if {@link #direct} is true.
|
||||||
*/
|
*/
|
||||||
//public static PXCLib pxc;
|
//public static PXCLib pxc;
|
||||||
|
@ -117,12 +117,19 @@ public class PluginMain extends JavaPlugin {
|
||||||
saveConfig();
|
saveConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(CommandSender sender) {// TODO: Add touchscreen support (#2)
|
public void Start(CommandSender sender, int index) {// TODO: Add touchscreen support (#2)
|
||||||
|
if (session.getState() == SessionState.Locked) {
|
||||||
|
sender.sendMessage("§cThe machine is already running!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
Bukkit.getScheduler().runTaskAsynchronously(this, () -> {
|
Bukkit.getScheduler().runTaskAsynchronously(this, () -> {
|
||||||
|
if (vbox.getMachines().size() <= index) {
|
||||||
|
sendMessage(sender, "§cMachine not found!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
sendMessage(sender, "§eStarting computer...");
|
sendMessage(sender, "§eStarting computer...");
|
||||||
if (machine == null)
|
machine = vbox.getMachines().get(index);
|
||||||
machine = vbox.getMachines().get(0);
|
|
||||||
session.setName("minecraft");
|
session.setName("minecraft");
|
||||||
// machine.launchVMProcess(session, "headless", "").waitForCompletion(10000); - This creates a *process*, we don't want that anymore
|
// machine.launchVMProcess(session, "headless", "").waitForCompletion(10000); - This creates a *process*, we don't want that anymore
|
||||||
machine.lockMachine(session, LockType.VM); // We want the machine inside *our* process <-- Need the VM type to have console access
|
machine.lockMachine(session, LockType.VM); // We want the machine inside *our* process <-- Need the VM type to have console access
|
||||||
|
@ -159,12 +166,15 @@ public class PluginMain extends JavaPlugin {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Right now only checks if the computer has turned off.
|
||||||
|
*/
|
||||||
private void startScreenTask(IConsole console, CommandSender sender) {
|
private void startScreenTask(IConsole console, CommandSender sender) {
|
||||||
if (screenupdatetask == null)
|
if (screenupdatetask == null)
|
||||||
screenupdatetask = Bukkit.getScheduler().runTaskTimerAsynchronously(PluginMain.this, () -> {
|
screenupdatetask = Bukkit.getScheduler().runTaskTimerAsynchronously(PluginMain.this, () -> {
|
||||||
if (session.getState().equals(SessionState.Locked) // Don't run until the machine is running
|
/*if (session.getState().equals(SessionState.Locked) // Don't run until the machine is running
|
||||||
&& console.getState().equals(MachineState.Running))
|
&& console.getState().equals(MachineState.Running))
|
||||||
console.getDisplay().invalidateAndUpdateScreen(0L);
|
console.getDisplay().invalidateAndUpdateScreen(0L);*/
|
||||||
if (session.getState().equals(SessionState.Unlocked) // Stop if the machine stopped fully
|
if (session.getState().equals(SessionState.Unlocked) // Stop if the machine stopped fully
|
||||||
|| console.getState().equals(MachineState.PoweredOff)
|
|| console.getState().equals(MachineState.PoweredOff)
|
||||||
|| console.getState().equals(MachineState.Saved)) {
|
|| console.getState().equals(MachineState.Saved)) {
|
||||||
|
@ -197,13 +207,13 @@ public class PluginMain extends JavaPlugin {
|
||||||
sendMessage(sender, "§eComputer stopped.");
|
sendMessage(sender, "§eComputer stopped.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PowerButton(CommandSender sender) {
|
public void PowerButton(CommandSender sender, int index) {
|
||||||
sendMessage(sender, "§ePressing powerbutton...");
|
sendMessage(sender, "§ePressing powerbutton...");
|
||||||
getServer().getScheduler().runTaskAsynchronously(this, new Runnable() {
|
getServer().getScheduler().runTaskAsynchronously(this, new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if (session.getState() != SessionState.Locked || session.getMachine() == null) {
|
if (session.getState() != SessionState.Locked || session.getMachine() == null) {
|
||||||
Start(sender);
|
Start(sender, index);
|
||||||
} else {
|
} else {
|
||||||
session.getConsole().powerButton();
|
session.getConsole().powerButton();
|
||||||
sendMessage(sender, "§ePowerbutton pressed.");
|
sendMessage(sender, "§ePowerbutton pressed.");
|
||||||
|
|
Loading…
Reference in a new issue