Minecraft Plugin Job System Blöcke registrieren?
Hey, ich brauche hilfe.
ich will ein Plugin Programmieren das ein Job system ist.
also ich will das wenn es user z.b 30 Mal einen Stein abbaut 1000€ bekommt aber ich will nicht das der spieler denn Block platziert und wieder hin setzt und so Geld verdient wie kann ich denn abgebauten block markieren das er schonmal abgebaut worden ist?
Jede erfahrene antwort hilft
2 Antworten
Du könntest eine Liste mit Blöcken führen, die der Spieler gesetzt hat. (Vielleicht die letzten 100 oder so). Beim Abbauen dann prüfen, ob der Block (bzw. dessen Koordinaten) in der Liste ist.
Jedem Spieler eine Liste von Blöcken (oder deren Koordinaten, weiß grad nicht ob es für Blöcke ne gute Basisklasse gibt) zuordnen.
Ich versteh dein Problem nicht so ganz?
Dein Ernst? Hier bisschen Pseudocode
HashMap<int, ArrayList<Klasse>> playerBlocks = new ...
for (Player player : players){
playerBlocks.put(player.Id, new ArrayList<Klasse>);
}
Dann immer wenn der Spieler nen Block platziert seiner Liste ein Element hinzufügen und ggf. alte raus kicken
Was macht der untenstehende Code? Er tut wenn ein Spieler einen Block patziert diesem Block ein "Tag" adden. mit der Funktion isBlockGenerated(Block) wird nur überprüft ob die liste mit den "Tags" leer ist. So kann man das sehr einfach überprüfen. Das Problem ist nur, wenn der Server neustartet ist diese Liste weg.
Als Plugininstanz musst du die Plugininstanz angeben, musst du einfach nur im Internet schauen. Ich hoffe ich konnte dir helfen!
LG
@EventHandler
public void onPlace(BlockPlaceEvent event) {
event.getBlock().setMetadata("job", new FixedMetadataValue(PLUGININSTANZ, event.getPlayer().getUniqueId().toString()));
}
public static boolean isBlockGenerated(Block block) {
return block.getMetadata("job").isEmpty();
}
okay und wie mache ich das