lua 2 Java converter

  • Wie es aussieht handelt es dabei um einen Converter zwischen Lua und Javascript. Bitte Javascript nicht mit Java verwechseln, auch wenn der Name ähnlich ist, sind das zwei gänzlich verschiedene Dinge ;)
    Aber selbst wenn es einen Converter für Lua zu Java gibt: Das bringt einen kaum weiter, da dieser Konverter ja explizit auf Rising World zugeschnitten sein müsste. Irgendwo müsste genauestens definiert sein, welche Lua Funktion nun wie in Java heißt. Wir haben uns bei der Gestaltung der API aber weitgehend an der alten Lua API orientiert, sodass es weiterhin starke Ähnlichkeiten gibt.


    Grundsätzlich unterscheidet sich die Programmierung eines Plugins mit der neuen API nur unwesentlich von der Erstellung eines Scripts für Lua. Es sind eher kleinere syntaktische Dinge, auf die man achten muss, die in Java anders gemacht werden. Beispiele:


    • Bei Lua gab es keine Typisierung, man konnte einer Variable nicht ansehen, um was für einen Typ es sich handelt. Man schrieb einfach nur local meineVariable = ..., was einerseits bequem ist, aber wie gesagt, keine Info darüber gibt ob in dieser Variable nun ein Text, eine Zahl oder ein Objekt gespeichert ist. Bei Java muss explizit angegeben werden, um was für einen Typ es sich handelt. Die "primitiven" Datentypen auf die man sich bei der RW Programmierung konzentrieren muss sind int (ganze Zahlen), float (Kommazahlen) und stellenweise auch byte (ganze Zahlen, die aber nicht kleiner als -128 und 127 sein können) und short (ebenfalls ganze Zahlen, diesmal ist die höchste repräsentierbare Zahl 32767). Darüberhinaus gibt es noch String, was Zeichenketten, also Texte repräsentiert. Es gibt zwar noch ein paar weitere primitive Datentypen, nämlich char, double und long, diese sind fürs Erste aber nicht relevant.
      Natürlich gibt es dann noch eine Reihe Objekte, zB das Player Objekt (was einen Spieler repräsentiert). Das war bei Lua im Prinzip dasselbe, aber man konnte es nicht sehen, da alles von dem universellen "local" verschlungen wurde.
      Bei Java sieht die Deklarierung einer Variable also zB so aus: int meineZahl = 42; oder float meineKommazahl = 42.12345f; (floats haben immer kleines f am Ende) oder String meinText = "Hallo Welt"; oder Player meinSpieler = Plugin.getServer().getPlayer("lenko");.
      Man muss sich merken, dass sich der Variablentyp bei Java niemals ändern kann, d.h. ich kann einer int-Variable niemals einen Text zuweisen, das geht nicht. Ich kann zwar jederzeit einen anderen Wert vom gleichen Typ zuweisen (d.h. der "meineZahl" Variablen kann man ohne Probleme statt der 42 auch jederzeit ein 0, eine -41231, eine 200 oder eine 1 zuweisen), aber niemals ein anderer Typ (int meineZahl = "Test"; führt also unweigerlich zu einem Fehler).
    • Bei Java wird eine Zeile immer mit einem Semikolon beendet, bei Lua ist das optional
    • Wenn man auf ein Array zugreifen möchte, ist der erste Index darin die 0 (beispiel: int ersterWert = meinZahlenArray[0];, nicht 1 wie bei Lua



Participate now!

Don’t have an account yet? Create a new account now and be part of our community!