From 9dc407180d40f98cf40478494fdc2621d9720880 Mon Sep 17 00:00:00 2001 From: mrbesen Date: Wed, 2 Dec 2020 19:57:37 +0100 Subject: [PATCH] should fix #2 --- .../java/de/mrbesen/telegram/TelegramAPI.java | 27 ++++++++++--------- .../telegram/commands/FeedbackCommand.java | 5 +--- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/main/java/de/mrbesen/telegram/TelegramAPI.java b/src/main/java/de/mrbesen/telegram/TelegramAPI.java index c5f45a5..75a9b44 100644 --- a/src/main/java/de/mrbesen/telegram/TelegramAPI.java +++ b/src/main/java/de/mrbesen/telegram/TelegramAPI.java @@ -63,7 +63,7 @@ public class TelegramAPI implements Runnable { protected int fetchedUpdates = 0; protected long start = 0; - private LinkedList users = new LinkedList<>(); + private Map users = new TreeMap<>(); @Setter private List admins = new LinkedList<>(); //required for feedback private CommandManager cmdmgr = new CommandManager(this); @@ -435,23 +435,26 @@ public class TelegramAPI implements Runnable { } public TUser getUser(String name) { - for(TUser us : users) { + for(TUser us : users.values()) { if(us.getName().equals(name)) return us; } return null; } - public TUser getUser(int id) { - for(TUser us : users) { - if(us.getID() == id) - return us; - } - TUser u = new TUser(id, this); - users.add(u); + public TUser getUser(long id, boolean createIfNotExitsts) { + TUser u = users.get(id); + if(u != null || !createIfNotExitsts) + return u; + u = new TUser(id, this); + users.put(id, u); return u; } + public TUser getUser(long id) { + return getUser(id, true); + } + /** * gets a user by id from the known user lists, * if no user found, it creates a new User and adds it to the list. @@ -459,12 +462,12 @@ public class TelegramAPI implements Runnable { * @return */ public TUser getUser(JSONObject json) { - int id = json.getInt("id"); - TUser user = getUser(id); + long id = json.getLong("id"); + TUser user = getUser(id, false); if(user != null) return user; user = new TUser(json, this); - users.add(user); + users.put(id, user); return user; } diff --git a/src/main/java/de/mrbesen/telegram/commands/FeedbackCommand.java b/src/main/java/de/mrbesen/telegram/commands/FeedbackCommand.java index c985fb5..d16b95f 100644 --- a/src/main/java/de/mrbesen/telegram/commands/FeedbackCommand.java +++ b/src/main/java/de/mrbesen/telegram/commands/FeedbackCommand.java @@ -16,7 +16,7 @@ import java.util.TreeMap; public class FeedbackCommand implements JSONCommandHandler { - protected final TInlineKeyboardMarkup cancelMarkup = new TInlineKeyboardMarkup(1); + protected final TInlineKeyboardMarkup cancelMarkup = TInlineKeyboardMarkup.makeSingleButton("❌ cancel", CANCELFEEDBACK); protected final Map awaitingFeedback = new TreeMap<>(); //maps users chat id -> message that said "please send feedback" TODO: make persistent? protected final Map awnser = new TreeMap<>(); // chatid -> [chatid, messageid] to awnser to; next message from key will be fwd to value[0] and reply to value[1] protected final TelegramAPI api; @@ -27,9 +27,6 @@ public class FeedbackCommand implements JSONCommandHandler { public FeedbackCommand(TelegramAPI api, List admins) { this.api = api; this.admins = (admins == null ? new LinkedList<>() : admins); - - //build markup - cancelMarkup.addCallbackButton("❌ cancel", CANCELFEEDBACK, 1); } @Override