• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spieler richtig zu einer WorldGuard region hinzufügen

TobiasLP

Minecrafter
Mitglied seit
Mrz 26, 2016
Beiträge
17
Bewertungen
3
Alter
17
Minecraft
TobiasLP
#1
Guten Morgen,

ich habe zurzeit ein Problem mit meinem Plugin. Es funktioniert so wie SimpleRegionMarket, aber eben für die neuen Versionen. Jetzt zum Problem:
Wenn ein Spieler das Grundstück kauft oder mietet, soll der Spieler als GS(Grundstück)-Owner oder -Member eingetragen werden.
Foto1
So sollte es aussehen!

Jedoch wird dort nur die UUID eingetragen:
Foto2

Wie kann ich das beheben? Der Code für das hinzufügen:

[JUSTIFY]
ProtectedRegion wgregion = Main.wg.getRegionManager(loc.getWorld()).getRegion(region);
wgregion.getMembers().clear();
DefaultDomain domain = wgregion.getOwners();
domain.removeAll();
domain.addPlayer(kaufer.getUniqueId());
wgregion.setOwners(domain);
[/JUSTIFY]

Liegt es an meinem Plugin? Wenn ja wie kann ich es ändern?:)
Das Problem ist, dass ich es auch veröffentlicht habe und die Spieler wollen ja ein "richtig funktionierendes" Plugin und nicht nur so einen driss!:(

Ich wünsche euch einen schönen "Tag der deutschen Einheit" und freue mich über Antworten!;)
TobiasLP
 

stevebruder

Redstoneengineer
Mitglied seit
Sep 29, 2016
Beiträge
45
Bewertungen
16
Minecraft
SteveBruder
#2
Wo ist da jetzt das Problem, dass nur die UUID des selben Spielers angezeigt wird?
 

TobiasLP

Minecrafter
Mitglied seit
Mrz 26, 2016
Beiträge
17
Bewertungen
3
Alter
17
Minecraft
TobiasLP
#3
Danke für die Antwort,
mir geht es darum, dass ein Admin den Spieler auch von dem GS enteignen kann, ohne die UUID abzutippen. Außerdem kann man jetzt nicht so schnell schauen, wem das Grundstück gehört.
Vielen Dank und einen schönen "Tag der deutschen Einheit"!
TobiasLP
 

MrSpock78

Minecrafter
Mitglied seit
Feb 11, 2017
Beiträge
17
Bewertungen
5
Minecraft
MrSpock78
#4
Das ist normal bei Worldguard. Wenn sich der Spieler reloggt sollte dann der Name drin stehen.
 

TobiasLP

Minecrafter
Mitglied seit
Mrz 26, 2016
Beiträge
17
Bewertungen
3
Alter
17
Minecraft
TobiasLP
#5
Nein das war bei mir nicht der Fall. Wie kann ich das denn beheben?
 

Tobi0101

Minecrafter
Mitglied seit
Dez 20, 2017
Beiträge
2
Alter
34
#6
Auch wenn dieses Thema schon älter ist, ich stand vor dem selben Problem. Vielleicht hilft es jemanden zukünftig.

Worldguard hat einen Usercache /plugins/WorldGuard/chache/profiles.sqlite
Darin speichert WG die UUID und den dazugehörigen Namen. WG scheint diese aber nur in größeren Zeitabständen zu Aktualisieren so das WG nicht immer gleich die User erkennt.

gelöst habe ich das jetzt vielleicht etwas unschön.
ich habe in meinem Plugin einen JoinListener geschrieben welcher eben die profiles.sqlite anspricht und die Tabelle uuid_cache auf den neuen Stand bringt! Kurz um ich las mein Plugin die Daten dort speichern!
Bis jetzt konnte ich keine Fehler bemerken und WG motzt auch noch nicht rum.
 

TobiasLP

Minecrafter
Mitglied seit
Mrz 26, 2016
Beiträge
17
Bewertungen
3
Alter
17
Minecraft
TobiasLP
#7
Hi,

vielen Dank für deine Antwort! Den Usercache von WorldGuard könnte man doch auch durch /Wg profile manuell auslösen. Oder macht es etwas anderes?

Ich werde deinen Lösungsvorschlag mal ausprobieren!:) Vielen Dank!
 

Tobi0101

Minecrafter
Mitglied seit
Dez 20, 2017
Beiträge
2
Alter
34
#8
Hallo Tobias,

/wg profile gehört zu den Troubleshooting Befehlen! Siehe diesen Link: https://worldguard.enginehub.org/en/latest/commands/
Ich habe nie raus gefunden, wie man den Usercache anders anschupsen könnte. Hab mich, nach meiner Lösung, aber auch nicht mehr weiter damit beschäftigt. Um das mal ganz ehrlich zu sagen.
WG Meldet aber auch bis heute keine Fehler deswegen.

Zu beachten ist das SQL-Lite etwas anders zu handhaben ist als MySQL. Hier mal der Ausschnitt wie ich die neuen User in den Usercache bringe:
Java:
PreparedStatement ps;
ps = SQLLite.getConnection().prepareStatement("INSERT OR IGNORE INTO uuid_cache "
                                            + "(name, uuid) VALUES (?, ?)");
ps.setString(1, p.getName());
ps.setString(2, p.getUniqueId().toString());
ps.executeUpdate();
und hier wie ich einen vorhandenen User ein Update verpasse:
Java:
PreparedStatement ps1;
ps1 = SQLLite.getConnection().prepareStatement("UPDATE uuid_cache SET name = ? WHERE uuid = ?");
ps1.setString(1, p.getName().toString());
ps1.setString(2, p.getUniqueId().toString());
ps1.executeUpdate();
Dies erledige ich alles im PlayerJoinEvent direkt in der Main.class so ist dann auch immer der Aktuelle Name zur UUID vorhanden.

LG Tobi
 
Allgemein
Help Benutzer
    CowBot CowBot: Swissu has left the room.
    Oben