Beiträge von zM4xi

    Du musst jetzt einfach identifizieren das es sich um das richtige Entity handelt damit du nicht alle Entity Interaktionen blockst, Am besten gibst du diesen Armor Stands Custom Names und prüfst ob es sich um einen Armor Stand handelt.

    Hey,


    leider scheinen die Zeilen hier nicht mit denen in deiner IDE übereinzustimmen den Zeile 40 is hier Leer.

    Könntest du bitte bei dir schauen was bei dir in Zeile 40 steht.


    Ansonsten kann ich dir schonmal sagen, Prüfe mal alle in dieser Zeile verwendeten Variablen ob diese einen Wert haben, Der Fehler sagt aus eine Variable hat keinen Wert.

    Hey,


    also zunächstmal achte bitte darauf in welchem Forum du schreibst, das hier ist für Fragen bezüglich der Entwicklung mit Java.

    Für deine Frage wäre wohl Technischer Support ab Besten :D


    Nun zu deinem Problem:

    Ich kenne mich nicht genau mit diesem Exploit aus aber hast du versucht mal über die Konsole alle ArmorStands zu töten /kill @e[type=armor_stand]

    Wenn du ein Backup der Welt hast solltest du einfach das Backup von VOR der Attacke laden.


    Was die Vorbeugung von diesem Exploit betrifft, wirds etwas kniffliger. Ich habe nach einer kurzen Suche kein Plugin gefunden das direkt auf ArmorStand Crasher gerichtet ist, aber in der Theorie solle ein Plugin einfach beim EntitySpawnEvent prüfen ob es ein ArmorStand ist, wenn das der Fall ist einfach canceln. (Keine Garantie)

    Folgende Tabellenstruktur sollte dir hier weiterhelfen.


    uuidplayernamedisableeffects
    ff402e0a-8651-43d1-ae47-c7c56c404e39SimonPlays1
    93691c0d-d311-4c98-ad1c-e7159d86630fTomSpielt0


    Dann einfach ein SELECT Statement machen wie folgt:


    SELECT disavleeffects FROM tablename WHERE uuid = ?


    Tada eine Boolscher Wert aus der Datenbank gezogen :D

    Whut? Was für eine seltsame Art das zu schreiben LOL
    Aber das macht es nur schlimmer xD

    Das Suche Forum ist zur Zitat: "Suche nach Dienstleistungen."
    Und wenn du Interesse für dich wecken willst. Schreib etwas mehr über dich.


    Wer bist du?

    Warum sollten wir gerade dich wählen?

    Was sind deine Kenntnisse?
    Hast du irgendwelche Referenzen?


    Du musst dich in die Lage des Suchenden denken und dann liest er diesen Thread? Da macht sich doch keiner die Mühe dir alles aus der Nase zu ziehen.

    Willkommen im Forum,


    Zunächst musst du den EventHandler / Listener schreiben un ihm sagen was genau den passieren soll wenn dieser getriggert wird.

    Dazu machst du eine neue Klasse nennst diese am besten ähnlich wie das Event das du abfragen willst (optimal, der Übersichtlichkeit wegen) und fügst hinter dem Klassen Namen, eine Art Vererbung, ein,

    implements Listener

    Achte hierbei darauf das du den richtigen Listener importierst. Den hier: org.bukkit.event.Listener


    Wenn du das geschafft hast, fehlt nur noch die Methode die das Event abfängt, plus die Logik hier kann ich dir nicht wirklich helfen weil ich nicht weiß was exakt du da machen willst. Also heißt es einfach ausprobieren :D



    Anschließend musst den EventHandler / Listener registrieren.

    Das Ganze machst du am Besten in deiner Hauptklasse, entweder in einer extra Methode registerEvents() oder einfach im der onEnable / onLoad Methode von Bukkit.


    Das sieht dann wo auch immer du das machst so aus:

    Code
    1. Bukkit.getPluginManager().registerEvents(new InventoryClickListener(), this);


    Nun sollte ein Spieler nicht mehr in der Lage sein mit dem Item zu interagieren.

    Die Entities abspeichern! Und damit du weißt welche Spieler am besten mit den dazugehörigen UUID's


    HashMap<UUID[], Entity> oder HashMap<UUID, Entity> falls das sowieso per Spieler ist!


    Ich habs noch nie ausprobiert aber ich vermute du musst das Entity erst Despawnen und dann erneut Spawnen. Damit sich das beim Client updatet ohne Duplikate zu erzeugen!

    Es kommt ganz drauf an, was das Ganze auslösen soll bzw. wozu du es verwenden willst!


    Ich gehe mal davon aus das du nicht einfach irgendwas im Chat von einem Spieler schreiben möchtest, sondern irgendein Sinn dahinter steckt.

    Du kannst zum Beispiel durch eine "Interactable Message" einen Befehl "vorschlagen" aka. du kannst etwas in die Chatleiste des Spielers schrieben.

    Das muss nicht mal unbedingt ein Befehl sein.


    So kannst du einem Spieler eine Nachricht schicken, welche er dann anklickt und etwas "Vorgeschlagen" bekommt.

    Code
    1. Player player = null;
    2. TextComponent component = new TextComponent("*Click Me*");
    3. component.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "DAS HIER WIRD IN DIE CHATLEISTE KOPIERT!"));
    4. player.spigot().sendMessage(component);


    Sollte ich nicht den Verwendungszweck erraten haben, beschreibe doch bitte etwas genauer was du vorhast.

    Hier mal noch ein Code Beispiel wie man das in etwa machen würde.

    Dazu noch die etwas fortgeschrittenere Version mit Lambda / Java 11

    Auf dem Discord sind mehrere Moderatoren Online gerade eben ich war selbst mal Mod bei Tarek und du musst als Mod fähig sein Support für CloudNet zu leisten! Frag einfach die Tarek antwortet auf PNs oder Direkt Nachrichten nicht weil er halt 500 am Tag bekommt auf dem Discord sind schließlich über 2k Leute :D

    Also zunächst bist du hier irgendwie falsch, das hier ist ein Entwickler Forum und kein Plugin Support Forum dafür empfehle ich entweder minecraft-server.eu ODER den CloudNet Discord ODER die Spigot Discussion Page


    Naja zu deinem Permission Problem hast du das CloudNet Permission System deaktiviert? Das wird dir sonst immer über deine Rechte drüberbügeln. Dafür ist es schließlich da! Warum der Befehl nicht geht kann ich dir nicht sagen müsstest du den Dytanic fragen

    Für den Fall das du dich für Docker entscheidest, hier mal die Seite die erklärt was Volumes sind, wie du sie einrichtest, etc.
    https://docs.docker.com/storage/volumes/


    Bei Docker heißt das Ganze "Shared File Storage" dabei musst du aber daran denken das dann auf jedem Server diese Dateien exakt gleich wären!

    Außerdem stellt sich die Frage, was würde passieren wenn man z.B. eine Hub Welt dort reinpackt kann der Server das handeln das mehrere Instantzen gleichzeitig Spieler Metadaten da rein schreiben?

    Dass müsste man einfach mal ausprobieren.


    PS: Einige Dateien wären vermutlich am Besten in einem Read-Only Volume aufgehoben z.B. Configs die nicht weiter bearbeitet werden müssen und für alle Server bzw eine Gruppe von Servern gleich sind.