[Plugins schreiben] Brauch mal eure Hilfe

Dieses Thema im Forum "Server Plugins" wurde erstellt von PROgramm, 21. Juni 2012.

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

    PROgramm

    Registriert seit:
    21. Juni 2012
    Beiträge:
    41
    Hey,

    habe die Tage angefangen, mich mit Java, Eclipse und Plugins zu beschäftigen.

    Jetzt brauch ich eure Hilfe:


    package me.rBxxx.ZDC;

    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;

    public class *****extends JavaPlugin {

    PluginManager manager = this.getServer().getPluginManager();


    public void onEnable(){
    System.out.println("[*****]-Plugin erfolgreich aktiviert");
    System.out.println("[*****]-by *****");
    }

    public void onDisable(){
    System.out.println("[*****]-Plugin erfolgreich deaktiviert");
    }

    public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args){
    boolean erfolg = false;
    Player p = (Player)sender;
    if(cmd.getName().equalsIgnoreCase("*****")){
    if(args.length == 0){
    p.sendMessage(ChatColor.GREEN + "Dies ist ein Plugin von *****");
    float health = p.getHealth();
    p.sendMessage("Deine Gesundheit " + health);
    p.setHealth(10);
    p.sendMessage("Du wurdest geheilt");

    erfolg = true;


    } else {
    erfolg = false;

    }
    }
    return erfolg;


    }


    }


    Soo, die ***** stehen im richtigen Script nicht da, sondern der Servername, und dies soll ja keine Fremdwerbung sein ^

    Meine eigentliche Frage:


    public void EventRegister(){{ .....

    wo muss das hin ?

    Denn ich habs vor die letzte Klammer gesetzt und wenn ich dann eingebe:

    manager.RegisterEvent(Event.Type.BLA BLA BLA)...
    wird mir das Type nicht angezeigt, da kommt nur .this... -.-'

    Kann mir mal jemand helfen


    Mfg
     
    #1
  2. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Ich schreib dir das ganze ding neu, und schöner.
    Edit:
    Code (Text):
    1. import org.bukkit.Bukkit;
    2. import org.bukkit.ChatColor;
    3. import org.bukkit.command.Command;
    4. import org.bukkit.command.CommandSender;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.plugin.java.JavaPlugin;
    7.  
    8. public class HealPl extends JavaPlugin {
    9. public void onEnable(){
    10. System.out.println("[Heal]-Plugin erfolgreich aktiviert");
    11. System.out.println("[Heal]-by ");
    12. }
    13.  
    14. public void onDisable(){
    15. System.out.println("[Heal]-Plugin erfolgreich deaktiviert");
    16. }
    17.  
    18. public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args){
    19.     if(cmd.getName().equalsIgnoreCase("heal")) {
    20.         if(sender instanceof Player) {
    21.             Player p = Bukkit.getServer().getPlayer(sender.getName());
    22.             p.sendMessage(ChatColor.GREEN + "Dies ist ein Plugin von *****");
    23.             p.sendMessage("Deine Gesundheit " + p.getHealth());
    24.             p.setHealth(20); //Achtung setze es auf 20 das sind 10 Halbe Herzen also das Maximum
    25.             p.sendMessage("Du wurdest geheilt");
    26.             return true;
    27.         }
    28.         else {
    29.             sender.sendMessage("Nur Spieler können das ausführen!");
    30.             return true;
    31.         }
    32.     }
    33.     return false;
    34. }
    35. }
    Wozu brauchst du das?
    Du benutzt nur das OnCommand event.
    Alternativ kannst du auch mein Tutorial lesen: [Biete][HowTo] Bukkit Plugins Programmieren
     
    #2
  3. PROgramm
    Offline

    PROgramm

    Registriert seit:
    21. Juni 2012
    Beiträge:
    41
    Weil ich als "Vorlage" ein Video habe...

    Außerdem kann man ja mehrere Events machen, statt nur das OnCommand...

    "LinkVorlage"
     
    #3
  4. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    #4
  5. De_nni_FREAKY
    Offline

    De_nni_FREAKY

    Registriert seit:
    21. Juni 2012
    Beiträge:
    1
    ich weiß es past nicht zum thema aber ,wen ich in einem server bin und mich dan anmelden muss soll ich dan den register und pasword von hier nemen oder was :?: :?: :?: MinecraftSheep MinecraftPig MinecraftNotch MinecraftMooshroom MinecraftMagmacube MinecraftGhast MinecraftEnderman MinecraftDragon MinecraftCreeper MinecraftCow MinecraftChicken MinecraftChar MinecraftCavespider MinecraftBlaze :?: :?: :?: :?:
     
    #5
  6. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Mach ein eigenes Thema auf, und lösche diesen Post.
    P.s: Achte ein bisschen auf deine Rechtschreibung.
     
    #6
  7. Dean
    Offline

    Dean Administrator Entwickler

    Registriert seit:
    11. August 2011
    Beiträge:
    2.109
    Ort:
    NRW
    Minecraft:
    DeanR
    nutz lieber die Suche anstatt ein neues Thema zu eröffnen.

    und jetzt bitte bach to Topic
     
    #7
  8. PROgramm
    Offline

    PROgramm

    Registriert seit:
    21. Juni 2012
    Beiträge:
    41
    Gibts iwie ein aktuelles Video?


    (Link wäre nett)

    MFG
     
    #8
  9. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    #9
  10. Cabraca
    Offline

    Cabraca

    Events sind eigentlich relativ einfach.

    Zuerst erstellst du eine Listener Klasse. Wie du die nennst ist egal.

    Da packst du dann eine Funktion rein in der dein Code rein kommt,welcher bei dem Event ausgeführt wird. Wichtig ist hier dass die Klasse das "Listener"-Interface implementiert:

    @EventHandler sagt dem Eventhandler, dass er sich die funktion anschauen soll. Wichtig ist, dass du das event als parameter übergibst. Die Priorität regelt, in welcher reihenfolge die funktionen abgearbeitet werden. Je höher die Prio ist desto früher wird die funktion aufgerufen. Gibst du nur @EventHandler an wird die normale priorität verwendet

    Dein Listener sieht jetzt so aus:
    import org.bukkit.event.Listener;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.player.PlayerLoginEvent;

    public class LoginListener implements Listener {

    @EventHandler(priority = EventPriority.HIGH)
    public void highLogin(PlayerLoginEvent event) {
    // Some code here
    }
    }

    Damit ist deine Listenerklasse fertig. Jetzt musst du die Listenerklasse und alle darin enthaltenen Events nurnoch anmelden bei bukkit. Das machst du normalerweise in der "onEnable" Funktion

    Und schon sollte alles laufen.

    Das steht aber alles auch genauso in Bennis link.
    In den JavaDocs (http://jd.bukkit.org/apidocs/) findest du alle möglichen Events.

    MFG
     
    #10
Status des Themas:
Es sind keine weiteren Antworten möglich.