Guten Tag alle zusammen
,
mein Name ist Manuel und ich möchte euch heute in die Welt von Denizen führen.
Was ist Denizen?
"Denizen is a very high power script engine for Spigot-enabled Minecraft servers."
Genau wie Skript ist Denizen eine Script-Sprache für Minecraft-Spigot/Paper-Server.
Hier noch ein kleiner Auszug aus der Spigot-Seite:
Downloadlinks und Informationslinks:
Spigot-Seite
Dokumentation
Guide Englisch
Aktuelle Downloads
Ich wünsch euch viel Spaß beim Scripten.
-Manuel
mein Name ist Manuel und ich möchte euch heute in die Welt von Denizen führen.
Was ist Denizen?
"Denizen is a very high power script engine for Spigot-enabled Minecraft servers."
Genau wie Skript ist Denizen eine Script-Sprache für Minecraft-Spigot/Paper-Server.
Hier noch ein kleiner Auszug aus der Spigot-Seite:
Features include:
- Full high power yet easily learned scripting language!
- Easy to write scripts with any text editor OR even directly in-game!
- The full power of a Minecraft server exposed, not even limited to what standard plugins can access through the API!
- Powerful direct integration with Citizens, as well as many other popular plugins (see Addons section below)!
- Rapid development for new features and bug fixes!
- Powerful and capable enough to even replace major plugins like WorldGuard entirely using scripts (see sample scripts section below)
- More than 30 quick yet informative tutorial videos explaining everything you could ever need to get your server customized to perfection!
- Completely open source (see GitHub link above)!
- Very friendly and helpful support (see Discord link below)!
- And so much more!
- Full high power yet easily learned scripting language!
- Easy to write scripts with any text editor OR even directly in-game!
- The full power of a Minecraft server exposed, not even limited to what standard plugins can access through the API!
- Powerful direct integration with Citizens, as well as many other popular plugins (see Addons section below)!
- Rapid development for new features and bug fixes!
- Powerful and capable enough to even replace major plugins like WorldGuard entirely using scripts (see sample scripts section below)
- More than 30 quick yet informative tutorial videos explaining everything you could ever need to get your server customized to perfection!
- Completely open source (see GitHub link above)!
- Very friendly and helpful support (see Discord link below)!
- And so much more!
Downloadlinks und Informationslinks:
Spigot-Seite
Dokumentation
Guide Englisch
Aktuelle Downloads
Zunächst braucht ihr einen beliebigen Texteditor. Ich empfehle euch Visual Studio Code. Hier gibt es bei den Extensions eine Erweiterung für Denizen, welche euch auf Fehler hin weißt, euch Vorschläge macht und mehr.
Visual Studio Code
.NET Core 3.1 (wird für die Extension benötigt!)
Dateinen in denen man später seine Scripte schreibt haben das Dateinenformat .dsc ! Das steht für Denizenscript.
Als nächstes benötigt ihr einen Server. Zum entwickeln empfehle ich einen Lokalserver zu erstellen.
Hier ein Link zu einem Tutorial:
Spigot-Server erstellen
Guide Englisch
Visual Studio Code
.NET Core 3.1 (wird für die Extension benötigt!)
Dateinen in denen man später seine Scripte schreibt haben das Dateinenformat .dsc ! Das steht für Denizenscript.
Als nächstes benötigt ihr einen Server. Zum entwickeln empfehle ich einen Lokalserver zu erstellen.
Hier ein Link zu einem Tutorial:
Spigot-Server erstellen
Guide Englisch
Möchte man Befehle von Denizen per Command ingame benutzen kann man das über den /ex Befehl tun.
Falsch:
Richtig:
(Narrate ist ein Befehl für die Textausgabe)
Mit dem /ex Befehl kann man außerdem Denizen reloaden. Es ist kein Serverneustart nötig, damit alles funktioniert.
Guide Englisch
Falsch:
/narrate "Hello world"
oder - narrate "Hello Wolrd"
Richtig:
/ex narrate "Hello world"
(Narrate ist ein Befehl für die Textausgabe)
Mit dem /ex Befehl kann man außerdem Denizen reloaden. Es ist kein Serverneustart nötig, damit alles funktioniert.
/ex reload
Guide Englisch
Denizen arbeitet mit verschiedene Script-Container. Jeder Container hat eine bestimmte Fähigkeit und ist auf den jeweiligen Bereich angepasst. So gibt es für einfache Aufgaben einen Task-Container, für Commands ein Command-Container, für Events einen World-Container und viele mehr.
Erstelle nun eine neue Datei und nenne sie wie du willst. Beachte das die Datei mit .dsc endet. Dieses steht für Denizenscript.
Du kannst diesen Task nun mit
Guide Englisch
Erstelle nun eine neue Datei und nenne sie wie du willst. Beachte das die Datei mit .dsc endet. Dieses steht für Denizenscript.
Code:
example_task:
type: task
script:
- narrate "Hello world"
/ex run example_task
ausführen.Guide Englisch
Meine neuere Videoreihe (weitere Videos folgen):
Dokumentation
In der Dokumentation findet ihr verschiedene Reiter, welche am Anfang verwirrend zu scheinen. Deswegen erkläre ich diese einmal:
Tag Search
Bei Tag Search findet ihr die sogenannten Tags. Tags werden verwendet um Werte aus Listen, von Minecraft, der Eingabe von Spieler und mehr verwendet.
Ein einfaches Beispiel ist
Kommen wir zu einem komplexeren Beispiel
Command Search
Bei Command Search finden wir verschiedene Befehle.
Ein Beispiel ist ein Befehl welcher eine Nachricht zum naheliegenden Objekt gibt, also Spieler, Console, etc.
Event Search
Hier sind alle mögliche Events aufgelistet.
Beispiel:
Hier wird ein Befehl ausgeführt wenn ein Spieler ein bestimmtes Item ausrüstet/ablegt.
Language Explanation Search
Dieser Punkt ist wahrscheinlich der Wichtigste in der gesamten Dokumentation. Hier wird der aufbau von verschiedene "Container" ausgelistet und somit den Aufgab des Skriptes.
Ein Befehl-Skript:
Erklärung:
Command_Script_Name - Der Name des Skriptes. Dieser Name darf nicht übereinstimmen mit andere Skripten
Type - Welcher Typ der Container ist. Ist bei jedem Container vorhanden.
Name - Das ist der Command-Name. Also /name.
Permission - Die Permission welche man braucht um den Befehl benützen zu dürfen.
script - Hier stehen die Befehle, welche nacheinander abgearbeitet werden. Hier eine Chatsausgabe an den Spieler der diesen Befehl ausführt.
Ein weiteres Beispiel ist ein Event-Skript:
Wenn der Spieler in das Inventar klickt, nimmt er das angeklickte Item automatisch in die Hand.
Type ist bei einem Event auf world, da ein Event ja mit der Welt interagiert.
Mechanism Search
Hier wird einem erklärt was hinter dem bei dem Tag steckenden Tag steht. Also <EntityTag.location>
Action Search
Dies hier bezieht sich vollständig auf NPCs und wird nur bei NPCs benötigt.
Und damit sind wir auch schon am Ende dieser kleinen Einführung. Wenn Interesse besteht schreibe ich gerne einen weiteren Teil, lasst es mich wissen.
Dokumentation
In der Dokumentation findet ihr verschiedene Reiter, welche am Anfang verwirrend zu scheinen. Deswegen erkläre ich diese einmal:
Tag Search
Bei Tag Search findet ihr die sogenannten Tags. Tags werden verwendet um Werte aus Listen, von Minecraft, der Eingabe von Spieler und mehr verwendet.
Ein einfaches Beispiel ist
Code:
<EntityTag.name>
Bei EntityTag kann man zum Beispiel Player eintragen und bekommt dann den namen des Spielers.
Kommen wir zu einem komplexeren Beispiel
Code:
<EntityTag.location.simple.formatted>
Dieser Tag besteht aus dem Tag <EntityTag.location> und dem Tag <LocationTag.simple.formatted>
Für EntityTag können wir wieder zum Beispiel Player eingeben und für LocationTag wird durch <EntityTag.location> automatisch diese Location/Koordinaten eingefügt.
Der Sinn diese beide Tags zu kombinieren ist dieser:
Ausgabe von <EntityTag.location>: l@-217.48727158324309,75.24433174406282,233.9290830879626,9.097063064575195,-173.7088623046875,world
Ausgabe mit<LocationTag.simple.formatted>: X '218', Y '75', Z '233' in world 'world'
Command Search
Bei Command Search finden wir verschiedene Befehle.
Ein Beispiel ist ein Befehl welcher eine Nachricht zum naheliegenden Objekt gibt, also Spieler, Console, etc.
Code:
- narrate "Hello World!"
Event Search
Hier sind alle mögliche Events aufgelistet.
Beispiel:
Code:
on player (un)equips <item>
Language Explanation Search
Dieser Punkt ist wahrscheinlich der Wichtigste in der gesamten Dokumentation. Hier wird der aufbau von verschiedene "Container" ausgelistet und somit den Aufgab des Skriptes.
Ein Befehl-Skript:
Code:
Command_Script_Name:
type: command
name: mycmd
permission: my.permission.node
script:
- narrate "Hello World!"
Command_Script_Name - Der Name des Skriptes. Dieser Name darf nicht übereinstimmen mit andere Skripten
Type - Welcher Typ der Container ist. Ist bei jedem Container vorhanden.
Name - Das ist der Command-Name. Also /name.
Permission - Die Permission welche man braucht um den Befehl benützen zu dürfen.
script - Hier stehen die Befehle, welche nacheinander abgearbeitet werden. Hier eine Chatsausgabe an den Spieler der diesen Befehl ausführt.
Ein weiteres Beispiel ist ein Event-Skript:
Code:
Event_name:
type: world
on player clicks in inventory:
- take iteminhand
Type ist bei einem Event auf world, da ein Event ja mit der Welt interagiert.
Mechanism Search
Hier wird einem erklärt was hinter dem bei dem Tag steckenden Tag steht. Also <EntityTag.location>
Code:
Object PlayerTag
Name location
Input LocationTag
Description If the player is online, teleports the player to a given location.
Otherwise, sets the player's next spawn location.
Tags <PlayerTag.location>
Action Search
Dies hier bezieht sich vollständig auf NPCs und wird nur bei NPCs benötigt.
Und damit sind wir auch schon am Ende dieser kleinen Einführung. Wenn Interesse besteht schreibe ich gerne einen weiteren Teil, lasst es mich wissen.
Ich wünsch euch viel Spaß beim Scripten.
-Manuel
Zuletzt bearbeitet: