AktiveSign/Schilder

Aus Sandboxgamer
Other Language: English

Die Schilder in AktiveSign werden hier aufgelistet. Auch der Aufbau wird hier erklärt.

Schilder-Liste

Aufbau

Die Schilder von Rising World haben zum größten Teil 4 Zeilen:

Schild mit 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)

Beispiel für ein #-Schild.

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