Feljegyzés rendszer egy IRC bot

szavazat
0

Így teszek egy IRC bot, és azt akarom, hogy képes létrehozni egy rendszer a felhasználók számára felszámított jegyzetek használatával „! Note”, és később emlékeztetett a „! Emlékeztetnek”.

Az volt az ötlet egy HashMap, ezt a kódot:

public HashMap notes = new HashMap();

if (message.startsWith(!note )) {
    notes.put(sender.toLowerCase(), message.substring(6));
    sendMessage(channel, Note recorded.);
}
if (message.startsWith(!remind )) {
    String nick = message.substring(8);
    String remind = (String) notes.get(nick.toLowerCase());
    sendMessage(channel, remind);
}

De ez csak akkor engedi egy megjegyzés felhasználónként mivel HashMap nem tartalmaz ismétli.

Mi a jobb, ha a felhasználók tárolni több feljegyzés?

A kérdést 16/06/2015 18:35
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Akkor egyszerűen tárolhatja egy listát a húrok helyett egy húr.

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);
}

akkor használja a meglévő kódot akkor lehet módosítani, mint olyat

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.");
    }
}
Válaszolt 16/06/2015 18:58
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more