Script System Lua #178

Zusammengeführt
YoyoNow hat 16 Commits von lua nach master 2023-07-17 16:44:04 +02:00 zusammengeführt
Besitzer

To do:

  • Globale Scripte
  • AdvancedScripts mod Updaten
  • Weiter Sandboxen
  • Hotkeys
  • Commands
  • Events
To do: - [x] Globale Scripte - [x] AdvancedScripts mod Updaten - [x] Weiter Sandboxen - [X] Hotkeys - [X] Commands - [X] Events
Chaoscaot hat 1 Commit 2023-05-19 19:30:10 +02:00 hinzugefügt
Script System Lua
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
16a6d10472
Todo:
* /script and global script storage
* Code Cleanup
Chaoscaot hat 1 Commit 2023-05-19 19:34:49 +02:00 hinzugefügt
Add Copyright
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
95f0625031
Chaoscaot hat 1 Commit 2023-05-19 20:12:56 +02:00 hinzugefügt
Add Hotkeys
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
edd44c172c
Chaoscaot hat 1 Commit 2023-05-21 11:27:40 +02:00 hinzugefügt
Update Docs and Add Global GUI
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
2d8056883c
Signed-off-by: Chaoscaot <chaoscaot@zohomail.eu>
Chaoscaot hat 1 Commit 2023-05-21 13:02:19 +02:00 hinzugefügt
Update Docs and some fixes
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
96b37e1df1
Signed-off-by: Chaoscaot <chaoscaot@zohomail.eu>
Chaoscaot hat 1 Commit 2023-05-21 13:33:49 +02:00 hinzugefügt
Add Cancelable Events
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
dd69f7ba83
Signed-off-by: Chaoscaot <chaoscaot@zohomail.eu>
Chaoscaot hat 1 Commit 2023-05-21 13:45:11 +02:00 hinzugefügt
Fix UnsignCommand
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
bf2e1c694d
Signed-off-by: Chaoscaot <chaoscaot@zohomail.eu>
Chaoscaot hat 1 Commit 2023-05-21 14:55:51 +02:00 hinzugefügt
Add default ff
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
900bbb0aec
Signed-off-by: Chaoscaot <chaoscaot@zohomail.eu>
Chaoscaot hat 1 Commit 2023-05-28 00:59:11 +02:00 hinzugefügt
Add WorldEditLib and Script Preview
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
43cecb54e3
Signed-off-by: Chaoscaot <chaoscaot@zohomail.eu>
Chaoscaot hat den Titel von WIP: Script System Lua zu Script System Lua 2023-06-05 17:20:43 +02:00 geändert
Lixfel hat 2023-06-06 12:59:22 +02:00 Änderungen angefragt
Lixfel hat einen Kommentar hinterlassen
Besitzer

Perfekt wäre, wenn die Dokumentation ingame passend übersetzt als Buch vorliegen würde. Das sehe ich jetzt in der ersten Iteration aber erstmal als optional an.

Hast du mal eine Sicherheitsüberprüfung gemacht, welche Methoden und Module so alles verfügbar sind, indem man sich einfach mal alle Module etc. ausgeben hat lassen? (So in etwa wie rekursive __dict__-Aufrufe in Python).

Man hätte echt nochmal über die Dokumentation einfach mal drüberlesen können, dann hätte ich hier deutlich weniger anmerken müssen.

Perfekt wäre, wenn die Dokumentation ingame passend übersetzt als Buch vorliegen würde. Das sehe ich jetzt in der ersten Iteration aber erstmal als optional an. Hast du mal eine Sicherheitsüberprüfung gemacht, welche Methoden und Module so alles verfügbar sind, indem man sich einfach mal alle Module etc. ausgeben hat lassen? (So in etwa wie rekursive `__dict__`-Aufrufe in Python). Man hätte echt nochmal über die Dokumentation einfach mal drüberlesen können, dann hätte ich hier deutlich weniger anmerken müssen.
@ -65,2 +65,4 @@
compileOnly swdep('FastAsyncWorldEdit-1.18')
implementation 'org.luaj:luaj-jse:3.0.1'
Besitzer

Aktuelle Fassung von LuaJ scheint 3.0.2 zu sein. Warum 3.0.1?

Aktuelle Fassung von LuaJ scheint 3.0.2 zu sein. Warum 3.0.1?
Chaoscaot markierte diese Unterhaltung als gelöst
@ -361,1 +233,3 @@
SCRIPT_COMMAND_ITEM_NAME = §7Command§8: §e{0}
SCRIPT_HOTKEY_ITEM_NAME = §7Hotkey§8: §e{0}
SCRIPT_EVENT_ITEM_NAME = §7Event§8: §e{0}
SCRIPT_COMMAND_ITEM_NAME = §7Command§8: §e/{0}
Besitzer

Befehl

Befehl
Chaoscaot markierte diese Unterhaltung als gelöst
@ -365,2 +239,3 @@
SCRIPT_MENU_GUI_ITEM_LORE_2 = §7Shift Klicke zum kopieren
SCRIPT_MENU_GUI_NAME = §eScript Commands {0}{1}§7%
SCRIPT_MENU_GUI_ITEM_LORE_3 = §7Rechts Klicke zum editieren
SCRIPT_MENU_GUI_ITEM_LORE_4 = §7Mittel Klicke zum anschauen
Besitzer

Uaah! Deutsch! Rechtsklick, Mittelklick, Shiftklick. Nach "zum" werden Verben großgeschrieben: Editieren, Anschauen, Kopieren, Rausnehmen. Rausnehmen => Entnehmen. Evtl. statt zum ein :. Also so in etwa: §7Linksklick§8: §8Entnahme ...

Uaah! Deutsch! Rechtsklick, Mittelklick, Shiftklick. Nach "zum" werden Verben großgeschrieben: Editieren, Anschauen, Kopieren, Rausnehmen. Rausnehmen => Entnehmen. Evtl. statt zum ein :. Also so in etwa: §7Linksklick§8: §8Entnahme ...
Chaoscaot markierte diese Unterhaltung als gelöst
@ -366,1 +240,3 @@
SCRIPT_MENU_GUI_NAME = §eScript Commands {0}{1}§7%
SCRIPT_MENU_GUI_ITEM_LORE_3 = §7Rechts Klicke zum editieren
SCRIPT_MENU_GUI_ITEM_LORE_4 = §7Mittel Klicke zum anschauen
SCRIPT_MENU_GUI_NAME = §eScript-Menü
Besitzer

Ist noch die Überlegung, ob Skript oder Script.

Ist noch die Überlegung, ob Skript oder Script.
Chaoscaot markierte diese Unterhaltung als gelöst
@ -368,3 +244,3 @@
SCRIPT_MENU_GUI_ITEM_ADD_LORE = §7Klicke mit einem Buch zum hinzufügen
SCRIPT_MENU_GUI_DUPLICATE_COMMAND = §cCommand '{0}' bereits definiert
SCRIPT_MENU_GUI_DUPLICATE_SCRIPT = §cCommand '{0}' bereits definiert
Besitzer

Skript?

Skript?
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +55,4 @@
{
Bukkit.getScheduler().runTaskTimer(BauSystem.getInstance(), () -> {
LAST_FS.entrySet().removeIf(entry -> System.currentTimeMillis() - entry.getValue() > 200);
Besitzer

Nur ein Aufruf von System.currentTimeMillis() pro Tick. Zeit abzufragen kann (relativ) teuer sein.

Nur ein Aufruf von System.currentTimeMillis() pro Tick. Zeit abzufragen kann (relativ) teuer sein.
Autor
Besitzer

FunFact: Das hab ich aus dem Live-Code kopiert

kann man aber noch fixen

FunFact: Das hab ich aus dem Live-Code kopiert kann man aber noch fixen
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +85,4 @@
table.set("y", event.getBlock().getY());
table.set("z", event.getBlock().getZ());
table.set("type", event.getBlock().getType().name());
event.setCancelled(ScriptRunner.callEvent(event.getPlayer(), SteamWarGlobalLuaPlugin.EventType.PlaceBlock, table));
Besitzer

Könnte unerwünschte Nebeneffekte haben, da bei dem Event ja nicht IgnoredCancelled ist und es in zufälliger Reihenfolge mit den meisten anderen Listenern aufgerufen wird, welche ja auch das (Bukkit)-Event canceln könnten.

Könnte unerwünschte Nebeneffekte haben, da bei dem Event ja nicht IgnoredCancelled ist und es in zufälliger Reihenfolge mit den meisten anderen Listenern aufgerufen wird, welche ja auch das (Bukkit)-Event canceln könnten.
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +118,4 @@
env.set("rawlen", NIL);
env.set("rawset", NIL);
env.set("setmetatable", NIL);
env.set("xpcall", NIL);
Besitzer

Das hier so zu entfernen scheint mir etwas unsicher. Wäre es nicht möglich, das Environment andersherum aufzubauen, d.h. komplett leer anzufangen und dann das nötige/sichere hinzuzufügen?

Das hier so zu entfernen scheint mir etwas unsicher. Wäre es nicht möglich, das Environment andersherum aufzubauen, d.h. komplett leer anzufangen und dann das nötige/sichere hinzuzufügen?
Autor
Besitzer

Habe die Packages schon selectiv hinzugefügt, das sind nur ein Paar Überbleibsel aus dem BasePackage.

Habe die Packages schon selectiv hinzugefügt, das sind nur ein Paar Überbleibsel aus dem BasePackage.
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +39,4 @@
public static Globals createClickGlobals(Player player) {
Globals globals = new Globals();
globals.load(new JseBaseLib());
globals.load(new PackageLib());
Besitzer

JseBase und Package sind nicht in der Dokumentation enthalten. (Weiß jetzt nicht, was diese Libs genau machen)

JseBase und Package sind nicht in der Dokumentation enthalten. (Weiß jetzt nicht, was diese Libs genau machen)
Autor
Besitzer

JseBase: Sind die "Standard" Lua-Funktionen wie in den Lua-Doc beschrieben.
PackageLib: Sind meines Ermessens nach ein Table an den geladenen Libraries

JseBase: Sind die "Standard" Lua-Funktionen wie in den Lua-Doc beschrieben. PackageLib: Sind meines Ermessens nach ein Table an den geladenen Libraries
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +94,4 @@
} else if (luaValue instanceof LuaString) {
consumer.accept(luaValue.toString());
} else {
throw new LuaError("Invalid lua type: " + luaValue.typename());
Besitzer

Diese LuaErrors treten aber nicht auf, wenn der Spieler einen Fehler gemacht hat, oder? Werden diese LuaErrors irgendwo eingefangen und dem Nutzer angezeigt (Fehler im Skript?)? Oder landen die bei uns in der Datenbank?

Diese LuaErrors treten aber nicht auf, wenn der Spieler einen Fehler gemacht hat, oder? Werden diese LuaErrors irgendwo eingefangen und dem Nutzer angezeigt (Fehler im Skript?)? Oder landen die bei uns in der Datenbank?
Autor
Besitzer

Die Skript Runtime wird komplett ge-catch und wird dem Spieler dann in der Zeile als fehler angestrichen.

Die Skript Runtime wird komplett ge-catch und wird dem Spieler dann in der Zeile als fehler angestrichen.
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +51,4 @@
table.set("sprinting", getter(player::isSprinting));
table.set("slot", getterAndSetter(player.getInventory()::getHeldItemSlot, player.getInventory()::setHeldItemSlot));
table.set("item", getter(player.getInventory().getItemInMainHand().getType()::name));
table.set("offHandItem", getter(player.getInventory().getItemInOffHand().getType()::name));
Besitzer

Ich weiß nicht, ob das so richtig ist, aber durch diesen Befehlsaufruf wird immer das Material (auch die anderen getter betroffen) ausgegeben, der zum Zeitpunkt der Tableerstellung zurückgegeben.

Ich weiß nicht, ob das so richtig ist, aber durch diesen Befehlsaufruf wird immer das Material (auch die anderen getter betroffen) ausgegeben, der zum Zeitpunkt der Tableerstellung zurückgegeben.
Besitzer

Sollte so richtig sein, geht aber halt nicht überall mit ner method reference. Muss man mal im decompilat anschauen vllt.

Sollte so richtig sein, geht aber halt nicht überall mit ner method reference. Muss man mal im decompilat anschauen vllt.
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +47,4 @@
public LuaTable get(Player player) {
LuaTable table = LuaValue.tableOf();
table.set("name", getter(() -> Region.getRegion(player.getLocation()).getName()));
Besitzer

Hier ist es dagegen anders gemacht (als in der PlayerLib). Am besten auf eine (korrekte) Variante entscheiden.

Hier ist es dagegen anders gemacht (als in der PlayerLib). Am besten auf eine (korrekte) Variante entscheiden.
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +32,4 @@
public class WorldEditLib implements LuaLib {
@Override
public String name() {
return "_worldedit";
Besitzer

Trotz dass diese Lib noch im Prototypenstadium ist, wäre es schön für die Spieler, wenn sie auch kurz in der Dokumentation beschrieben wird. Schließlich haben die Spieler keinen anderen Anhaltspunkt und keine IDE, wo sie die Funktionalität nachschlagen können.

Trotz dass diese Lib noch im Prototypenstadium ist, wäre es schön für die Spieler, wenn sie auch kurz in der Dokumentation beschrieben wird. Schließlich haben die Spieler keinen anderen Anhaltspunkt und keine IDE, wo sie die Funktionalität nachschlagen können.
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +1,100 @@
/*
Besitzer

Das hat hier nichts verloren. Bitte auch einmal die Änderungen, welche ich am CommonCore-Script-Branch vorgenommen habe, reviewen und diesen Branch hier ggf. darauf anpassen.

Das hat hier nichts verloren. Bitte auch einmal die Änderungen, welche ich am CommonCore-Script-Branch vorgenommen habe, reviewen und diesen Branch hier ggf. darauf anpassen.
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +41,4 @@
- [`math`](https://www.lua.org/manual/5.4/manual.html#6.7)
- [`string`](https://www.lua.org/manual/5.4/manual.html#6.4)
- [`table`](https://www.lua.org/manual/5.4/manual.html#6.6)
- `bit32`
Besitzer

Warum hier kein Link?

Warum hier kein Link?
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +55,4 @@
- `_worldedit`
### global
Die `global`-Api stellt Funktionen zur Verfügung, QOL sind.
Besitzer

Grammatik.

Grammatik.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +56,4 @@
### global
Die `global`-Api stellt Funktionen zur Verfügung, QOL sind.
Es gibt folgende Funktionen:
Besitzer

Diese beiden Headerzeilen finde ich irgendwie nicht so ganz pralle von der Formulierung her (auch bei den folgenden Instanzen). Funktionen würde ich einfach ähnlich wie eine Überschrift handhaben, und die Beschreibungszeile würde ich kürzer Formulieren a'la: global stellt QOL Funktionen zur Verfügung.

Diese beiden Headerzeilen finde ich irgendwie nicht so ganz pralle von der Formulierung her (auch bei den folgenden Instanzen). Funktionen würde ich einfach ähnlich wie eine Überschrift handhaben, und die Beschreibungszeile würde ich kürzer Formulieren a'la: global stellt QOL Funktionen zur Verfügung.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +62,4 @@
|-----------|----------------------------------|----------------------------------------------------------------------------------------------------|
| `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 |
| `timeout` | timeout(Number, Function\<Void>) | Wartet die angegebene Anzahl an Ticks und führt danach die zugehörige Funktion aus |
Besitzer

wäre sleep() nicht ein angemessenerer typischer Name?

wäre sleep() nicht ein angemessenerer typischer Name?
Besitzer

weil bei einem sleep erwarte ich persönlich nicht, dass man noch eine funktion reinreichen muss

weil bei einem sleep erwarte ich persönlich nicht, dass man noch eine funktion reinreichen muss
Autor
Besitzer

Die Implementierung von Sleep ist mit LuaJ in unserem Falle nicht möglich.

Da ein Sleep eine Pausierung der Ausführung von dem Main-Thread veranlassen würde.

Die Implementierung von Sleep ist mit LuaJ in unserem Falle nicht möglich. Da ein Sleep eine Pausierung der Ausführung von dem Main-Thread veranlassen würde.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +63,4 @@
| `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 |
| `timeout` | timeout(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, sind unter den Namen `x`, `y` und `z` abgespeichert |
Besitzer

Die Beschreibung ist grammatikalischer nonsens.

Die Beschreibung ist grammatikalischer nonsens.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +73,4 @@
| Name | Signature | Beschreibung |
|---------------|--------------------------------|-------------------------------------------------------------|
| `name` | name(): String | Gibt den `displayName` des Spielers zurück |
| `message` | message(String...) | Sendet den Text in den Chat des Spielers |
Besitzer

chat() statt message()? Macht es etwas klarer, was die Methode macht.

chat() statt message()? Macht es etwas klarer, was die Methode macht.
Besitzer

als alias?

als alias?
Besitzer

Als alias auf keinen Fall. Wir brauchen in einer brandneuen API keine Varianten anzubieten...

Als alias auf keinen Fall. Wir brauchen in einer brandneuen API keine Varianten anzubieten...
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +79,4 @@
| `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 den Yaw des Spielers |
| `pitch` | pitch(Number), pitch(): Number | Setzt oder gibt den Pitch des Spielers |
Besitzer

Yaw und Pitch in der Beschreibung einmal übersetzen.

Yaw und Pitch in der Beschreibung einmal übersetzen.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +80,4 @@
| `z` | z(Number), z(): Number | Setzt oder gibt die Z-Koordinate des Spielers |
| `yaw` | yaw(Number), yaw(): Number | Setzt oder gibt den Yaw des Spielers |
| `pitch` | pitch(Number), pitch(): Number | Setzt oder gibt den Pitch des Spielers |
| `sneaking` | sneaking(): Boolean | Wahr, wenn der Spieler am Sneaken ist |
Besitzer

Kann man auch übersetzen.

Kann man auch übersetzen.
Besitzer

tut aber so gut wie niemand, oder würdest du es geduckt nennen?

tut aber so gut wie niemand, oder würdest du es geduckt nennen?
Besitzer

schleichen

schleichen
Lixfel markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +82,4 @@
| `pitch` | pitch(Number), pitch(): Number | Setzt oder gibt den Pitch 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 |
Besitzer

Hier am besten einmal die Slotnummerntabelle aus dem Minecraft-Wiki verlinken.

Hier am besten einmal die Slotnummerntabelle aus dem Minecraft-Wiki verlinken.
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +84,4 @@
| `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 |
| `item` | item(): String | Gibt den Item Type der Main-Hand zurück |
| `offHandItem` | offHandItem(): String | Gibt den Item Type der Off-Hand zurück |
Besitzer

Itemtyp

Itemtyp
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +94,4 @@
| Name | Signature | Beschreibung |
|-----------|--------------------|------------------------------------------------------------------------------------------------------------|
| `name` | name(): String | Gibt den Namen der Region zurück |
| `type` | type(): String | Gibt den Namen des Typen der Region zurück |
Besitzer

den Namen des Typen der Region. Regionsnamen. Regionstyp.

den Namen des Typen der Region. Regionsnamen. Regionstyp.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +97,4 @@
| `type` | type(): String | Gibt den Namen des Typen der Region zurück |
| `fire` | fire(): Boolean | Gibt den Fire-Mode der Region zurück |
| `freeze` | freeze(): Boolean | Gibt den Freeze-Mode der Region zurück |
| `protect` | protect(): Boolean | Gibt den Protect-Mode der Region zurück |
Besitzer

Modus.

Modus.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +98,4 @@
| `fire` | fire(): Boolean | Gibt den Fire-Mode der Region zurück |
| `freeze` | freeze(): Boolean | Gibt den Freeze-Mode der Region zurück |
| `protect` | protect(): Boolean | Gibt den Protect-Mode der Region zurück |
| `loader` | pvp(): String | Gibt den Status des Loaders des Spielers zurück, die werte sind: `OFF`, `SETUP`, `RUNNING`, `PAUSE`, `END` |
Besitzer

Werte. Und warum zum Henker heißt die Methode pvp?!?

Werte. Und warum zum Henker heißt die Methode pvp?!?
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +101,4 @@
| `loader` | pvp(): String | Gibt den Status des Loaders des Spielers zurück, die werte sind: `OFF`, `SETUP`, `RUNNING`, `PAUSE`, `END` |
Es gibt folgende Variablen:
Besitzer

Warum gibt es hier extra Variablen und nicht wie sonst überall stattdessen getter und setter?

Warum gibt es hier extra Variablen und nicht wie sonst überall stattdessen getter und setter?
Besitzer

Gute frage, aber hatte glaube mal einen grund, xd

Gute frage, aber hatte glaube mal einen grund, xd
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +114,4 @@
| Name | Signature | Beschreibung |
|-----------|--------------------|-------------------------------------------------------------------------------------|
| `mode` | mode(): String | Gibt den Aktuellen TNT-Modus zurück, die werte sind: `ALLOW`, `DENY` oder `ONLY_TB` |
Besitzer

aktuellen. Werte.

aktuellen. Werte.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +116,4 @@
|-----------|--------------------|-------------------------------------------------------------------------------------|
| `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 |
Besitzer

Warum gibt es diese beiden separaten Methoden noch, wenn diese Informationen alle auch in der mode()-Methode enthalten sind?

Warum gibt es diese beiden separaten Methoden noch, wenn diese Informationen alle auch in der mode()-Methode enthalten sind?
Besitzer

das sind shortcuts

das sind shortcuts
Besitzer

wie viel kürzer ist es denn im Lua-Code mit den Shortcuts?

wie viel kürzer ist es denn im Lua-Code mit den Shortcuts?
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +126,4 @@
| 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. |
Besitzer

Du hast sonst immer keinen Punkt am Satzende.

Du hast sonst immer keinen Punkt am Satzende.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +136,4 @@
| Name | Signature | Beschreibung |
|--------------|-------------------------|----------------------------------------------------|
| `time` | time(): String | Gibt die aktuelle Zeit im format `HH:mm:ss` zurück |
Besitzer

Format

Format
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +137,4 @@
| 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 Server zurück |
Besitzer

Serverstart

Serverstart
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +139,4 @@
| `time` | time(): String | Gibt die aktuelle Zeit im format `HH:mm:ss` zurück |
| `ticks` | ticks(): Number | Gibt die Ticks seit start des Server 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 |
Besitzer

Es sollte evtl. auch einmal aufgeführt sein, wie Itemtypen und Materialien formatiert sein müssen bzw. welche Werte dort erwartet werden (können). Ist das "1", "stone" oder "STONE"?

Es sollte evtl. auch einmal aufgeführt sein, wie Itemtypen und Materialien formatiert sein müssen bzw. welche Werte dort erwartet werden (können). Ist das "1", "stone" oder "STONE"?
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +145,4 @@
| Name | Beschreibung |
|-------|--------------|
| `tps` | [tps](#tps) |
Besitzer

Warum hier wieder Variablen? Und warum gibt es diese API im Server, wo es noch die TPS-Api gibt?

Warum hier wieder Variablen? Und warum gibt es diese API im Server, wo es noch die TPS-Api gibt?
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +148,4 @@
| `tps` | [tps](#tps) |
#### tps
Die `tps`-Api stellt Funktionen zur Verfügung, die die TPS des Servers betreffen.
Besitzer

Betrifft auch vorige und spätere Vorkommnisse: Nicht Api, sondern API. Und wäre es in dem Kontext nicht eigentlich eher ein "Modul" oder "Package"? (K.a. was der typische Begriff im Lua-Umfeld dafür ist, aber ich bezweifle, dass dieser Api lautet).

Betrifft auch vorige und spätere Vorkommnisse: Nicht Api, sondern API. Und wäre es in dem Kontext nicht eigentlich eher ein "Modul" oder "Package"? (K.a. was der typische Begriff im Lua-Umfeld dafür ist, aber ich bezweifle, dass dieser Api lautet).
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +153,4 @@
| Name | Signature | Beschreibung |
|--------------|----------------------|-------------------------------------------------------------------|
| `current` | current(): Number | Gibt die aktuelle TPS zurück |
Besitzer

Es gibt kein "aktuell". Welchem Wert entsprechen diese TPS?

Es gibt kein "aktuell". Welchem Wert entsprechen diese TPS?
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +159,4 @@
| `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 den TPS-Limit zurück |
Besitzer

ich glaube eher das Limit statt der Limit?

ich glaube eher das Limit statt der Limit?
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +161,4 @@
| `tenMinute` | tenMinute(): Number | Gibt die durchschnittliche TPS über die letzte 10 Minuten zurück |
| `limit` | limit(): Number | Gibt den TPS-Limit zurück |
# SteamWar.de-Global-Api
Besitzer

Was unterscheidet diese Global-API von der obengenannten global-API? Absolut verwirrend, muss mindestens unbenannt werden.

Was unterscheidet diese Global-API von der obengenannten global-API? Absolut verwirrend, muss mindestens unbenannt werden.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +169,4 @@
| Name | Signature | Beschreibung |
|-----------|-----------------------------------|-----------------------------------------------------------------------------|
| `event` | event(EventType, Function(Any)) | Registriere einen Event Handler |
Besitzer

Eher Listener statt Handler? (Bukkitkontext, es sei denn, Handler ist ein Lua-Typischer Begriff)

Eher Listener statt Handler? (Bukkitkontext, es sei denn, Handler ist ein Lua-Typischer Begriff)
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +170,4 @@
| Name | Signature | Beschreibung |
|-----------|-----------------------------------|-----------------------------------------------------------------------------|
| `event` | event(EventType, Function(Any)) | Registriere einen Event Handler |
| `command` | command(String, Function(Args)) | Registriere einen Command |
Besitzer

Befehl

Befehl
Chaoscaot markierte diese Unterhaltung als gelöst
@ -0,0 +182,4 @@
## Hotkeys
Hotkeys werden im folgenden Format angegeben: `MODIFIER+KEY`. Es gibt folgende Modifier:
- `ctrl`
Besitzer

Jetzt großgeschrieben oder kleingeschrieben? Unklar.

Jetzt großgeschrieben oder kleingeschrieben? Unklar.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +189,4 @@
Es können auch mehrere Modifier angegeben werden, z.B. `ctrl+shift+alt+c`. Die Reihenfolge der Modifier und des Keys ist egal.
## Event Type
Besitzer

Eventtypen

Eventtypen
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +190,4 @@
Es können auch mehrere Modifier angegeben werden, z.B. `ctrl+shift+alt+c`. Die Reihenfolge der Modifier und des Keys ist egal.
## Event Type
Einige Events sind auch cancelbar, dazu muss die Funktion `setCanceled()` aufgerufen werden.
Besitzer

Abbrechbar. Diesen Satz am besten unter die Tabelle.

Abbrechbar. Diesen Satz am besten unter die Tabelle.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +191,4 @@
## Event Type
Einige Events sind auch cancelbar, dazu muss die Funktion `setCanceled()` aufgerufen werden.
Es gibt folgende Event-Typen:
Besitzer

Dopplung mit Überschrift.

Dopplung mit Überschrift.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +195,4 @@
| Name | Wenn | Parameter | Cancelbar |
|---------------------|-----------------------------------------------------|---------------------------------|-----------|
| `FF` | Beim Doppelten Drücken der Swap-Hands taste | NIL | false |
Besitzer

Lieber DoubleSwap statt FF nennen.

Lieber DoubleSwap statt FF nennen.
Besitzer

Würde ich nicht machen, weil wir es so schon eingeführt hatten vorher.

Würde ich nicht machen, weil wir es so schon eingeführt hatten vorher.
Besitzer

Das macht es dennoch nicht klarer verständlich für neue, und wenn man das sowieso einmal komplett neu macht, sollte man es richtig machen.

Das macht es dennoch nicht klarer verständlich für neue, und wenn man das sowieso einmal komplett neu macht, sollte man es richtig machen.
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +198,4 @@
| `FF` | Beim Doppelten Drücken der Swap-Hands taste | NIL | false |
| `PlaceBlock` | Beim Platzieren von Blöcken | [BlockEvent](#blockevent) | true |
| `BreakBlock` | Beim Zerstören von Blöcken | [BlockEvent](#blockevent) | true |
| `RightClick` | Beim Rechts klicken | [InteractEvent](#interactevent) | true |
Besitzer

Rechtsklick

Rechtsklick
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +199,4 @@
| `PlaceBlock` | Beim Platzieren von Blöcken | [BlockEvent](#blockevent) | true |
| `BreakBlock` | Beim Zerstören von Blöcken | [BlockEvent](#blockevent) | true |
| `RightClick` | Beim Rechts klicken | [InteractEvent](#interactevent) | true |
| `LeftClick` | Beim Links Klicken | [InteractEvent](#interactevent) | true |
Besitzer

Linksklick

Linksklick
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +205,4 @@
| `TNTExplodeInBuild` | Wenn ein TNT in der aktuellen Bau Region explodiert | [Position](#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 |
Besitzer

Item droppt

Item droppt
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +206,4 @@
| `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 |
Besitzer

stirbt

stirbt
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +263,4 @@
Hello, World!
```
## BauGUI on FF
Besitzer

DoubleSwap

DoubleSwap
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +264,4 @@
```
## BauGUI on FF
Das default Script für das Öffnen des BauGUIs
Besitzer

Standardskript

Standardskript
Chaoscaot markierte diese Unterhaltung als gelöst
SCRIPT.md Veraltet
@ -0,0 +288,4 @@
```
## Paste Hotkey
Ein Hotkey zum pasten des Clipboard-Inhalts.
Besitzer

Pasten

Pasten
Chaoscaot markierte diese Unterhaltung als gelöst
Chaoscaot hat 1 Commit 2023-06-06 17:40:43 +02:00 hinzugefügt
Fixing...
Einige Prüfungen sind fehlgeschlagen
SteamWarCI Build failed
29851ca4ca
Signed-off-by: Chaoscaot <chaoscaot@zohomail.eu>
Chaoscaot hat 1 Commit 2023-06-07 21:46:43 +02:00 hinzugefügt
Fixing...
Einige Prüfungen sind fehlgeschlagen
SteamWarCI Build failed
5a09ece591
Signed-off-by: Chaoscaot <chaoscaot@zohomail.eu>
Chaoscaot hat 1 Commit 2023-06-07 21:51:48 +02:00 hinzugefügt
Fixing...
Einige Prüfungen sind fehlgeschlagen
SteamWarCI Build failed
70c9bb1d06
Signed-off-by: Chaoscaot <chaoscaot@zohomail.eu>
Chaoscaot hat 1 Commit 2023-06-07 21:52:26 +02:00 hinzugefügt
Fixing...
Einige Prüfungen sind fehlgeschlagen
SteamWarCI Build failed
ce389ca881
Signed-off-by: Chaoscaot <chaoscaot@zohomail.eu>
Lixfel hat eine neue Abhängigkeit 2023-06-23 15:25:02 +02:00 hinzugefügt
Chaoscaot hat 1 Commit 2023-07-01 13:40:58 +02:00 hinzugefügt
Fixing...
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
706eb17362
Signed-off-by: Chaoscaot <chaoscaot@zohomail.eu>
YoyoNow hat 1 Commit 2023-07-16 20:04:24 +02:00 hinzugefügt
„SCRIPT.md“ ändern
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
74f7653a58
YoyoNow hat 1 Commit 2023-07-17 16:42:50 +02:00 hinzugefügt
Merge branch 'master' into lua
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
445b85cfaa
YoyoNow hat Commit 9598838d2e in master 2023-07-17 16:44:04 +02:00 gemerged
YoyoNow löschte die Branch lua 2023-07-17 16:44:06 +02:00
Anmelden, um an der Diskussion teilzunehmen.
Keine Beschreibung angegeben.