[Votifier] HTTPListener 1.1 - Your freedom, all possibilities!

Dieses Thema im Forum "Server Plugins" wurde erstellt von GlowDragon, 22. Mai 2012.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. GlowDragon
    Offline

    GlowDragon

    Registriert seit:
    23. Juli 2011
    Beiträge:
    131
    [align=center]
    [​IMG]
    [/align]
    Dieser Listener für Votifier ruft bei jeder Bewertung eine bestimmte Datei auf eurer Website auf und sendet den Benutzernamen und den Namen der Serverliste an die Website.
    Sehr nützlich, wenn ihr die Anzahl der Bewertungen auf eurer Website oder in Foren, etc. anzeigen wollt. Außerdem könnt ihr vom Webserver aus Befehle zum Minecraft-Server senden.

    Beispiele:
    Gib für jede Serverliste einen bestimmen Betrag Geld

    Code (Text):
    1. if ($website == "minecraft-server.eu")
    2. {
    3.     echo("money give ".$username." 0.20\n");
    4.     echo("broadcast ".$username." hat für diesen Server auf minecraft-server.eu gevotet\n");
    5. }
    6. else if ($website == "minestatus.net")
    7. {
    8.     echo("money give ".$username." 0.30\n");
    9.     echo("broadcast ".$username." hat für diesen Server auf minestatus.net gevotet\n");
    10. }
    Überprüfe das Passwort für zusätzliche Sicherheit
    Code (Text):
    1. $password = $_POST["password"];
    2.  
    3. if ($password == "1234")
    4. {
    5.     // Mach etwas...
    6. }
    Gib Items und Erfahrungspunkte
    Code (Text):
    1. $username = $_POST["username"];
    2. echo("give ".$username." diamond 2\n");
    3. echo("xp ".$username." 100\n");
    Logge den Vote in eine MySQL-Datenbank
    Du musst eine Tabelle mit dem Namen "votes" erstellen mit 3 Spalten: username (TEXT), website (TEXT) und timestamp (TIMESTAMP)
    Code (Text):
    1. // MySQL Login
    2. mysql_connect("localhost", "username", "password");
    3. mysql_select_db("database");
    4. mysql_query("INSERT INTO votes SET username = '".$_POST["username"]."', website = '".$_POST["website"]."', timestamp = NOW()");
    Weitere Beispiele folgen

    Demo
    Ihr könnt hier voten und die Anzahl der Votes auf dieser Website in der Rechten Box sehen.

    [​IMG]
    Ich biete kostenpflichtigen Support an für sehr spezielle Funktionen für eure Website. Sieht es als Spende!

    Links
    HTTPListener im Votifier-Forum

    Changelog
    Version 1.1:
    - Der Befehl wird nur ausgeführt, wenn man mit "/" beim "echo" beginnt
    - Die Nachricht wird im Server an alle Spieler geschickt, wenn man nicht mit "/" beim "echo" beginnt (Formatierung mit & möglich!)
    - Beispiele behoben! Nur der erste Befehl funktionierte, ich vergaß, "\n" am Ende bei jedem "echo" hinzuzufügen
    Version 1.0:
    - Veröffentlichung des Listeners
     
    #1
  2. Xhadius
    Offline

    Xhadius Administrator

    Registriert seit:
    9. März 2012
    Beiträge:
    762
    Ort:
    Freiburg im Breisgau
    Minecraft:
    Xhadius
    Saubere Arbeit!
    Wirklich geil =)
    Was noch rein müsste:
    - Exp
    - Items
    Sonst ist es perfekt =)

    Mfg. Xhadius
     
    #2
  3. GlowDragon
    Offline

    GlowDragon

    Registriert seit:
    23. Juli 2011
    Beiträge:
    131
    Danke fürs Feedback!

    Dazu gibts die Befehle /xp und /give ;D
    Ich schreibe gleich nen Beispiel dafür.
     
    #3
  4. Xhadius
    Offline

    Xhadius Administrator

    Registriert seit:
    9. März 2012
    Beiträge:
    762
    Ort:
    Freiburg im Breisgau
    Minecraft:
    Xhadius
    Oh, schon verstanden :eek:
    Das ist ja noch geiler als ich gedacht hab =)
    Manchmal hab ich nen Brett vorm Kopf^^
     
    #4
  5. GlowDragon
    Offline

    GlowDragon

    Registriert seit:
    23. Juli 2011
    Beiträge:
    131
    Jemand hat in der Umfrage für "Nein, es gibt Listener mit mehr Möglichkeiten" gestimmt, ich bitte darum, mir diesen Listener zu zeigen oder mir mitzuteilen, was an meinem Listener nicht möglich ist :)
     
    #5
  6. little_psycho11
    Offline

    little_psycho11

    Registriert seit:
    5. Februar 2012
    Beiträge:
    641
    Minecraft:
    little_psycho11
    Sobald man Commands auslösen kann hat man eigentlich alle Möglichkeiten...
    Mich würde auch interessieren was Listener mehr hat (=
     
    #6
  7. volibal23
    Offline

    volibal23

    Registriert seit:
    18. Februar 2012
    Beiträge:
    958
    Minecraft:
    volibal23
    Ja das wäre auch geil ;)
    Aber trotzdem sehr gute Arbeit
    werde ich benutzen ;)
     
    #7
  8. GlowDragon
    Offline

    GlowDragon

    Registriert seit:
    23. Juli 2011
    Beiträge:
    131
    Der Listener ist speziell an Leute gerichtet, die eine Serverwebsite haben und PHP können, denn dann kann man die verschiedensten Dinge programmieren, schaut euch meine Website an, dort ist eine Liste der Top Voter und wenn man auf allen drei Serverlisten für den Server votet, kann man eine Stunde lang fliegen. Doch momentan funktioniert mein HTTPListener bei mir garnicht. ^^

    Dazu musst du dich mit PHP und Datenbanken auskennen. Für die Anzeige, dass man noch nicht gevotet hat, musst du Java können.

    Ich werde bald ein neues Plugin veröffentlichen, welches sich VotifierPermissions nennt. Dieses Plugin ermöglicht dem Server, einen Spieler mit Zusatzrechten für begrenzte Zeit zu belohnen, sei es bis zum Ende des Tages (23:59 Uhr) oder für ein paar Stunden. Man kann das Plugin in Kombination mit dem HTTPListener benutzen!
     
    #8
  9. ApFeLkErN
    Offline

    ApFeLkErN

    Registriert seit:
    13. Mai 2012
    Beiträge:
    147
    Der Zeigt jetzt nur an wie oft man gevotet hat ?
     
    #9
  10. GlowDragon
    Offline

    GlowDragon

    Registriert seit:
    23. Juli 2011
    Beiträge:
    131
    Nein, der Listener macht alles möglich, was man mit der Programmiersprache PHP so alles machen kann! Klar kann man auch eine Liste der häufigsten Voter anzeigen lassen und z.B. alle in der Top 5 wöchentlich eine Belohnung geben und dann den Stand zurücksetzen. Wenn man will, kann man auch andere Programmiersprachen verwenden, die auf die Website zugreifen und z.B. einen Sound abspielen, wenn jemand votet (ist sinnlos, aber möglich ^^)

    Leider ist dieser Listener nur was für Leute, die sich halt mit PHP auskennen, vielleicht füge ich noch ein paar Codebeispiele hinzu, die MySQL voraussetzen.

    Zur Umfrage:
    Wer "Nein" abstimmt, soll auch bitte antworten und den Grund angeben, ich finde keinen Listener, der ansatzweise mehr Möglichkeiten bietet!
     
    #10
  11. serydian
    Offline

    serydian

    Registriert seit:
    26. Mai 2012
    Beiträge:
    2
    Hey ich habe ein Problem
    Code (Text):
    1. 2012-06-25 10:55:26 [SEVERE] org.bukkit.configuration.InvalidConfigurationException: Top level is not a Map.
    2. 2012-06-25 10:55:26 [SEVERE]    at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:57)
    3. 2012-06-25 10:55:26 [SEVERE]    at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:138)
    4. 2012-06-25 10:55:26 [SEVERE]    at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:105)
    5. 2012-06-25 10:55:26 [SEVERE]    at HTTPListener.loadConfiguration(HTTPListener.java:72)
    6. 2012-06-25 10:55:26 [SEVERE]    at HTTPListener.<init>(HTTPListener.java:21)
    7. 2012-06-25 10:55:26 [SEVERE]    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    8. 2012-06-25 10:55:26 [SEVERE]    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    9. 2012-06-25 10:55:26 [SEVERE]    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    10. 2012-06-25 10:55:26 [SEVERE]    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    11. 2012-06-25 10:55:26 [SEVERE]    at java.lang.Class.newInstance0(Class.java:372)
    12. 2012-06-25 10:55:26 [SEVERE]    at java.lang.Class.newInstance(Class.java:325)
    13. 2012-06-25 10:55:26 [SEVERE]    at com.vexsoftware.votifier.model.ListenerLoader.load(ListenerLoader.java:48)
    14. 2012-06-25 10:55:26 [SEVERE]    at com.vexsoftware.votifier.Votifier.onEnable(Votifier.java:157)
    15. 2012-06-25 10:55:26 [SEVERE]    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:215)
    16. 2012-06-25 10:55:26 [SEVERE]    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337)
    17. 2012-06-25 10:55:26 [SEVERE]    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
    18. 2012-06-25 10:55:26 [SEVERE]    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:256)
    19. 2012-06-25 10:55:26 [SEVERE]    at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:238)
    20. 2012-06-25 10:55:26 [SEVERE]    at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:381)
    21. 2012-06-25 10:55:26 [SEVERE]    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:368)
    22. 2012-06-25 10:55:26 [SEVERE]    at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:197)
    23. 2012-06-25 10:55:26 [SEVERE]    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:432)
    24. 2012-06-25 10:55:26 [SEVERE]    at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    25.  
    Code (Text):
    1. $username = $_POST["username"];
    2. $website = $_POST["website"];
    3.  
    4. if ($website == "minecraft-server.eu")
    5. {
    6.     echo("money give ".$username." 0.20");
    7.     echo("broadcast ".$username." hat fuer diesen Server auf minecraft-server.eu gevotet");
    8. }
    9. else if ($website == "minestatus.net")
    10. {
    11.     echo("money give ".$username." 0.30");
    12.     echo("broadcast ".$username." hat fuer diesen Server auf minestatus.net gevotet");
    13. }
    14. mysql_connect("hostnamme", "benutzername", "passwort");
    15. mysql_select_db("datenbank");
    16. mysql_query("INSERT INTO votes SET username = '".$_POST["username"]."', website = '".$_POST["website"]."', timestamp = NOW()");

    Mysql Daten sind alle richtig
     
    #11
  12. GlowDragon
    Offline

    GlowDragon

    Registriert seit:
    23. Juli 2011
    Beiträge:
    131
    Anscheinend kennst du dich nicht richtig aus. Der Code gehört garnicht in die config.yml, sondern in eine PHP-Datei, die du auf deinem Webspace hochladen musst. In der config.yml gibst du an, wo die Datei liegt, z.B. beispiel.de/beispielordner/beispiel.de.
     
    #12
  13. serydian
    Offline

    serydian

    Registriert seit:
    26. Mai 2012
    Beiträge:
    2
    soll ich einfach nur den link angeben nichts davor?
     
    #13
  14. GlowDragon
    Offline

    GlowDragon

    Registriert seit:
    23. Juli 2011
    Beiträge:
    131
    Ja, bei "requestfile" gibst du den Link zur php-Datei an.
     
    #14
  15. volibal23
    Offline

    volibal23

    Registriert seit:
    18. Februar 2012
    Beiträge:
    958
    Minecraft:
    volibal23
    Stell es bitte auf Bukkit.
    Finde den listener Genial :)
    Und bitte Update es imemr :)
    Ist zwar Leichencamp aber er soll es lesen
     
    #15
  16. GlowDragon
    Offline

    GlowDragon

    Registriert seit:
    23. Juli 2011
    Beiträge:
    131
    Leichencamp? Finde ich nicht, denn Feedback und Verbesserungsvorschläge sind erwünscht!
    Der Listener ist doch bei Bukkit Dev, beim Votifier Forum. Bei neuen Bukkitversionen muss man garnichts updaten, höchstens Votifier ;)
    Und heute lad ich ne neue Version hoch, wo man jemanden private Nachrichten senden kann, wenn er gevotet hat.
     
    #16
  17. volibal23
    Offline

    volibal23

    Registriert seit:
    18. Februar 2012
    Beiträge:
    958
    Minecraft:
    volibal23
    Aso :D Manchmal kann ich echt blöd sein :p

    Und immer weiter machen :D

    Ps: Wenn man die Votes anzeigen lässt belastet das hier die Seite ?
     
    #17
  18. GlowDragon
    Offline

    GlowDragon

    Registriert seit:
    23. Juli 2011
    Beiträge:
    131
    Wenn du diesen Listener benutzt, um die Votes zu "zählen", belastet es die Seite überhaupt nicht, sondern nur die Seite, die vom Listener aufgerufen wird, also deine eigene Website ;D

    Hier kannst du sehen, wie ich den HTTPListener benutze.
     
    #18
  19. -Nützlich für unsere User - daher Angepinnt-
     
    #19
  20. GlowDragon
    Offline

    GlowDragon

    Registriert seit:
    23. Juli 2011
    Beiträge:
    131
    Vielen Dank :)
    Dann hab ich schon mal die Motivation, dran weiter zu arbeiten!
     
    #20
Status des Themas:
Es sind keine weiteren Antworten möglich.