为IRC bot创建一个笔记系统

时间:2015-06-16 19:35:27

标签: java

所以我正在制作一个IRC机器人,我希望能够创建一个系统供用户使用“!note”输入注释,然后使用“!remind”进行提醒。

我有一个HashMap的想法,使用这段代码:

varB

但是这样每个用户只允许一个音符,因为HashMap不包含重复项。

让用户存储多个便条有什么好处?

1 个答案:

答案 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.");
    }
}