Status Update #32 - BDL, Teil 9: Land Permissions & BiomeBucket

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      Status Update #32 - BDL, Teil 9: Land Permissions & BiomeBucket



      Hey,

      mal zur Abwechslung wieder als Video. Selbst mit nur einem Take und minimaler Bearbeitung doch schon gut aufwändig. Muss ich mal schauen ob ich das nächste mal nicht lieber wieder schreibe.
      Das Video zeigt zum BiomeBucket jetzt nur den Code bis grundlegend geprüft wurde "Ja, du darfst an diesem Ort das Tool ausführen". Es zeigt nicht wie es zur Ausführung kommt und wie das Ganze umgesetzt ist. Das könnte ich das nächste mal Zeigen wenn es Interesse gibt.

      Im gezeigtem Code zum BiomeBucket versteckt sich übrigens auch noch ein Fehler. Na wer kann ihn finden/erklären? :D

      Kade
      Bitte möglichst alle Fragen im Forum stellen und nicht mir per Privatnachricht.
      Ich Teile meine Zeit aktuell: 2,5 Tage 1.13, 2,5 Tage Arbeit, 1 Tag Kadcon. Eine PN-Antwort kann entsprechend länger dauern.
      Ich finde es echt faszinierend, wie man mit ein paar Textzeilen so viel verändern kann. Da muss man sich ja wie ein Gott fühlen. :D

      Die Idee mit dem Terraforming finde ich klasse. Das erinnert mich etwas an den Mod "Blightfall" bei Tekkit. Dort musste man nur die Pflanzen benutzen, um die Umweltverschmutzung zu beseitigen. Ebenfalls, dass die Schönheit der Oberfläche damit angepasst und wiederhergestellt werden soll klingt sehr spannend.

      Als Laie ist es für mich jetzt umso schwerer, bei den ganzen Hieroglyphen, das alles zu verstehen oder gar den Fehler zu finden.
      Spoiler anzeigen
      Ich tippe auf die letzte Zeile wo "Biome" falsch geschrieben ist und damit nicht mehr richtig ausgelesen werden kann?

      ToolFacade.changeBione(config);


      Mach weiter so und danke für den interessanten Einblick! :thumbup:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dragoshizo“ ()

      ICH BIN HYPED!!
      Mein Forenkram

      MC387:0 [Hilfe] KadLinks
      Alle wichtigen Links für Kadcon an einem Ort

      MC137:0 [Makro] Makro-Sammlung
      Hier findet ihr ein paar Makros, die euch das Spiel etwas erleichtern können

      MC399:0 [Fun] Kadcon Achievements
      Eine Auflistung von vielen verschiedenen Achievements die man auf Kadcon erreichen sollte um den Server "durchzuspielen"

      MC169:0 [Spende] Seelaternenverbrennung
      Hier erfahrt ihr die Hintergründe der Seelaternenverbrennung bei /w 22 auf /s1
      Gespendetes Geld wird natürlich ausschließlich für böse Zwecke eingesetzt

      Dragoshizo schrieb:

      Ich tippe auf die letzte Zeile wo "Biome" falsch geschrieben ist und damit nicht mehr richtig ausgelesen werden kann?

      ToolFacade.changeBione(config);


      Sollte Biome heißen aber führt zu keinem Fehler, da es am Zielort auch "changeBione" heißt.
      Was ich meine ist ein logischer Fehler am Ende im Spiel. Dafür muss man sich ansehen was da für Prüfungen gemacht werden. ?( :agent:

      Kade
      Bitte möglichst alle Fragen im Forum stellen und nicht mir per Privatnachricht.
      Ich Teile meine Zeit aktuell: 2,5 Tage 1.13, 2,5 Tage Arbeit, 1 Tag Kadcon. Eine PN-Antwort kann entsprechend länger dauern.
      Spoiler anzeigen

      Was mich total irritiert : Du programmierst sauber... rückst ein... dokumentierst ein bisschen...
      Aber: beim den if-Abfragen machst du mal mit, mal ohne {} Klammern... Ich bin ja nur in Script und PHP tätig, dort wird das meist auch nicht als Fehler gezeigt. Aber was ist, wenn Java dadurch weiter läuft und nicht aus der Funktion springt? Ich hab mir ja angewöhnt sowas immer mit zu setzen, alleine wegen der Übersicht und der Sicherheit.
      aber wenn du bei dem letzten Teil den du zeigst im Video das UND gegen ein ODER tauschst, weil ja immer beide nicht stimmen müssen...
      Ich würde | | probieren ;P
      Wer Böses von mir spricht, betrete meine GS nicht.
      Denn jeder hat in seinem Leben auf sich selber Acht zu geben!


      @Jaremy2002
      @xXJoeMammmaXx
      Siehe die Zusammenfassung hier: Status Update #25 - BDL, Teil 2: Der neue Plan


      @Eisnebel
      Inkonsistenzen wirst du natürlich immer finden das ist denke ich klar. Allgemein kommt es bei mir immer auf den Teil des Codes an. Speziell bei Permissions/Rechteprüfungen hast du häufig 5-10 solcher Codes untereinander. In dem Fall ist der Tausch zum "return true" nicht sinnvoll, weil du nur bei fehlenden Rechten abspringen willst - wenn das nicht so aufgebaut ist wird es schnell unleserlich.

      Beispielhaft:
      Spoiler anzeigen



      Kommentare dann auch noch Überbleibsel davon bevor der Code dann eingebaut wurde.
      Hier auch gut der Tippfehler "Canel" statt "Cancel" ;)


      An vielen Stellen ist mein Code sogar speziell darauf ausgelegt, dass der Compiler bestimmte Dinge nicht tut. Switch-Statements und Lambdas werden intern teilweise zu HashMaps bzw inner classes. Diese verhindern dann, dass du speziell diese Klasse noch Remote-Debuggen kannst. Aus dem Grund lagere ich diese Dinge häufig in eine extra Datei aus um möglichst viele andere Dateien noch live debuggen zu können. Switch-Statements sind bei mir daher i.d.R. if/else-Schachtelungen, es sei denn die Menge geht über ~20 oder so dann definiere ich dafür eine eigene Klasse.

      Bei den Einzeiler ifs geht es eigentlich immer um direkte Absprünge / Prüfung aller nötigen Vorbedingungen. Dort findet keine Logik statt. Beispiel:


      Kade
      Bilder
      • codbsp1.png

        10,38 kB, 519×284, 446 mal angesehen
      • codbsp2.png

        26,53 kB, 976×528, 442 mal angesehen
      Bitte möglichst alle Fragen im Forum stellen und nicht mir per Privatnachricht.
      Ich Teile meine Zeit aktuell: 2,5 Tage 1.13, 2,5 Tage Arbeit, 1 Tag Kadcon. Eine PN-Antwort kann entsprechend länger dauern.
      Ahh ich verstehe :)

      Das Größte Projekt an dem ich arbeite ist ein kleines, eigenes CMS. Ich lagere auch einiges an Funktionen aus, allerdings gehe ich jede Wette ein, das du mehr Code-Zeilen bearbeiten musst als ich ;D

      Wobei ich ja schon an PHP und Javascript sehen kann, wie unterschiedlich es läuft. Alleine die Reihenfolge der Befehlszeilen ist in einigen Sprachen ja doch ausschlaggebend. (Von Semikolon-Pflicht ganz zu schweigen^^)

      Auf jeden Fall bin ich sehr gespannt, was hier im Thread noch rum kommt von den Leuten die sich ran trauen zum gucken ;D
      lG
      Wer Böses von mir spricht, betrete meine GS nicht.
      Denn jeder hat in seinem Leben auf sich selber Acht zu geben!


      Kademlia schrieb:

      Im gezeigtem Code zum BiomeBucket versteckt sich übrigens auch noch ein Fehler.


      Kademlia schrieb:

      Was ich meine ist ein logischer Fehler am Ende im Spiel. Dafür muss man sich ansehen was da für Prüfungen gemacht werden


      Ich glaube es sind sogar zwei Fehler:

      1.) Beim onPlayerBucketEmptyEvent holst du dir den ItemStack aus der MainHand. Kann man nicht auch Fackeln bspw. aus der Offhand setzen? Ergo könnte man auch den Fischeimer mit der Offhand setzen. Beim PlayerBucketEmptyEvent wird noch ein ItemStack mit übergeben, vielleicht ist das der der benutzt wird?

      2.) Weiter unten in onPlayerBucketEmptyEvent prüfst du die Location des Blocks den du angeklickt hast. Am Ende des Videos sieht man, dass das zu Problemen führen kann. Dort wird an die Seite eines Blockes geklickt und es wird eine Kuh gespawnt. Das erinnert mich an ein Problem was ich vor Jahren mal hatte oder noch habe? Ich wollte einen Block an meiner GS Grenze (zu einer Serverstraße hin) setzen, da ich dazu den Block an der (an der Blockseite) Serverstraße angeschaut habe wurde (wird?) die Aktion abgebrochen. Beim PlayerBucketEmptyEvent wird auch BlockFace mit übergeben das könnte man der Permissionprüfung mitgeben.

      Anderes:
      • Bei /land info hast du einen Tippfehler: "Slpashpotion denied"
      • Wenn der LandHelper (Permissions) schon funktioniert, warum benutzt du dann noch WG?
      • Ich vermeide mittlerweile null als return value (durch Optional ersetzt) ist das sinnvoll? (Oder erzeugt das zu viel Overhead?)
      Grüße Daniel

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „d4n1el89“ ()

      Auch wenn Landschaften schöner sein sollten wenn keine farmen hoch gebaut sind, ist das ganze eher ineffizient dann. Weil massenhaft weite Felder mit weizen oder so will sich auch keiner gern reinziehen, oder ne ewig lange redstone piston Leitung um dann Melonen und Kürbisse halt so zu ernten statt in nen Turm ist auch nicht so toll.

      Und auch wenn das neue Projekt Vorrang haben sollte, es wäre schön wenn kadcon mal auf ne höhere Version umgestellt werden würde.

      Allein schon von 1.14 die neuen Öfen für Erze und essen wären interessant, der Schleifstein der den Amboss ersetzen könnte, der webstuhl für die Banner usw. Es ist langweilig noch am alten Stand zu sein wenn es soviel neue Möglichkeiten gibt mit den neuen Versionen wie das die villager ihren Job wechseln können, schlafen müssen, Betten besitzen müssen und sich ausruhen müssen vom Handeln usw.
      Auch nur ein (wahrscheinlich) Schreibfehler der nichts macht, aber "onItemDespawnEventn" (ToolsListener Zeile 208), Ich denke jedenfalls das 'n' am Ende hat keine Bedeutung und ist falsch. :D
      Um nen wirklichen Fehler zu finden hab ich zu wenig Ahnung von Spigot.

      Mich hat übrigens "boolean is = false;" total verwirrt, bis ich gemerkt hab, dass der boolean "is" heißt und es hier kein Schlüsselwort ist. ?( (C# User)

      //Edit:

      Ovolos schrieb:


      Und auch wenn das neue Projekt Vorrang haben sollte, es wäre schön wenn kadcon mal auf ne höhere Version umgestellt werden würde.

      Klar wäre das schön, aber der Aufwand dafür ist nicht einfach mal einen Nachmittag updaten. Das ist einfach enorm viel, bis alle Plugins kompatibel sind. Und diese Zeit könnte somit nicht für das Projekt genutzt werden.
      Und wenn man einem anderen Job nachgeht, hat man eh schon um einiges weniger Zeit.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „JNS“ ()

      Hey,

      erstmal Danke das du uns wieder ein Update gibst. Trotzdem hab ich für mich und eventuell für ein paar andere einen Standpunkt zu vertreten. Für mich sind BDL und das Mars Projekt absolut nicht interessant, eben diese würden mich dazu bewegen für immer zu verschwinden Vorrausgesetzt das jetzige Kadcon verschwindet oder die Spielerzahl sinkt weiter. Für mich war Kadcon und zwar nur das jetzige Kadcon interessant, irgendwelche anderen eben nicht, da sie nicht das sind, weshalb ich 200 Tage auf Kadcon verbacht habe.

      Nun etwas genauer zu einigen Kritikpunkten:

      -Nur noch eine Pflanzenart pro Chunk & Sonnenlicht-

      1. Um es kurz zu sagen damit trittst du eigentlich so jedem Architekten, welcher viel Wert aufs Bauen legt auf die Füße. Um etwas zu zitieren: "Damit kann man ja nur noch hässlich bauen" - Upscairs - Dazu kommt auch noch der Fakt das viele Architekten auch gerne mal eine Farm untertage Anlegen wollen da diese oft einen besseren Effekt auf die sonst so tristen Höhlenbauten hat. Ein Feld mit nur einer Art von Pflanze ist nunmal leider nicht besonders dekorativ.

      -Sonstiges-

      2. Ich denke vielen ist inzwischen klar geworden das dir andere Projekte Wichtiger geworden sind als Kadcon auf eine neue Version zu bekommen, da sind wir wieder bei dem Punkt das Kadcon eben wegen dieser Verlagerung der Prioritäten immer leerer wird und viele Stammspieler verliert.

      Und so wie es scheint bin ich eben nicht die einzige Person die das wahrnimmt.

      Ovolos schrieb:

      Und auch wenn das neue Projekt Vorrang haben sollte, es wäre schön wenn kadcon mal auf ne höhere Version umgestellt werden würde.


      Mich selbst reizen die neuen Versionen wie die 1.13.2 oder auch die 1.14 mehr. Aus meiner Persönlichen Sicht könnte das viele Spieler aus ihrer Inaktivität zurückholen. Nun da das erste 1.15 Snapshot da ist und viele Server bereits eine höhere Version als Kadcon besitzen reizt es nun nicht mal sehr auf Kadcon oft zu verweilen. Nur hat Kadcon trotz seinem alter ein recht gutes Potenzial, welches nun mal nicht ausgeschöpft werden kann wenn Kadcon auf der aktuellen Version verweilt. [1.13 wurde letztes Jahr released 18. Juli 2018 - ca.2 Jahre 1.12 auf Kadcon]

      - Wenn man schon einen Server aufmacht der eine halbwegs große Community entwickelt sollte man eventuell auch die Primären interessen eben dieser beachten.

      Mit freundlichen Grüßen Drei

      Ovolos schrieb:

      Auch wenn Landschaften schöner sein sollten wenn keine farmen hoch gebaut sind, ist das ganze eher ineffizient dann. Weil massenhaft weite Felder mit weizen oder so will sich auch keiner gern reinziehen, oder ne ewig lange redstone piston Leitung um dann Melonen und Kürbisse halt so zu ernten statt in nen Turm ist auch nicht so toll.

      Und auch wenn das neue Projekt Vorrang haben sollte, es wäre schön wenn kadcon mal auf ne höhere Version umgestellt werden würde.

      Allein schon von 1.14 die neuen Öfen für Erze und essen wären interessant, der Schleifstein der den Amboss ersetzen könnte, der webstuhl für die Banner usw. Es ist langweilig noch am alten Stand zu sein wenn es soviel neue Möglichkeiten gibt mit den neuen Versionen wie das die villager ihren Job wechseln können, schlafen müssen, Betten besitzen müssen und sich ausruhen müssen vom Handeln usw.


      Ich finde die Umsetzung prima! Es ist die einzige Methode, die dazu führen wird, dass Getreide, Melonen, Kürbise, AnimalXP, etc. langfristig einen gewissen Wert halten. Auf Kadcon sind das doch alles nurnoch Abfall bzw. Massenprodukte.
      Naja auch wenn es nen wert dann haben sollte, ich hab nur farm warps, für mich wäre so ne Umsetzung ein Schluss strich, ich hab null Bock nen Shop wie zigdrillionen andere aufzumachen oder ein Casino. Mir macht es Spaß farmen zu bauen, sie zu verbessern. Es interessiert mich nicht nen Shop zu bauen uns farmbot für andere zu spielen und zu befüllen, das ist für mich Arbeit und kein Spaß. Und so ne Umsetzung ist nun al nix für mich
      @d4n1el89
      Beides richtig - danke. Beides nicht was ich meinte ^^

      Im Video überfliege ich kurz das InventoryAtPredicate. Das prüft etwas anderes als was ich auf die schnelle geantwortet habe.


      d4n1el89 schrieb:

      Wenn der LandHelper (Permissions) schon funktioniert, warum benutzt du dann noch WG?
      Ich vermeide mittlerweile null als return value (durch Optional ersetzt) ist das sinnvoll? (Oder erzeugt das zu viel Overhead?)


      WorldGuard: Ich habe dieses Video wirklich direkt bei der Entwicklung aufgenommen. Die Anpassung in der Datei hatte ich einfach noch nicht gemacht. Das Projekt ist teilweise noch auf altem und teilweise auf neuer Codebasis.
      Die Ersetzung habe ich dann beispielhaft gemacht um zu zeigen was so für Veränderungen vorgenommen werden. Diese war natürlich verglichen mit fast allem anderen sehr einfach. Daher auch noch der falsche call zu .getItemInMainHand(). Der Call steht auch auf meiner Liste für "darf nirgendwo im Code verwendet werden". Im Anhang ist wie es überall aussehen sollte am Ende.

      Optional: Bin ich mir nicht sicher. Für ein neues Plugin sicherlich eine Überlegung. Für mich keine Option - die Codebasis ist dafür zu groß und das Arbeiten mit Optional ist auch nicht unbedingt schön. Ich nutze etwas in der Art bei asynchronen Aufgaben aber sonst eigentlich nicht. Bei Performance-Intensiven Dingen dann vielleicht auch zu teuer (Anti Xray). Allgemein würde ich eher @NonNull/@NotNull o.Ä. verstärkt nutzen.




      @DreiFanLP
      Ist im Prinzip auch schon beantwortet in SU BDL 2 und 3
      Status Update #25 - BDL, Teil 2: Der neue Plan
      Status Update #26 - BDL, Teil 3: Kompromisse & erste Ziele

      Und das hier ist quasi das tl;dr davon - wenn ich kein Spaß dran habe ist das Projekt eh vorbei. Entsprechend überwiegt das alle anderen Punkte.

      Ovolos schrieb:

      das ist für mich Arbeit und kein Spaß.




      Kade
      Bilder
      • bsp3.png

        16,6 kB, 760×391, 32 mal angesehen
      Bitte möglichst alle Fragen im Forum stellen und nicht mir per Privatnachricht.
      Ich Teile meine Zeit aktuell: 2,5 Tage 1.13, 2,5 Tage Arbeit, 1 Tag Kadcon. Eine PN-Antwort kann entsprechend länger dauern.