add setBotCommand
This commit is contained in:
parent
b7315a1766
commit
812d3f8df1
|
@ -31,9 +31,15 @@ import java.io.OutputStreamWriter;
|
|||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
import java.util.*;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.BinaryOperator;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collector;
|
||||
|
||||
import static java.util.stream.Collector.Characteristics.IDENTITY_FINISH;
|
||||
import static java.util.stream.Collector.Characteristics.UNORDERED;
|
||||
|
||||
public class TelegramAPI implements Runnable {
|
||||
|
||||
|
@ -239,6 +245,47 @@ public class TelegramAPI implements Runnable {
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* is always async
|
||||
* @param cmds cmdname -> description
|
||||
*/
|
||||
public void setBotCommand(Map<String, String> cmds) {
|
||||
//build json obj
|
||||
JSONArray arr = cmds.entrySet().stream().map(e -> new JSONObject().put("command", e.getKey()).put("description", e.getKey())).collect(new Collector<JSONObject, JSONArray, JSONArray>() {
|
||||
@Override
|
||||
public Supplier<JSONArray> supplier() {
|
||||
return JSONArray::new;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BiConsumer<JSONArray, JSONObject> accumulator() {
|
||||
return JSONArray::put;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BinaryOperator<JSONArray> combiner() {
|
||||
return (a,b) -> { b.forEach(a::put); return b; };
|
||||
}
|
||||
|
||||
@Override
|
||||
public Function<JSONArray, JSONArray> finisher() {
|
||||
return a -> a;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Characteristics> characteristics() {
|
||||
Set<Characteristics> c = new HashSet<>();
|
||||
c.add(IDENTITY_FINISH);
|
||||
c.add(UNORDERED);
|
||||
return c;
|
||||
}
|
||||
});
|
||||
|
||||
//commit
|
||||
Task t = new Task("setBotCommand", "commands=" + arr.toString(), null);
|
||||
async.enque(t);
|
||||
}
|
||||
|
||||
public void sendTypedMessage(final String msg, final TUser user, final int seconds) {
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
|
|
|
@ -35,7 +35,7 @@ public class CommandManager {
|
|||
try {
|
||||
if(cmdhand instanceof JSONCommandHandler) {
|
||||
result = ((JSONCommandHandler) cmdhand).onCommand(sender, cmd, args, json);
|
||||
} else if( cmdhand instanceof CommandHandler){
|
||||
} else if( cmdhand instanceof CommandHandler) {
|
||||
result = ((CommandHandler) cmdhand).onCommand(sender, cmd, args);
|
||||
}
|
||||
if(result)
|
||||
|
@ -53,13 +53,14 @@ public class CommandManager {
|
|||
}
|
||||
|
||||
public void registerCommand(ICommandHandler handler) {
|
||||
registerCommand(null, handler);
|
||||
}
|
||||
|
||||
public void registerCommand(String cmd, ICommandHandler handler) {
|
||||
if(handler == null) {
|
||||
throw new NullPointerException("handler is not allowed to be null");
|
||||
}
|
||||
handlerlist.add(handler);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void registerCommand(String cmd, ICommandHandler handler) {
|
||||
registerCommand(handler);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue