hallo ich bin dabei ein party plugin zu machen
mein problem ist dass ich nicht weiß wie man den befehl /party accept name macht. an sich ist der befehl einfach aber wie holt man alle spieler raus die den jeweiligen Spieler eingeladen haben? also wenn mehrere spieler mich in party einladen sodass ich selbst entscheiden kann in welcher party gehen will.
mit einer hashmap geht das nicht da ich immer neu zu dem neusten Spieler der einläd putte..
weiß einer wie das geht bitte![]()
Code:
private Map<String, List<String>> partyInvites = new HashMap<>();
private List<String> getInvites( String invited ) {
return partyInvites.computeIfAbsent( invited, new Function<String, List<String>>() {
@Override
public List<String> apply( String argInvited ) {
return new ArrayList<String>();
}
});
}
public void addInvite( String inviter, String invited ) {
List<String> openInvites = getInvites( invited );
openInvites.add( inviter );
}
public boolean hasInvite( String invited, String inviter ) {
List<String> openInvites = getInvites( invited );
return openInvites.contains( inviter );
}
public void removeInvite( String invited, String inviter ) {
partyInvites.remove( invited );
}
Einfach wenn ein /party add <name> kommt addInvite(commandsender, name). Bei accept ebenso. Du musst einfach mit hasInvite prüfen und beim accepten des Invites removeInvite aufrufen.