SteamWar/BauSystem2.0
Archiviert
12
0
Dieses Repository wurde am 2024-08-05 archiviert. Du kannst Dateien ansehen und es klonen, aber nicht pushen oder Issues/Pull-Requests öffnen.
BauSystem2.0/SCRIPT.md
Chaoscaot aa0594fa6c
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
Add StorageLib
Signed-off-by: Chaoscaot <chaoscaot@zohomail.eu>
2023-07-19 20:42:09 +02:00

18 KiB

SteamWar.de - Script System


Einleitung

Das Script System auf SteamWar.de basiert auf Lua. Der Code wird einfach in ein Minecraft Buch geschrieben und kann mit einem Links-Klick ausgeführt werden.

Basis-Apis

Es werden folgende Standard-Apis zur Verfügung gestellt:

SteamWar.de-Api

APIs, die mit einem _ beginnen sind noch nicht stabil und können sich jederzeit ändern. Sie sollten daher nicht verwendet werden, da sie sich noch in der Entwicklung befinden. Diese können auch undokumentierte Funktionen enthalten, die nicht in der Dokumentation aufgeführt sind.

In den Scripten gibt es dazu noch folgende globale Variablen:

Ohne eine Kategorie sind folgende Funktionen verfügbar, die nicht allgemein sind:

Name Signature Beschreibung
print print(String...) @see message(String...)
input input(String, Function<String>) Fragt den User nach einer Eingabe mit der Nachricht und called die zugehörige Funktion nach dieser
delayed delayed(Number, Function<Void>) Wartet die angegebene Anzahl an Ticks und führt danach die zugehörige Funktion aus
pos pos(Number, Number, Number) Erstellt aus drei Zahlen eine Position-Table. Die Koordinaten sind unter den Namen x, y und z abgespeichert
exec exec(String...) Führt den angegebenen Befehl als Spieler aus
length length(Any) Gibt die Länge des Objekts zurück

player

Das player-Modul stellt Funktionen zur Verfügung, die den Spieler betreffen. Es gibt folgende Funktionen:

Name Signature Beschreibung
name name(): String Gibt den displayName des Spielers zurück
chat chat(String...) Sendet den Text in den Chat des Spielers
actionbar actionbar(String...) Sendet den Text in die ActionBar des Spielers
x x(Number), x(): Number Setzt oder gibt die X-Koordinate des Spielers
y y(Number), y(): Number Setzt oder gibt die Y-Koordinate des Spielers
z z(Number), z(): Number Setzt oder gibt die Z-Koordinate des Spielers
yaw yaw(Number), yaw(): Number Setzt oder gibt die Gierung des Spielers
pitch pitch(Number), pitch(): Number Setzt oder gibt die Steigung des Spielers
sneaking sneaking(): Boolean Wahr, wenn der Spieler am Sneaken ist
sprinting sprinting(): Boolean Wahr, wenn der Spieler am Sprinten ist
slot slot(Number), slot(): Number Setzt oder gibt den Slot des gehaltenden Items des Spielers (Wiki)
item item(): String Gibt den Itemtyp der Main-Hand zurück
offHandItem offHandItem(): String Gibt den Itemtyp der Off-Hand zurück

region

Das region-Modul stellt Funktion zur Verfügung, die die Region des Spielers betreffen. Es gibt folgende Funktionen:

Name Signature Beschreibung
name name(): String Gibt den Regionsnamen
type type(): String Gibt den Regionstyp
fire fire(): Boolean Gibt den Fire-Modus der Region zurück
freeze freeze(): Boolean Gibt den Freeze-Modus der Region zurück
protect protect(): Boolean Gibt den Protect-Modus der Region zurück
loader loader(): String Gibt den Status des Loaders des Spielers zurück, die Werte sind: OFF, SETUP, RUNNING, PAUSE, END

Es gibt folgende weitere Module:

Name Beschreibung
tnt tnt
trace trace

tnt

Das tnt-Modul stellt Funktionen zur Verfügung, die den TNT-Modus in der Region des Spielers betreffen. Es gibt folgende Funktionen:

Name Signature Beschreibung
mode mode(): String Gibt den Aktuellen TNT-Modus zurück, die werte sind: ALLOW, DENY oder ONLY_TB
enabled enabled(): Boolean Gibt zurück, ob der TNT-Modus in der Region des Spielers aktiviert ist oder nicht
onlyTb onlyTb(): Boolean Gibt zurück, ob der TNT-Modus auf Only-Tb ist

trace

Das trace-Modul stellt Funktionen zur Verfügung, die den Status des Tracers der Region betreffen. Es gibt folgende Funktionen:

Name Signature Beschreibung
active active(): Boolean Gibt zurück, ob der Tracer in der Region des Spielers aktiviert ist oder nicht
auto auto(): Boolean Gibt zurück, ob der Tracer in der Region ein Auto-Tracer ist
status status(): String Gibt den Status des Tracers zurück
time time(): String Gibt die Zeit des Tracers zurück

server

Das server-Modul stellt Funktionen zur Verfügung, die den Server betreffen. Es gibt folgende Funktionen:

Name Signature Beschreibung
time time(): String Gibt die aktuelle Zeit im Format HH:mm:ss zurück
ticks ticks(): Number Gibt die Ticks seit start des Serverstarts zurück
getBlockAt getBlockAt(Pos): String Gibt das Material an der Position zurück
setBlockAt setBlockAt(Pos, String) Setzt das Material an der angegebenen Stelle (z.B. Stein = STONE)

Es gibt folgende weitere Module:

Name Beschreibung
tps tps

tps

