1. News
  2. GrieferGames
    1. Netzwerk
    2. Regelwerk
    3. Shop
  3. Forum
    1. Aktuelles
    2. Unerledigte Themen
  4. Community
    1. Mitglieder
      1. Team
      2. Creator
  5. Support
    1. 1.8 Wiki
    2. Cloud Wiki
    3. Ticket-System
    4. FAQ über das Forum
  6. Schnellnavigation
    1. Zum Ticket-System
    2. Scammer melden
    3. Benutzer suchen
    4. Trophäen auflisten
    5. Handelsbereiche
      1. 1.8
      2. Cloud
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • News
  • News-Update
  • Erweiterte Suche
  1. GrieferGames Forum
  2. Support-Bereich
  3. Support: In-Game
  4. Archiv

@DEVs bzgl. duplizieren

  • MorsExInferis
  • 8. Januar 2019 um 18:21
  • Geschlossen

Support- und Community-Themen werden lediglich über unseren Discord-Server abgewickelt, wo ihr uns schneller und unkomplizierter erreicht.
Meldet euch einfach dort, wenn ihr Fragen oder Anliegen habt: https://discord.griefergames.net/

  • MorsExInferis
    Senior Griefer
    Reaktionen
    82
    Punkte
    732
    Beiträge
    63
    • 8. Januar 2019 um 18:21
    • #1

    Nachdem ich mir die API von Minecraft angeschaut habe ist mir eine Idee gekommen wie man das duplizieren der Items einschränken könnte. Dazu bedürftes es allerdings etwas freier Performance. Diese würde man allerdings dadurch gewinnen, dass das professionelle und Ressourcen ziehende Dupen abebben würde.

    Ein ähnliches Verfahren haben wir früher auch bei einem anderen Spiel benutzt um das duplizieren zu verhindern.

    Man müsste ein entsprechendes Plugin schreiben, welches zusätzlich zu den normalen Gegenstandsinformationen eine UUID erzeugt, wenn der Gegenstand auf normalem Weg abgebaut, produziert oder durch das Gamemode-Interface generiert wird. Diese UUID wird zusätzlich abgespeichert in Verbindung mit der UUID des Erzeugers, des augenblicklichen Trägers und des Gegenstandsnamen / -ID. Also müsste auch jedesmal wenn jemand einen Gegenstand aufnimmt, zum Beispiel beim Handel die UUID des Trägers aktualisiert werden. Besser wäre es noch, einfach einen Eintrag hinzu zu fügen. Einen für das "fallen" lassen der positionieren und einen für das aufnehmen.

    Anhand dieser Liste könnte man den Weg eines Items gut nachverfolgen.

    Nun zum Punkt des duplizierens.... Alle anderen Funktionen erzeugen eben keine eigene neue UUID. Ein Duplizierter Gegenstand würde also entweder die gleiche UUID verwenden oder keine besitzen... Findet man dann also im Log mehrere gleiche Events des gleichen Typs mit gleicher ID, zum Beispiel mehrere male ein Gegenstand mit gleicher Gegenstands UUID aufgenommen wird, ohne dass dein Drop-Event dazwischen ist, weiß man, dass es sich um duplizierte Items handeln muss.

    Ja ich weiß, dass diese Schreib- und Lese-Vorgänge Performance kosten, aber ich denke, dass es sich lohnen würde, wenn man es dadurch eindämmt.

    Eine Überprüfung des Logs könnte man ebenfalls automatisieren und muss ja nicht zwingend in Echtzeit passieren, da der Schaden, welcher zum Beispiel über den Zeitraum einer Stunde oder halben Stunde doch recht begrenzt ist.

    Programmierer: Organismus der Koffein in Software verwandelt.

  • Stefthemaster
    Legendary Griefer
    Reaktionen
    2.381
    Punkte
    21.213
    Beiträge
    1.865
    • 9. Januar 2019 um 17:02
    • #2

    Hey,

    es bekommt also jeder Block eine eigene ID?

    Zitat von MorsExInferis

    Ja ich weiß, dass diese Schreib- und Lese-Vorgänge Performance kosten, aber ich denke, dass es sich lohnen würde, wenn man es dadurch eindämmt.

    Eine Überprüfung des Logs könnte man ebenfalls automatisieren und muss ja nicht zwingend in Echtzeit passieren, da der Schaden, welcher zum Beispiel über den Zeitraum einer Stunde oder halben Stunde doch recht begrenzt ist.

    Wenn ja, wegen der Performance - wieviel würde das unbedingt brauchen (ich vermute relativ viel)? - Dann wäre es ja möglich, den Server unspielbar zu machen, indem ich mit meinen Bots viele Items droppe, und so den Server crashe?

    Grüße,

    Liebe Grüße


    Stefthemaster

    No. 1 in the House :kappa:

    Bitte erwähnt mich nicht in Verkaufsthreads, danke! :)

    Forengötter: https://forengoetter.org


    "Die meisten Menschen wollen lieber durch Lob ruiniert als durch Kritik gerettet werden."

    - Amerikanische Redensart

  • MorsExInferis
    Senior Griefer
    Reaktionen
    82
    Punkte
    732
    Beiträge
    63
    • 9. Januar 2019 um 20:31
    • #3

    Ich weiß nicht welche Serverkonfiguration ihr als Hardware habt, aber wenn man diese Informationen nur in eine Cue schreibt, ein extra Prozess welcher auf einem anderen Thread als der Server läuft, diese dann in einen File schreibt ist es überschaubar. Man müsste es eben Multithreading machen, was eigentlich kein Problem ist.

    Wenn ich ein normales Serversetup nehme, dann sind bei der doch recht geringen Datenmenge von 34 Byte bis maximal 196 Byte schätze ich mal grob ohne Probleme 100k pro Sekunde durchaus drin. Und dabei gehe ich noch nichtmal von einer wirklich hohen APC aus.

    Und der Vorteil der Cue ist halt der, dass sie nur etwas Speicher kostet und der sekundäre Thread zum schreiben das was er nicht in Echtzeit schafft dann einfach wenn es ruhiger wird abarbeitet.

    Der Gewinn wenn die Duper merken, dass es nichts mehr bringt überwiegt dann und die Datenmenge welche zu bewältigen ist, nimmt ab.

    Nehmen wir mal grob 300 Spieler zu Topzeiten pro CB plus/minus, kommen wir auf etwa 3500 gleichzeitige Spieler.

    Also bräuchtest du knapp 300 Item/Block Änderungen pro Sekunde pro Spieler um an die Grenze zu kommen.

    Da Minecraft eh recht beschränkt ist, was das Multithreading angeht, läuft mancher Prozessorkern gerne auf Sparflamme der das dann übernehmen könnte.

    Die Übersicht über eine Instanz des MC Servers und die Prozessorauslastung gibt da Aufschluss.

    Ganz extrem könnte man das sogar so auf die Spitze treiben, dass das Plugin die Informationen sogar nur an einen nativen Systemprozess, den man in C++ oder so entwickelt und schon ist man komplett von dem Serverprozess unabhängig. Dann hängt es wirklich nur noch an der Gesamtkonfiguration des physikalischen Servers.

    Programmierer: Organismus der Koffein in Software verwandelt.

  • Bantor 4. August 2020 um 13:19

    Hat das Thema aus dem Forum Allgemeine Minecraft-Anliegen nach Support: In-Game verschoben.
  • System 14. Januar 2021 um 15:30

    Hat das Thema geschlossen.
  • System 14. Januar 2021 um 17:00

    Hat das Thema aus dem Forum Support: In-Game nach Archiv verschoben.

Registrierung

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos über GGAuth und nimm an unserer Community teil!

Benutzerkonto erstellen

Aktuelles

Avatar
GrieferGames #📊┃server-status - 18. Juli 2026 um 17:15
:minecraft: | Minecraft Authentifizierungsserver

Aktuell haben die Authentifizierungsserver von Minecraft leider Unerreichbarkeiten, weshalb man sich nicht richtig mit Server-Netzwerken verbinden kann.

In der Regel sollte es nur einige Minuten dauern, bis das behoben wird.

server Status Notify
​

Heutige Geburtstage

  • Zenn_Laviana

    19. Juli
  • KAICLASHER

    19. Juli
  • SCE_Sunny

    19. Juli 1987 (39)

Tags

  • Items
  • Sicherheit
  • duplizieren
  • UUID
  • API
  • Rezepte
  1. Datenschutzerklärung
  2. Impressum
  3. Team
Community-Software: WoltLab Suite™ 6.0.22