AktiveSign/Schilder: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) (→API) |
Admin (Diskussion | Beiträge) |
||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 54: | Zeile 54: | ||
== API == | == API == | ||
=== Schilder hinzufügen und auswerten === | === Schilder hinzufügen und auswerten === | ||
package de.sbg.aktivesignbeispiel; | |||
import de.sbg.unity.aktivesign.AktiveSign; | |||
import de.sbg.unity.aktivesign.Events.TestSignEvent; | |||
import de.sbg.unity.aktivesign.Objects.Tester.SignTester; | |||
import de.sbg.unity.aktivesign.Objects.Tester.SignTester.SignTesterStatus; | |||
import net.risingworld.api.Plugin; | |||
import net.risingworld.api.events.EventMethod; | |||
import net.risingworld.api.events.Listener; | |||
public class AktiveSignBeispiel extends Plugin { | |||
private AktiveSign AS; | private AktiveSign AS; | ||
@Override | @Override | ||
public void onEnable() { | public void onEnable() { | ||
AS = (AktiveSign) getPluginByName("AktiveSign"); | AS = (AktiveSign) getPluginByName("AktiveSign"); | ||
//Is AktiveSign installed? | ''//Is AktiveSign installed?'' | ||
if (AS != null) { | if (AS != null) { | ||
// Add Sign | ''// Add Sign'' | ||
AS.Sign.addSign("Exampel"); | AS.Sign.addSign("Exampel"); | ||
AS.Sign.addUserSign("UserExampel"); | AS.Sign.addUserSign("UserExampel"); | ||
} | } | ||
} | } | ||
@Override | @Override | ||
public void onDisable() { | public void onDisable() { | ||
} | } | ||
public class SignListener implements Listener { | public class SignListener implements Listener { | ||
//Calls, if a player interact or write as sign | //Calls, if a player interact or write as sign | ||
@EventMethod | @EventMethod | ||
public void onSignTestEvent(TestSignEvent event) { | public void onSignTestEvent(TestSignEvent event) { | ||
//.... Do Someting | ''//.... Do Someting'' | ||
// Exampel: | ''// Exampel:'' | ||
if (AS.Sign.isAktiveSign(event.getLine(1))) { //getLine(1) = Line 1; | if (AS.Sign.isAktiveSign(event.getLine(1))) { //getLine(1) = Line 1; | ||
// Sign is a AktiveSign | // Sign is a AktiveSign | ||
if (AS.Sign.isUserSign(event.getLine(1))) { | if (AS.Sign.isUserSign(event.getLine(1))) { | ||
// Sign is UserSign | // Sign is UserSign | ||
// If sign is UserSign, the sign is AktivSign, too. | // If sign is UserSign, the sign is AktivSign, too. | ||
if (event.getLine(1).equals("[UserExampel]")) { | if (event.getLine(1).equals("[UserExampel]")) { | ||
//Do Something | //Do Something | ||
} | } | ||
} else { | } else { | ||
//Sign is normal AktiveSign | //Sign is normal AktiveSign | ||
if (event.getLine(1).equals("[Exampel]")) { | if (event.getLine(1).equals("[Exampel]")) { | ||
if (event.getLine(2).toLowerCase().equals("exampelvalue")) { | if (event.getLine(2).toLowerCase().equals("exampelvalue")) { | ||
Zeile 141: | Zeile 141: | ||
event.setSignTesterStatus(SignTester.SignTesterStatus.Nothing); | event.setSignTesterStatus(SignTester.SignTesterStatus.Nothing); | ||
} | } | ||
} | } | ||
} | |||
} | Oder: [https://github.com/GERSandboxgamer/AktiveSignAPIExampel/blob/main/AktiveSignAPIExampel.java GitHub] | ||
[[Category:AktiveSign|Schilder]] | [[Category:AktiveSign|Schilder]] | ||
[[Category:AktiveSign/Schilder|#]] | [[Category:AktiveSign/Schilder|#]] |
Aktuelle Version vom 26. Juli 2023, 20:19 Uhr
Other Language: English
Die Schilder in AktiveSign werden hier aufgelistet. Auch der Aufbau wird hier erklärt.
Schilder-Liste
- AdminHelp (Kommt noch)
- Gamemode
- Heal
- Journal (Kommt noch)
- setGroup
- ShowMap (Kommt noch)
- Spawn
- Teleport
- Time
- Warp
- Weather
Aufbau
Die Schilder von Rising World haben zum größten Teil 4 Zeilen:
- In die 1. Zeile kommt der Befehl rein, der Ausgeführt werden soll (z. B. "[Warp]").
- Die 2. Zeile enthält weitere Argumente zum Befehl.
- Zeile 3. kann optional eine (oder mehrere) Servergruppe oder ein Spieler (UID) eingetragen werden. Wenn dies der Fall ist, können nur Spieler dieses Schild verwenden, die die Servergruppe oder die UID haben. Die Zeile kann man auch leer lassen.
- In Zeile 4 kann ein Preis eingetragen werden, den der Spieler bezahlen muss, um mit diesem Schild interagieren zu können. Man benötigt das Plugin iConomy, um dies nutzen zu können. (Siehe Preise)
Servergruppen - Zeile 3
In Zeile 3 kann (nicht muss) eine/mehrere Servergruppe/n eingetragen werden. Der Spieler muss dann Mitglied einer dieser Servergruppen sein. Die Gruppe selbst, muss vorhanden sein, damit sie eingetragen werden kann.
Wenn man mehrere Servergruppen hinzufügen möchte, kann das so gemacht werden:
Gruppe1 Gruppe2 Gruppe3
usw.
Preise - Zeile 4 (Benötigt: iConomy)
Viele Schilder in AktiveSign können in der 4. Zeile einen Preis enthalten. Diesen Preis muss der Spieler zuvor bezahlen können, wenn er das Schild ausführen will.
Erlaubt sind:
3 $
3,50 $
3.50 $
Nicht erlaubt ist:
$ 3
$3
3$
3,50$
3.50$
- etc.
Die Währung hängt von der Einstellung in iConomy ab. ($ = Standard)
Das #-Symbol (Demo)
Das "#"-Symbol macht ein AktiveSign-Schild zu einem Demo-Schild, sobald es in der 1. Zeile steht. Man kann mit einem Demo-Schild nicht interagieren. Deswegen können Demo-Schilder von jedem geschrieben werde (Auch Admin-Schilder wie "[Warp]"). Demo-Schilder sind gut geeignet, um anderen Spielern zu zeigen, wie AktiveSign funktioniert.
"UserSign"
Ein "UserSign" ist ein Schild, das sowohl vom Admin, als auch vom Spieler aufgestellt und zerstört werden darf. Das "UserSign" ist im Code nochmal extra gespeichert, wird aber auch als AktivSign anerkannt. Um in der API ein "UserSign" anlegen zu können, muss das neue Schild sowohl in der AktiveSign-Liste als auch in der UserSign-Liste sein.
API
Schilder hinzufügen und auswerten
package de.sbg.aktivesignbeispiel; import de.sbg.unity.aktivesign.AktiveSign; import de.sbg.unity.aktivesign.Events.TestSignEvent; import de.sbg.unity.aktivesign.Objects.Tester.SignTester; import de.sbg.unity.aktivesign.Objects.Tester.SignTester.SignTesterStatus; import net.risingworld.api.Plugin; import net.risingworld.api.events.EventMethod; import net.risingworld.api.events.Listener; public class AktiveSignBeispiel extends Plugin { private AktiveSign AS; @Override public void onEnable() { AS = (AktiveSign) getPluginByName("AktiveSign"); //Is AktiveSign installed? if (AS != null) { // Add Sign AS.Sign.addSign("Exampel"); AS.Sign.addUserSign("UserExampel"); } } @Override public void onDisable() { } public class SignListener implements Listener { //Calls, if a player interact or write as sign @EventMethod public void onSignTestEvent(TestSignEvent event) { //.... Do Someting // Exampel: if (AS.Sign.isAktiveSign(event.getLine(1))) { //getLine(1) = Line 1; // Sign is a AktiveSign if (AS.Sign.isUserSign(event.getLine(1))) { // Sign is UserSign // If sign is UserSign, the sign is AktivSign, too. if (event.getLine(1).equals("[UserExampel]")) { //Do Something } } else { //Sign is normal AktiveSign if (event.getLine(1).equals("[Exampel]")) { if (event.getLine(2).toLowerCase().equals("exampelvalue")) { if (!event.isInteraction()) { //Player write the sign! if (event.getPlayer().isAdmin()) { event.setSignTesterStatus(SignTester.SignTesterStatus.OK); //Player can write the sign } else { event.setSignTesterStatus(SignTester.SignTesterStatus.Permission); //Player have not enouth permissions! } } else { // Player interact with sign //Optinal: SignTesterStatus st = AS.SignPermission.hasPermissionAndMoney(event.getPlayer(), event.getLine(3), event.getLine(4), event.isInteraction()); if (st != SignTesterStatus.Permission && st != SignTesterStatus.Money) { // Player has permission and enouth money! // Do Something event.setSignTesterStatus(SignTesterStatus.OK); } else { //Player has not enouth permission or money! event.setSignTesterStatus(st); } } } else { event.setSignTesterStatus(SignTesterStatus.Misspelled); //sign was misspelled } } //Optinal: More Sign Commands } } event.setSignTesterStatus(SignTester.SignTesterStatus.Nothing); } } }
Oder: GitHub