Ein bestimmtes Plugin per API & Konsole deaktivieren können

  • Hallo red51 ,


    kannst du in die neue API eine Funktion einbauen, damit man ein Plugin auch wieder deaktivieren kann (so, als wäre es nicht geladen worden).

    Wenn das Plugin z.B. einen Fehler wirft, dann wäre es glaube ich auch für die Serverbetreiber gut, wenn das Plugin sich dann deaktiviert, damit der Fehler nicht nochmal kommt

    und somit das Spiel irgendwann zum Absturz kommt. Oder wenn andere Plugins fehlen, dies es aber brauch, dann würde ich es auch deaktivieren.


    Für mich wäre es auch gut, wenn man in der Konsole per Befehl nur ein bestimmtes Plugin deaktivieren bzw. aktivieren kann und nicht immer alle oder keiner. :D


    Mir würde z.B. folgendes helfen: plugin.unloadPlugin(). Mit dieser Methode wird die onDesable() ausgeführt und der Server verhält sich so, als gäbe es das Plugin nicht.

  • Sandboxgamer

    Changed the title of the thread from “Plugin deaktivieren auch per API deaktivieren können” to “Ein bestimmtes Plugin per API & Konsole deaktivieren können”.
  • Ich finde die Idee zwar gut, aber wozu sollte das nötig sein? Um Fehlerquellen zu finden?

    Warum das Plugin nicht gleich rauswerfen?

  • Würde hier in Gedanken noch weiter gehen. Hier wäre es doch auch toll wenn man es nicht nur ausschalten kann sondern auch wieder an machen könnte.

    Ein Plugin muss ja nicht unbedingt defekt sein, es könnte ja auch sein das es einfach zuviel einem Spieler an rechte oder Möglichkeiten gibt.

  • Ich habe das mal auf unsere Todo-Liste gepackt :) Also sowohl ein Konsolenbefehl als auch eine API für das Plugin selbst.


    Würde hier in Gedanken noch weiter gehen. Hier wäre es doch auch toll wenn man es nicht nur ausschalten kann sondern auch wieder an machen könnte.

    Als Konsolenbefehl könnten wir das anbieten (wobei meistens der generische "reloadplugins" Befehl ausreichen könnte). Für die API hingegen geht das natürlich nicht (da ein Plugin ja keinen Code mehr ausführen kann sobald es entladen wurde) ^^

  • Konsolenbefehl könnten wir das anbieten (wobei meistens der generische "reloadplugins" Befehl ausreichen könnte). Für die API hingegen geht das natürlich nicht (da ein Plugin ja keinen Code mehr

    Der Befehl galt bisher ja wenn für alle Plugins und nicht für einzelne. Das würde das bedeuten nur "RP" alle Plugins oder "RP xxxxxxx" dann nur das eine ?

  • Ich finde die Idee zwar gut, aber wozu sollte das nötig sein? Um Fehlerquellen zu finden?

    Warum das Plugin nicht gleich rauswerfen?

    Ein Beispiel hast du schon genannt.


    Ein weiters ist:

    Ich habe z.B mein Schilderplugin. Es gab Zeiten, da hatte mein UserShop Fehler geschmissen, weil irrgend ein Schild wieder falsch geschrieben war. Das Problem war aber, das ja jeder mit diesem Schild interagieren kann ( auch wenn der Admin nicht anwesend ist). Wenn jemand den Serveradmin ärgern will, könnte er Theoretisch den Server zum Absturz bringen. Deswegen lieber auf nummer sicher gehen.:D


    und des weitern habe ich oben noch erwähnt, das manche Plugins erst funktionieren, wenn andere Plugins installiert ist. In der API kann man durchaus nachprüfen, ob das gewisse Plugin da ist oder nicht. Wenn nicht, gibt das Plugin in der Konsole eine Meldung, dass das Plugin fehlt und schaltet sich ab, um Fehler zu vermeiden.

  • Der Befehl galt bisher ja wenn für alle Plugins und nicht für einzelne. Das würde das bedeuten nur "RP" alle Plugins oder "RP xxxxxxx" dann nur das eine ?

    Ich weiß leider nicht, ob wir das in zuverlässiger Form umsetzen können... generell ist das nachträgliche Laden und Entladen von Code nicht so wirklich vorgesehen in der Java VM... daher sind unsere Befehle "reloadplugins" und "unloadplugins" auch immer mit etwas Vorsicht zu genießen (wobei ich im Laufe der Zeit noch keine Probleme diesbezüglich entdecken konnte).

    Momentan werden beim Neuladen alle Plugins entladen und alle Resourcen, die mit der Plugin API zusammenhängen, freigegeben - dadurch wird sichergestellt, dass beim erneuten Laden eines Plugins kein Konflikt auftritt. Wenn wir aber nur einzelne Plugins neuladen wollen, können wir nicht alle Resourcen der API freigeben (da ja andere Plugins dann noch weiterlaufen sollen), und das könnte möglicherweise für Schwierigkeiten sorgen...

  • Schauen wir mal :)

    Erstmal muss die API raus kommen, damit unsere Programmierer hier auch nicht mehr warten müssen. Dann wird man später sehen was evtl möglich sein könnte.


    Ich würde es aber toll finden wenn es vielleicht die Möglichkeit geben würde das das teleportieren deaktiviert werden kann und in gleichem aber Teleporter auf der Welt dafür bereit stehen.


    Denke das dies auch nur über die zukünftige API gehen wird.

Participate now!

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