所以我正在制作一个IRC机器人,我希望能够创建一个系统供用户使用“!note”输入注释,然后使用“!remind”进行提醒。
我有一个HashMap的想法,使用这段代码:
varB
但是这样每个用户只允许一个音符,因为HashMap不包含重复项。
让用户存储多个便条有什么好处?
答案 0 :(得分:0)
您可以简单地存储字符串列表而不是单个字符串。
public HashMap<String, List<String>> userNotesStore = new HashMap<String, List<String>>();
/**
* Adds a note to the users list of notes.
* @param username
* @param note
*/
private void addNote(String username, String note) {
List<String> notes = userNotesStore.get(username);
if(notes == null) {
notes = new ArrayList<String>();
userNotesStore.put(username, notes);
}
notes.add(note);
}
然后使用现有代码,您可以将其修改为
if (message.startsWith("!note ")) {
addNote(sender.toLowerCase(), message.substring(6));
sendMessage(channel, "Note recorded.");
}
if (message.startsWith("!remind ")) {
String nick = message.substring(8);
List<String> notes = userNotesStore.get(nick);
if(notes != null) {
// send all notes to the user.
for(String note : notes) {
sendMessage(channel, note);
}
} else {
// send no notes message?
sendMessage(channel, "*You have no notes recorded.");
}
}