improve eval
This commit is contained in:
parent
9a4b4ed078
commit
9d85b489bc
4 changed files with 68 additions and 15 deletions
|
@ -0,0 +1,16 @@
|
|||
package land.chipmunk.chayapak.chomens_bot.evalFunctions;
|
||||
|
||||
import land.chipmunk.chayapak.chomens_bot.Bot;
|
||||
|
||||
public class ChatFunction extends EvalFunction {
|
||||
public ChatFunction (Bot bot) {
|
||||
super("chat", bot);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(Object... args) {
|
||||
final String message = (String) args[0];
|
||||
|
||||
bot.chat.send(message);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package land.chipmunk.chayapak.chomens_bot.evalFunctions;
|
||||
|
||||
import land.chipmunk.chayapak.chomens_bot.Bot;
|
||||
|
||||
public class CoreFunction extends EvalFunction {
|
||||
public CoreFunction (Bot bot) {
|
||||
super("core", bot);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(Object... args) {
|
||||
final String command = (String) args[0];
|
||||
|
||||
bot.core.run(command);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package land.chipmunk.chayapak.chomens_bot.evalFunctions;
|
||||
|
||||
import land.chipmunk.chayapak.chomens_bot.Bot;
|
||||
import land.chipmunk.chayapak.chomens_bot.data.EvalOutput;
|
||||
|
||||
public class EvalFunction {
|
||||
public final String name;
|
||||
|
||||
protected final Bot bot;
|
||||
|
||||
public EvalFunction (
|
||||
String name,
|
||||
Bot bot
|
||||
) {
|
||||
this.name = name;
|
||||
this.bot = bot;
|
||||
}
|
||||
|
||||
public void execute (Object ...args) {}
|
||||
}
|
|
@ -4,9 +4,11 @@ import io.socket.client.IO;
|
|||
import io.socket.client.Socket;
|
||||
import land.chipmunk.chayapak.chomens_bot.Bot;
|
||||
import land.chipmunk.chayapak.chomens_bot.data.EvalOutput;
|
||||
import land.chipmunk.chayapak.chomens_bot.evalFunctions.ChatFunction;
|
||||
import land.chipmunk.chayapak.chomens_bot.evalFunctions.CoreFunction;
|
||||
import land.chipmunk.chayapak.chomens_bot.evalFunctions.EvalFunction;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class EvalPlugin {
|
||||
|
@ -20,17 +22,28 @@ public class EvalPlugin {
|
|||
|
||||
private final Map<Integer, CompletableFuture<EvalOutput>> futures = new HashMap<>();
|
||||
|
||||
public final List<EvalFunction> functions = new ArrayList<>();
|
||||
|
||||
public EvalPlugin (Bot bot) {
|
||||
functions.add(new CoreFunction(bot));
|
||||
functions.add(new ChatFunction(bot));
|
||||
|
||||
try {
|
||||
socket = IO.socket(bot.config.eval.address);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
socket.on(Socket.EVENT_CONNECT, (args) -> connected = true);
|
||||
socket.on(Socket.EVENT_CONNECT, (args) -> {
|
||||
connected = true;
|
||||
|
||||
socket.emit("setFunctions", "chat", "core");
|
||||
});
|
||||
socket.on(Socket.EVENT_DISCONNECT, (args) -> connected = false);
|
||||
socket.on(Socket.EVENT_CONNECT_ERROR, (args) -> connected = false);
|
||||
|
||||
for (EvalFunction function : functions) socket.on(BRIDGE_PREFIX + function.name, function::execute);
|
||||
|
||||
socket.on("codeOutput", (args) -> {
|
||||
final int id = (int) args[0];
|
||||
final boolean isError = (boolean) args[1];
|
||||
|
@ -41,18 +54,6 @@ public class EvalPlugin {
|
|||
future.complete(new EvalOutput(isError, output));
|
||||
});
|
||||
|
||||
socket.on(BRIDGE_PREFIX + "chat", (args) -> {
|
||||
final String message = (String) args[0];
|
||||
|
||||
bot.chat.send(message);
|
||||
});
|
||||
|
||||
socket.on(BRIDGE_PREFIX + "core", (args) -> {
|
||||
final String command = (String) args[0];
|
||||
|
||||
bot.core.run(command);
|
||||
});
|
||||
|
||||
socket.connect();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue