Beiträge von mindw0rm

    Bei Survival und Skyblock ist ein neues Plugin installiert, welches das Farmen von Pflanzen erleichtert:


    • Farmland kann nicht mehr zertrampelt werden
    • viele Pflanzen können mit Rechtsklick direkt ins Inventar geerntet werden - keine Drops mehr, die ins Off fallen können!
      Falls Samen für die Pflanze vorhanden sind (wobei das gerade geerntete beachtet wird) wird auch direkt wieder angepflanzt.
      Sollte die Pflanze noch nicht voll ausgewachsen sein, so passiert nichts.
      Man darf sich dabei allerdings nicht ducken, in dem Fall passiert nichts (bzw. das, was normalerweise passieren würde wenn man mit rechts klickt, d.h. der Gegenstand in der Hand wird gesetzt, falls das möglich ist).
      Dies funktioniert für
      • Weizen, Karotten, Kartoffeln, rote Beete, Kakao, Netherwarzen und Choruspflanzen: werden ins Inventar geerntet und neu gepflanzt
        Choruspflanzen sind insofern speziell, als sie auch dann geerntet werden können, falls sie noch nicht voll ausgewachsen sind (d.h. dass es noch aktive Blüten gibt).
      • Melonen, Kürbisse und Süßbeeren: werden ins Inventar geerntet, neu pflanzen ist nicht nötig
      • Zuckerrohr, Kakteen, Bambus und Seetang: werden bis auf das unterste geerntet
      • Pilze, Blumen und Seerosenblätter: werden nur geerntet und nicht neu gepflanzt
    • Farmen kann mit Hilfe von Trichtern automatisiert werden:
      • der Trichter muss sich unterhalb des Blockes befinden, auf dem die Pflanze wächst (bzw. genauer: der Trichter muss zwei unter der Basis der Pflanze sein. Bei Kakao könnte auch Luft dazwischen sein - oder ein anderer Trichter, so dass zwei Kakao übereinander automatisch geerntet werden können).
      • das Ernten geschieht, dann wenn die Pflanze ausgewachsen ist - dies gilt hier auch für Choruspflanzen.
      • wie beim manuellen Farmen mit Rechtsklick wird falls möglich neu angepflanzt.
      • die Ernte landet im Trichter und wird dort normal behandelt, d.h. wenn der Trichter an eine Kiste oder einen anderen Trichter angeschlossen ist, so wird sie dorthin transportiert.
      • Ist der Trichter zu voll, um die gesamte Ernte aufzunehmen, dann geschieht nichts - bis der Trichter wieder frei ist

    Man sollte nur in der Lage sein zu ernten, wenn man den Block auch normal abbauen dürfte.

    Sollte irgendetwas nicht wie beschrieben funktionieren, dann bitte an mich oder in #bug-report🐞 melden.


    Happy farming! :)

    Neue Version 0.2.9.

    - unter Verschiedenes kann man jetzt Alias setzen und löschen. Falls jemand bessere Symbole dafür weiß, bitte mir zeigen ;)

    - alle Menüs sind jetzt gleich groß, so dass der Zurück-/Schließen-Button immer an derselben Stelle ist.

    - läuft unter 1.15

    Wie ihr oben sehen könnt gibt es auch Gutscheine für einen Spielerkopf. Deren Beschreibung sagt, dass sie bei einem Admin einzulösen sind.


    Das ist allerdings veraltet! Ihr könnt eure Gutscheine jetzt auch selbst einlösen - und zwar mit Hilfe des Befehls /skull.

    Normalerweise kann dieser Befehl nur von Admins ausgeführt werden, mit Hilfe eines Gutscheins geht das aber auch für euch!

    Dazu muss der Gutschein in der (Haupt-)Hand gehalten werden.


    Die Basisversion der Befehls lautet /skull <spezifikation>.

    <spezifikation> muss dabei eines der folgenden sein:

    • Name eines existierenden Minecraft-Spielers. Dieser muss nicht bei uns auf dem Server mitspielen. Wenn ein ungültiger Name angegeben wird bekommt man Steve (oder manchmal Alex?). Ansonsten bekommt man den Kopf der aktuellen Skin des Spielers.
      Dies war früher fehlerbehaftet, so dass auf diese Art erzeugte Köpfe ihren Skin verloren haben; dieser Fehler wurde inzwischen aber behoben. Es ist also unbedenktlich, einen Spielernamen zu verwenden, vorausgesetzt, es gibt einen, der den gewünschten Kopf hat ;)
    • Code für eine Textur. Dies ist der Skin-spezifische Teil der URL (=Internet-Adresse) auf dem Minecraft-Server. Damit kann man auch Köpfe bekommen, die aktuell kein Spieler verwendet. Es gibt dafür Nachschlage-Kataloge, ich verwende https://minecraft-heads.com/.
      Den Code findet man auf der Einzelseite ganz unten, bei "Other". -> "Minecraft-URL".
      Siehe z.B. https://minecraft-heads.com/cu…ads/monsters/33412-hydra: der Code wäre b6a77689a73f39cd9c5f56c8e002ed7c76ea4a905c56a767adfd83cb2ea1f2c4.
      Dies ist meiner Meinung nach der beste Weg, um Köpfe zu erzeugen (außer Spielernamen, wenn es einen passenden Spieler gibt).
    • Es würde auch das gehen, was bei "Other" -> "Value" steht (tatsächlich ist das die komplette URL, kodiert mit einem Verfahren namens Base64). Hat den Nachteil, dass es deutlich länger ist, unter Umständen zu lang für die Chatkonsole.



    Man kann aber auch dem Kopf einen anderen Namen oder sogar eine Beschreibung geben!


    Der Name kommt einfach direkt hinter <spezifikation>. Wenn der Name ein Leerzeichen enthalten soll, dann muss er in doppelten Anführungszeichen stehen, also z.B.

    /skull b6a77689a73f39cd9c5f56c8e002ed7c76ea4a905c56a767adfd83cb2ea1f2c4 "einer der Köpfe der Hydra"

    eine Beschreibung kommt hinter dem Namen. Hier sind keine Anführungszeichen nötig, alles was danach kommt ist Beschreibung. Wenn es zu lang ist werden Zeilenumbrüche gemacht. Man kann einen Zeilenumbruch auch erzwingen, indem man || schreibt (dieser Strich ist auf der Taste links neben dem Y, wenn man Alt Gr gedrückt hält).
    z.B:

    /skull b6a77689a73f39cd9c5f56c8e002ed7c76ea4a905c56a767adfd83cb2ea1f2c4 "einer der Köpfe der Hydra" Den hab ich selbst abgeschlagen, war gar nicht mal schwer!||Das könnte sogar mein Hamster, mit einer Pfote und verbundenen Augen!!!!1elf!


    Man kann sogar sowohl in Beschreibung als auch im Namen Farbcodes verwenden. Dazu muss man einfach an die entsprechende Stelle &x& schreiben, wobei x der entsprechende Code ist, siehe https://minecraft.tools/en/color-code.php (ohne das §).

    Z.B.

    /skull b6a77689a73f39cd9c5f56c8e002ed7c76ea4a905c56a767adfd83cb2ea1f2c4 "&4&einer der Köpfe der &2&&l&Hydra"

    Da wäre alles außer "Hydra" dunkelrot, und "Hydra " wäre dunkelgrün und fett.


    Der Gutschein verschwindet natürlich, wenn man ihn benutzt.



    Und wenn euch das zu kompliziert ist, dann gebt den Gutschein einfach einem Admin und sagt ihm, was ihr wollt ;)

    Jetzt sind in allen Kisten mindestens 5 Sachen drin; ich denke dabei belasse ich es (wenn mich nicht morgen doch noch die Lust bekommt, irgendwas zu verstecken):

    There are 3467 items of 79 types in 81 containers on this plot.

    - 1 Anglerglück (FISHING_ROD)

    - 2 Bolzenschmeißer (CROSSBOW)

    - 52 CitroLimo™ (EXPERIENCE_BOTTLE)

    - 58 Gutschein für einen Spielerkopf deiner Wahl (PAPER)

    - 224 Hühnerbeine (COOKED_CHICKEN)

    - 416 McChocos (COOKIE)

    - 1 Panzer des Stachelkäfers (ELYTRA)

    - 208 Pommes zum Selberschnipseln (BAKED_POTATO)

    - 256 Rinderwahn (COOKED_BEEF)

    - 304 Schweinegrippe (COOKED_PORKCHOP)

    - 1 Schwert aus Katzengold (GOLDEN_SWORD)

    - 45 TastyCola™ (POTION)

    - 6 (BAT_SPAWN_EGG)

    - 320 (BEDROCK)

    - 6 (BLAST_FURNACE)

    - 128 (BLUE_ICE)

    - 1 (BLUE_SHULKER_BOX)

    - 13 (CARTOGRAPHY_TABLE)

    - 11 (CAT_SPAWN_EGG)

    - 6 (CHICKEN_SPAWN_EGG)

    - 6 (COBWEB)

    - 6 (COD_SPAWN_EGG)

    - 10 (COW_SPAWN_EGG)

    - 6 (CREEPER_BANNER_PATTERN)

    - 3 (CROSSBOW)

    - 96 (DIAMOND)

    - 1 (DIAMOND_AXE)

    - 40 (DIAMOND_BLOCK)

    - 3 (DIAMOND_BOOTS)

    - 1 (DIAMOND_CHESTPLATE)

    - 8 (DIAMOND_HELMET)

    - 1 (DIAMOND_HOE)

    - 1 (DIAMOND_LEGGINGS)

    - 56 (DIAMOND_ORE)

    - 1 (DIAMOND_PICKAXE)

    - 1 (DIAMOND_SHOVEL)

    - 2 (DIAMOND_SWORD)

    - 11 (DOLPHIN_SPAWN_EGG)

    - 6 (DONKEY_SPAWN_EGG)

    - 24 (DRAGON_BREATH)

    - 9 (DRAGON_HEAD)

    - 2 (ELYTRA)

    - 96 (EMERALD)

    - 9 (ENCHANTED_BOOK)

    - 11 (FLETCHING_TABLE)

    - 3 (FLOWER_BANNER_PATTERN)

    - 14 (FOX_SPAWN_EGG)

    - 128 (GLISTERING_MELON_SLICE)

    - 7 (GLOBE_BANNER_PATTERN)

    - 64 (GOLD_INGOT)

    - 1 (GREEN_SHULKER_BOX)

    - 1 (IRON_CHESTPLATE)

    - 1 (IRON_HELMET)

    - 1 (IRON_LEGGINGS)

    - 16 (LOOM)

    - 5 (MOJANG_BANNER_PATTERN)

    - 10 (MOOSHROOM_SPAWN_EGG)

    - 8 (NETHER_STAR)

    - 18 (PANDA_SPAWN_EGG)

    - 16 (PHANTOM_MEMBRANE)

    - 14 (PIG_SPAWN_EGG)

    - 9 (POLAR_BEAR_SPAWN_EGG)

    - 7 (PUFFERFISH_SPAWN_EGG)

    - 1 (PURPLE_SHULKER_BOX)

    - 12 (RABBIT_SPAWN_EGG)

    - 512 (RED_NETHER_BRICKS)

    - 10 (SALMON_SPAWN_EGG)

    - 14 (SHEEP_SPAWN_EGG)

    - 5 (SKULL_BANNER_PATTERN)

    - 4 (SMITHING_TABLE)

    - 6 (SQUID_SPAWN_EGG)

    - 13 (TOTEM_OF_UNDYING)

    - 3 (TRIDENT)

    - 8 (TROPICAL_FISH_SPAWN_EGG)

    - 12 (TURTLE_EGG)

    - 6 (TURTLE_SPAWN_EGG)

    - 64 (WITHER_ROSE)

    - 4 (WOLF_SPAWN_EGG)

    - 1 (WOODEN_AXE)

    Ich bin noch nicht ganz fertig mit dem verstecken, aber um schon mal ein bisschen Vorfreude zu machen hier die Liste, was es aktuell zu finden gibt:


    There are 2772 items of 77 types in 81 containers on this plot.

    - 1 Anglerglück (FISHING_ROD)

    - 2 Bolzenschmeißer (CROSSBOW)

    - 43 CitroLimo™ (EXPERIENCE_BOTTLE)

    - 58 Gutschein für einen Spielerkopf deiner Wahl (PAPER)

    - 224 Hühnerbeine (COOKED_CHICKEN)

    - 128 McChocos (COOKIE)

    - 1 Panzer des Stachelkäfers (ELYTRA)

    - 208 Pommes zum Selberschnipseln (BAKED_POTATO)

    - 256 Rinderwahn (COOKED_BEEF)

    - 304 Schweinegrippe (COOKED_PORKCHOP)

    - 1 Schwert aus Katzengold (GOLDEN_SWORD)

    - 37 TastyCola™ (POTION)

    - 4 (BAT_SPAWN_EGG)

    - 320 (BEDROCK)

    - 1 (BLAST_FURNACE)

    - 1 (BLUE_SHULKER_BOX)

    - 4 (CARTOGRAPHY_TABLE)

    - 4 (CAT_SPAWN_EGG)

    - 4 (CHICKEN_SPAWN_EGG)

    - 6 (COBWEB)

    - 2 (COD_SPAWN_EGG)

    - 4 (COW_SPAWN_EGG)

    - 1 (CREEPER_BANNER_PATTERN)

    - 1 (CROSSBOW)

    - 96 (DIAMOND)

    - 1 (DIAMOND_AXE)

    - 40 (DIAMOND_BLOCK)

    - 3 (DIAMOND_BOOTS)

    - 1 (DIAMOND_CHESTPLATE)

    - 8 (DIAMOND_HELMET)

    - 1 (DIAMOND_HOE)

    - 1 (DIAMOND_LEGGINGS)

    - 56 (DIAMOND_ORE)

    - 1 (DIAMOND_PICKAXE)

    - 1 (DIAMOND_SHOVEL)

    - 2 (DIAMOND_SWORD)

    - 2 (DOLPHIN_SPAWN_EGG)

    - 2 (DONKEY_SPAWN_EGG)

    - 24 (DRAGON_BREATH)

    - 9 (DRAGON_HEAD)

    - 2 (ELYTRA)

    - 96 (EMERALD)

    - 5 (ENCHANTED_BOOK)

    - 2 (FLETCHING_TABLE)

    - 1 (FLOWER_BANNER_PATTERN)

    - 6 (FOX_SPAWN_EGG)

    - 48 (GLISTERING_MELON_SLICE)

    - 3 (GLOBE_BANNER_PATTERN)

    - 64 (GOLD_INGOT)

    - 1 (GREEN_SHULKER_BOX)

    - 1 (IRON_CHESTPLATE)

    - 1 (IRON_HELMET)

    - 1 (IRON_LEGGINGS)

    - 3 (MOJANG_BANNER_PATTERN)

    - 4 (MOOSHROOM_SPAWN_EGG)

    - 5 (NETHER_STAR)

    - 8 (PANDA_SPAWN_EGG)

    - 16 (PHANTOM_MEMBRANE)

    - 8 (PIG_SPAWN_EGG)

    - 4 (POLAR_BEAR_SPAWN_EGG)

    - 2 (PUFFERFISH_SPAWN_EGG)

    - 1 (PURPLE_SHULKER_BOX)

    - 4 (RABBIT_SPAWN_EGG)

    - 512 (RED_NETHER_BRICKS)

    - 4 (SALMON_SPAWN_EGG)

    - 8 (SHEEP_SPAWN_EGG)

    - 3 (SKULL_BANNER_PATTERN)

    - 2 (SMITHING_TABLE)

    - 4 (SQUID_SPAWN_EGG)

    - 1 (TOTEM_OF_UNDYING)

    - 3 (TRIDENT)

    - 8 (TROPICAL_FISH_SPAWN_EGG)

    - 3 (TURTLE_EGG)

    - 6 (TURTLE_SPAWN_EGG)

    - 64 (WITHER_ROSE)

    - 4 (WOLF_SPAWN_EGG)

    - 1 (WOODEN_AXE)


    So eine Liste könnt ihr euch auf eurem Plot übrigens auch ausgeben lassen, mit /countitems

    (ist noch nicht perfekt, so wird z.B: nicht zwischen verzaubert und nicht verzaubert aufgeschlüsselt, aber das werde ich irgendwann auch noch machen ...)

    Übrigens sind es nur 80 Kisten, denn das Lesepult wird mitgezählt, aber da kann man nichts rein machen [nur ein Buch darauf, aber das ist hier nicht der Fall] - und derselbe Typ kann mehrfach in der Liste vorkommen, wenn einige davon umbenannt werden ;))

    Also:

    Das Event startet am 15.12. um ca. 16:00 und wird bis zu 2 Stunden laufen.

    Es gibt knapp 80 Kisten; in den meisten davon sind mit mehr als einer Sache bestückt.


    [advertising]

    Gesponsort wird das Event vom Schnellimbiss nebenan! Die haben auch noch Leckerli in den Kisten versteckt! :thumbup::love:

    [/advertising]


    Es gibt noch eine Neuerung: ich habe es doch noch geschafft, eine Steuerung dafür zu implementieren.

    Diese sorgt dafür, dass man aus einer Kiste nur einen einzigen Stack (oder einen Teil davon) nehmen kann. Somit kann man auch dann noch was in Kisten finden, wenn schon andere dort waren.

    Überlegt euch also gut, was genau ihr nehmen wollt, bevor ihr es nehmt! Einmal zugegriffen (d.h. im eigenen Inventar verstaut) gibt es kein zurück mehr!

    Die Steuerung verbietet zur Sicherheit auch Umsortieren des eigenen Inventars, während eine Kiste offen ist; falls ihr also euer Inventar umsortieren wollt, dann könnt ihr das nur machen, wenn ihr nicht gerade in eine Kiste schaut (oder nicht auf dem Rathausplot seid).


    Ich habe diese Funktionalität getestet und es sieht gut aus, allerdings kann es sein, dass es Probleme gibt, wenn viele Aktionen gleichzeitig passieren - womöglich noch an derselben Kiste. Falls sich herausstellt, dass das leider so verbuggt ist, dass es mit mehreren Spielern nicht funktioniert, dann muss ich das wieder abschalten und wir machen es ganz normal - dann kann halt leider der erst immer gleich die ganze Kiste leer machen ...


    Ich versteck jetzt aber gleich noch mehr Kram, so dass zumindest in den richtig gut versteckten Kisten mehr als ein toller Gegenstand ist.

    Um das Rathausevent vorbereiten zu können hab ich mir ein paar Befehle gebaut, die jetzt auch für alle verfügbar sind (in Kreativ und Plots):


    /countblock <Blocktyp>

    • zählt, wie viele Blöcke von diesem Typ auf dem Plot vorhanden sind
    • geht nur, wenn man auf einem Plot ist und entweder der Besitzer oder hinzugefügt
    • <Blocktyp> muss der interne Name eines Blocktyps sein, der Befehl bietet aber eine Liste an.
      eine vollständige Liste der Typnamen gibt es hier, wobei einige davon nicht erlaubt sind (nämlich die, die kein Block sein können, wie z.B. BUCKET, sowie die, die mit LEGACY_ anfangen).
      Eine Liste mit den deutschen Namen gibt es hier, die ist allerdings ein wenig veraltet, es fehlen mindestens die neuen der 1.14, evtl. auch mehr.
      Die Groß-/Kleinschreibung ist übrigens egal, /countblock STONE funktioniert genauso wie /countblock stone oder /countblock StOnE.

    /countblock <Blocktyp> 1

    • gibt zusätzlich noch die Positionen der Blöcke an. ACHTUNG sollte nicht bei Blocktypen verwendet werden, die sehr häufig sind (wie z.B. STONE, DIRT, AIR) da es euch sonst übelst den Chat vollspammt!
      Falls das zu Problemen führt, dann muss ich entweder die Funktion nur Admins erlauben, oder zunächst eine Liste bilden und die Positionen dann nur ausgeben, wenn es weniger als 100 oder so sind ...
    • geht nur als Besitzer des Plots, wenn man nicht Besitzer ist wird nur die Gesamtzahl gezeigt.

    /countchests

    • zählt die Kisten auf dem Plot, und wie viele davon leer bzw. gefüllt sind
    • geht nur, wenn man auf einem Plot ist und entweder der Besitzer oder hinzugefügt

    /countchests empty bzw. /countchests filled bzw. /countchests all

    • zeigt zusätzlich noch die Positionen der leeren bzw. gefüllen bzw. aller Kisten
    • geht nur als Besitzer des Plots, wenn man nicht Besitzer ist wird nur die Gesamtzahl gezeigt.

    Hallo Kinder,


    pünktlich zur Weihnachtszeit gibt es bei uns eine Ostereiersuche :)



    Konkret geht es darum, dass wir in der Plotwelt, im Rathaus neben dem Schnellimbiss, lauter Sachen in Kisten verstecken und ihr bekommt dann eine Stunde Zeit, alles zu finden.
    Darunter werden auch einige Sachen sein, die man normalerweise nicht oder nur sehr schwer erhalten kann, so dass es sich sicher lohnt, mitzumachen.


    Das Rathaus kann aktuell noch nicht betreten werden, so dass es noch nicht möglich ist, bereits vorher nach den Kisten zu suchen.


    Das Event wird in zwei oder drei Wochen steigen, der genaue Termin ist davon abhängig, wann die meisten von euch Zeit haben.

    Um das zu ermitteln bitte ich euch, die folgende Umfrage zu beantworten. Wir nehmen dann den Termin, an dem die meisten können.

    Vom 6.11. 22:00 bis 7.11. 6:00 werden von Provider-Seite Wartungsarbeiten am Server vorgenommen.

    Während dieser Zeit wird der Server also down sein. Meiner Erfahrung nach kann das auch gerne mal ein wenig länger dauern, also nicht wundern, wenn der Server am Vormittag immer noch nicht erreichbar ist. Falls es noch länger dauert bekommen wir hoffentlich vom Provider einen Lagebericht, den wir dann weitergeben.


    Außerdem muss ich ein Upgrade der DB-Software vornehmen, das wird voraussichtlich 2-3 Stunden dauern. Während dieser Zeit müssen auch alle Server gestoppt werden. Das wird vermutlich heute Nacht passieren, wenn niemand mehr online ist. Ich gebe dann noch kurz vorher Bescheid im #support-Channel.

    Neue Version 0.2.2.

    Die oben genannten Bugs sind behoben, außerdem funktioniert jetzt auch Reset und Löschen von Plots ohne Adminrechte (und ohne dass man auf dem Plot sein muss).


    Der einzige Bug der mir grad noch einfällt ist, dass dass Menü nicht mit mehr als 8 Plots maximum umgehen kann - das gehe ich dann als nächstes an ...


    Bitte testen! Insbesondere ob man Gegenstände rausholen kann. Wenn nein, dann können wir es auch auf Plots installieren.

    Und noch ein Bugfix 0.2.1 -- da hab ich vor lauter Freude, dass der Umbau endlich fertig ist, nicht ausreichend getestet. :/


    Dafür gibt es als neues Feature `/pui reload` zum Neuladen der Konfiguration/Sprachdateien (nur als Admin möglich).


    einen Bug hab ioch jetzt noch gesehen: das Menü zählt merged Plots als nur einen, so dass der "neuer Plot"-Button angeboten wird, auch wenn man gar keine mehr haben kann :/

    Neue Version 0.2.0


    Rein äußerlich haben sich nur ein paar Icons geändert, und beim Blättern in den Block-Permissions werden jetzt mehr Navigationsoptionen gezeigt.

    Intern ist es ein kompletter Umbau; es gibt jetzt eine Config, bei der vor allem Icons ändern kann, und das Plugin ist übersetzbar (bisher nur Englisch und Deutsch; falls hier jemand sich zutraut, das in eine andere Sprache zu übersetzen wäre ich für Hilfe dankbar ;) ).

    Auf dem Kreativ-Server ist jetzt ein neues Plotmenü intalliert.

    Dies ist noch im Early-Beta-Status, es müssen noch gründliche Tests durchgeführt werden.


    Insbesondere muss getestet werden:

    • ob es korrekt arbeitet, wenn zwei oder mehr Spieler es gleichzeitig offen haben und benutzen
    • dass man keine Gegenstände entnehmen kann (bis das geklärt ist muss es auf Kreativ beschränkt bleiben)
    • und natürlich, dass alles korrekt funktioniert.


    Könnt ihr das bitte in den nächsten Tagen ordentlich durchtesten? Wenn es keine Bugs mehr gibt, dann kann man es auch für die Plotwelt aktivieren.


    Aufrufen kann man das Plotmenü mit /plotui (oder /pui oder /pm).


    Überprüfen, ob die Änderungen gemacht wurden kann man mit /plot info (oder /p i),


    Fragen entweder direkt an mich, oder besser im Support-Chat (dann kann man andere dorthin verweisen :P), Bugs können im Bugreport-Channel gemeldet werden.


    Auf eine genaue Anleitung verzichte ich, es soll ja selbsterklärend sein ;)