Minecraft Plugin Job System Blöcke registrieren?

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.

timooso 
Fragesteller
 21.08.2021, 00:32

okay und wie mache ich das

0
codinghelp  21.08.2021, 00:33
@timooso

Ja programmieren musst du es schon selbst :)

Woran hängts denn genau?

0
codinghelp  21.08.2021, 00:36
@timooso

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?

0
codinghelp  21.08.2021, 00:42
@timooso

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

0
timooso 
Fragesteller
 21.08.2021, 00:42
@codinghelp

okay dankeschön

Noch einen Schönen Abend

0

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