Das tps-Modul stellt Funktionen zur Verfügung, die die TPS des Servers betreffen. Es gibt folgende Funktionen:

Name Signature Beschreibung
current current(): Number Gibt die aktuelle TPS zurück (Das selbe wie oneSecound())
oneSecond oneSecond(): Number Gibt die durchschnittliche TPS über die letzte Sekunde zurück
tenSecond tenSecond(): Number Gibt die durchschnittliche TPS über die letzte 10 Sekunden zurück
oneMinute oneMinute(): Number Gibt die durchschnittliche TPS über die letzte Minute zurück
fiveMinute fiveMinute(): Number Gibt die durchschnittliche TPS über die letzte 5 Minuten zurück
tenMinute tenMinute(): Number Gibt die durchschnittliche TPS über die letzte 10 Minuten zurück
limit limit(): Number Gibt das TPS-Limit zurück

storage

Das storage-Modul stellt Funktionen zur Verfügung, mit welchen man Werte speichern kann.

Es gibt folgende Module:

Name Beschreibung
player Spieler abhängig
region Region des Spielers
global Alle Skripte

Alle Module haben folgende Funktionen:

Name Signature Beschreibung
get get(String): Any Gibt den Wert des Schlüssels zurück
set set(String, Any) Setzt den Wert des Schlüssels auf den angegebenen Wert

SteamWar.de-Global-Api

Mit /script kann man Script-Bücher global abspeichern. Diese haben dann zugrif auf die global-Api. Die global-Api stellt Funktionen zur Verfügung um auf Events, Commands und Hotkeys mit einem Script zu reagieren.

Es gibt folgende Funktionen:

Name Signature Beschreibung
event event(EventType, Function(Any)) Registriere einen Event Listener
command command(String, Function(Args)) Registriere einen Befehl
hotkey hotkey(String, Function(Boolean)) Registriere einen Hotkey, the function gets a boolean if the key is pressed

Es gibt folgende Variablen:

Name Beschreibung
events Siehe: Event Type

Hotkeys

Hotkeys werden im folgenden Format angegeben: MODIFIER+KEY. Bei den Hotkey erstellung ist die Großschreibung egal. Es gibt folgende Modifier:

  • ctrl
  • shift
  • alt
  • meta

Es können auch mehrere Modifier angegeben werden, z.B. ctrl+shift+alt+c. Die Reihenfolge der Modifier und des Keys ist egal.

Eventtypen

Einige Events sind auch abbrechbar, dazu muss die Funktion setCancelled() aufgerufen werden.

Name Wenn Parameter Abbrechbar
DoubleSwap Beim Doppelten Drücken der Swap-Hands taste NIL false
PlaceBlock Beim Platzieren von Blöcken BlockEvent true
BreakBlock Beim Zerstören von Blöcken BlockEvent true
RightClick Beim Rechtsklick InteractEvent true
LeftClick Beim Linksklick InteractEvent true
TNTSpawn Wenn ein TNT in der aktuellen Region spawnt NIL false
TNTExplode Wenn ein TNT in der aktuellen Region explodiert Position true
TNTExplodeInBuild Wenn ein TNT in der aktuellen Bau Region explodiert Position true
SelfJoin Wenn man selbst den Server betritt NIL false
SelfLeave Wenn man den Server verlässt NIL false
DropItem Wenn man ein Item droppt (type: Material) true
EntityDeath Wenn ein Entity stirbt (type: Entity Type) false

BlockEvent

Das übergebene Objekt an den Handler hat folgende Variablen:

Name Beschreibung
x Die X-Koordinate des Blocks
y Die Y-Koordinate des Blocks
z Die Z-Koordinate des Blocks
type Das Material des Blocks

InteractEvent

Das übergebene Objekt an den Handler hat folgende Variablen:

Name Beschreibung
action Die Action die ausgeführt wurde, Mögliche Werte: RIGHT_CLICK_BLOCK, RIGHT_CLICK_AIR, LEFT_CLICK_BLOCK, LEFT_CLICK_AIR
hand Die Hand die zum ausführen genutzt wird, Mögliche Werte: HAND, OFF_HAND, null
block Der Typ des Items mit dem geklickt wurde
hasBlock Wahr, wenn auf einen Block geklickt wurde

Wenn hasBlock wahr ist, gibt es folgende Variablen:

Name Beschreibung
blockX Die X-Koordinate des Blocks
blockY Die Y-Koordinate des Blocks
blockZ Die Z-Koordinate des Blocks
blockFace Die Seite des Blocks die geklickt wurde

Position

Die Position ist ein Objekt mit folgenden Variablen:

Name Beschreibung
x Die X-Koordinate
y Die Y-Koordinate
z Die Z-Koordinate

Instabile APIs

Hier sind einige APIs aufgelistet, die nicht stabil sind und sich jederzeit ändern können.

_worldedit

Name Signatur Beschreibung
selection selection(Liste<Pos>), selection(): {min: Pos, max: Pos} Die aktuelle auswahl des Spielers

Beispiele

Hello, World!

Ein einfaches Hello, World!-Script.

Code

print("Hello, World!")

Ausgabe

Hello, World!

BauGUI on DoubleSwap

Das Standardskript für das Öffnen des BauGUIs

Code

function handler(event) 
  exec("gui")
end

event(events.DoubleSwap, handler)

SL Command

Ein einfacher Command Redefiner.

Code

function handler(args)
  exec("stoplag")
end

command("sl", handler)

Paste Hotkey

Ein Hotkey zum Pasten des Clipboard-Inhalts.

Code

function handler(pressed)
  if pressed then
    exec("/paste -o")
  end
end

hotkey("ctrl+v", handler)