69 lines
2.5 KiB
Java
69 lines
2.5 KiB
Java
package xyz.etztech.commandlistener;
|
|
|
|
import org.bukkit.Bukkit;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.InputStreamReader;
|
|
import java.net.InetAddress;
|
|
import java.net.ServerSocket;
|
|
import java.net.Socket;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
public class CommandListenerThread extends Thread {
|
|
private boolean running = true;
|
|
|
|
private CommandListener plugin;
|
|
|
|
public CommandListenerThread(CommandListener plugin) {this.plugin = plugin;}
|
|
|
|
public boolean getRunning() {
|
|
return running;
|
|
}
|
|
|
|
public void setRunning(boolean running) {
|
|
this.running = running;
|
|
}
|
|
|
|
|
|
public void run() {
|
|
List<String> commands = this.plugin.getConfig().getStringList("commands");
|
|
try {
|
|
ServerSocket cmdSock = new ServerSocket(this.plugin.getConfig().getInt("port"), 0, InetAddress.getByName(null));
|
|
while (getRunning()) {
|
|
Socket data = cmdSock.accept();
|
|
BufferedReader myInput = new BufferedReader(new InputStreamReader(data.getInputStream()));
|
|
|
|
String buf = myInput.readLine();
|
|
|
|
if (buf != null) {
|
|
String[] input = buf.split(" ");
|
|
String base = input[0];
|
|
ArrayList<String> args = new ArrayList<>();
|
|
if (input.length > 1) {
|
|
args = new ArrayList<>(Arrays.asList(buf.split(" ")));
|
|
args.remove(0);
|
|
}
|
|
if (this.plugin.getConfig().getBoolean("verbose")) {
|
|
Bukkit.getConsoleSender().sendMessage("Received input '" + buf + "'");
|
|
Bukkit.getConsoleSender().sendMessage("Base Command '" + base + "'");
|
|
Bukkit.getConsoleSender().sendMessage("Arguments '" + args.toString() + "'");
|
|
}
|
|
if (commands.contains(base)) {
|
|
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), buf);
|
|
} else if (this.plugin.getConfig().getBoolean("verbose")){
|
|
Bukkit.getConsoleSender().sendMessage("Input not recognized, ignoring.");
|
|
}
|
|
}
|
|
}
|
|
Bukkit.getConsoleSender().sendMessage("Closing CommandListener on Port " + this.plugin.getConfig().get("port"));
|
|
cmdSock.close();
|
|
} catch (Exception ex) {
|
|
Bukkit.getConsoleSender().sendMessage("Error: " + ex.getMessage());
|
|
}
|
|
}
|
|
|
|
|
|
}
|