ServerPlugin ArrayList geht nicht

Dieses Thema im Forum "Programmierung" wurde erstellt von Scrumplex, 22. Februar 2014.

  1. Scrumplex
    Offline

    Scrumplex

    Registriert seit:
    10. Februar 2014
    Beiträge:
    8
    Ort:
    Herten
    Minecraft:
    TheSCHFan
    Hallo Community,
    ich erstelle zurzeit ein plugin das gestern noch funzte und heute nicht mehr!
    Code:
    Code (Text):
    1. package net.scrumplex.electricstaff;
    2. import java.util.ArrayList;
    3.  
    4. import org.bukkit.Material;
    5. import org.bukkit.Sound;
    6. import org.bukkit.command.Command;
    7. import org.bukkit.command.CommandSender;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.event.EventHandler;
    10. import org.bukkit.event.EventPriority;
    11. import org.bukkit.event.Listener;
    12. import org.bukkit.event.block.Action;
    13. import org.bukkit.event.player.PlayerInteractEvent;
    14. import org.bukkit.event.player.PlayerJoinEvent;
    15. import org.bukkit.inventory.ItemStack;
    16. import org.bukkit.inventory.meta.ItemMeta;
    17. import org.bukkit.plugin.java.JavaPlugin;
    18.  
    19. public class Main extends JavaPlugin implements Listener{
    20.     public static ArrayList<String> canfly = new ArrayList<>();
    21.     public static int PlayerAmount = 0;
    22.    
    23.     public void onEnable(){
    24.         System.out.println("[Electric Staff "+this.getDescription().getVersion()+"] Now you can fly!");
    25.         this.getServer().getPluginManager().registerEvents(this, this);
    26.         this.getConfig().addDefault("messages.canfly", "§aNow you can fly!");
    27.         this.getConfig().addDefault("messages.cantfly", "§aSorry but you can't fly anymore!");
    28.         this.getConfig().options().copyDefaults(true);
    29.         this.saveConfig();
    30.     }
    31.    
    32.     public void onDisable(){
    33.        
    34.         System.out.println("[ElectricStaff "+this.getDescription().getVersion()+"] Oh! I think you crashed! See you later!");
    35.     }
    36.     @Override
    37.     public boolean onCommand(CommandSender sender, Command cmd, String lbl, String[] args) {
    38.         Player pl = null;
    39.         if(sender instanceof Player){
    40.             pl = (Player) sender ; 
    41.         }
    42.             //Commands:
    43.             //Command: /es
    44.         if(cmd.getName().equalsIgnoreCase("es")){
    45.             if(pl != null){
    46.                 if(pl.hasPermission("electricstaff.use")){
    47.                     if(args.length != 1){
    48.                         if(canfly.contains(pl.getName())){
    49.                             canfly.add(pl.getName());
    50.                             ItemStack item = new ItemStack(Material.BLAZE_ROD, 1);
    51.                             ItemMeta met =item.getItemMeta();
    52.                             met.setDisplayName("Electric Staff");
    53.                             item.setItemMeta(met);
    54.                             pl.getInventory().addItem(item);
    55.                             pl.sendMessage("§1[Electric Staff]§f" + this.getConfig().getString("messages.canfly"));
    56.                         }else{
    57.                             canfly.remove(pl.getName());
    58.                             pl.sendMessage("§1[Electric Staff]§f" + this.getConfig().getString("messages.cantfly"));
    59.                             }  
    60.                         }
    61.                     }
    62.                 }
    63.             }
    64.  
    65.     return true;
    66.     }
    67.     @EventHandler(priority=EventPriority.HIGH)
    68.     public void onPlayerUse(PlayerInteractEvent event){
    69.         Player p = event.getPlayer();
    70.         if(canfly.contains(p.getName())){
    71.         if(event.getAction().equals(Action.RIGHT_CLICK_BLOCK)){
    72.             if(p.getItemInHand().getType() == Material.BLAZE_ROD){
    73.                 event.setCancelled(true);
    74.                 double Height = 5 / 15D;
    75.                 double Lenght = 16 / 8D;
    76.                 Player pe = event.getPlayer();
    77.                 pe.setVelocity(pe.getLocation().getDirection().setY(Height).multiply(Lenght));
    78.                 pe.playSound(pe.getLocation(), Sound.ENDERDRAGON_WINGS, 1F, 1F);   
    79.                
    80.             }
    81.             }
    82.         }
    83.         if(event.getAction().equals(Action.RIGHT_CLICK_AIR)){
    84.             if(canfly.contains(p.getName())){
    85.             if(p.getItemInHand().getType() == Material.BLAZE_ROD){
    86.                 event.setCancelled(true);
    87.                
    88.                 double Height = 5 / 15D;
    89.                 double Lenght = 16 / 8D;
    90.                 Player pe = event.getPlayer();
    91.                 pe.setVelocity(pe.getLocation().getDirection().setY(Height).multiply(Lenght));
    92.                 pe.playSound(pe.getLocation(), Sound.ENDERDRAGON_WINGS, 1F, 1F);
    93.             }
    94.             }
    95.         }
    96.      
    97.     }
    98.     public void onPlayerJoin(PlayerJoinEvent e) {
    99.         Player p = e.getPlayer();
    100.         if(p.hasPermission("electricstaff.use")){
    101.             if(canfly.contains(p.getName())){
    102.                 canfly.add(p.getName());
    103.                 ItemStack item = new ItemStack(Material.BLAZE_ROD, 1);
    104.                 ItemMeta met =item.getItemMeta();
    105.                 met.setDisplayName("Electric Staff");
    106.                 item.setItemMeta(met);
    107.                 p.getInventory().addItem(item);
    108.                 p.sendMessage("§1[Electric Staff]§f" + this.getConfig().getString("messages.canfly"));
    109.             }  
    110.         }
    111.     }
    112. }
    113.  
     
    #1
  2. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Was genau funktioniert nicht? Bekommest du eine Fehlermeldung im Log?
     
    #2
  3. Scrumplex
    Offline

    Scrumplex

    Registriert seit:
    10. Februar 2014
    Beiträge:
    8
    Ort:
    Herten
    Minecraft:
    TheSCHFan
    Ich bekomm die nachricht dass mein fliegen abgeschaltet wurde
    normaler weise falls man nicht in der arraylist drin ist soll kommen now you can fly
    ansonsten you can't fly anymore
     
    #3
  4. MrFlieder
    Offline

    MrFlieder

    Registriert seit:
    30. Dezember 2011
    Beiträge:
    333
    Ort:
    Österreich
    Minecraft:
    MrFlieder
    Dein Code bewirkt doch genau das Gegenteil!
    Du überprüfst, ob der Spieler beim Eingeben des Befehls in der ArrayList vorhanden ist - falls ja, fügst du diesen nochmals hinzu.
    Und wenn dieser nicht vorhanden ist, entfernst du den Spieler aus der Liste. Um deinen gewünschten Effekt zu erzielen, musst du die Bedingungen genau umdrehen.

    Außerdem, was soll die Initialisierung vom Player-Objekt mit dem Wert null, wenn du anschließend abfragst, ob ein Spieler den Befehl eingibt, dann neu initialisierst, und dann erst wieder abfragst, ob player null ist?

    Übrigens, wahrscheinlich meinst du "stuff" und nicht "staff".

    Code (Text):
    1.  
    2. public boolean onCommand(CommandSender sender, Command cmd, String lbl, String[] args)
    3. {
    4.         if(sender instanceof Player)
    5.     {
    6.         Player pl = (Player) sender;
    7.         //Commands:
    8.         //Command: /es
    9.         if(cmd.getName().equalsIgnoreCase("es"))
    10.         {
    11.             if(pl.hasPermission("electricstaff.use")){
    12.                 if(args.length != 1)
    13.                 {
    14.                     if(!canfly.contains(pl.getName())){
    15.                         canfly.add(pl.getName());
    16.                         ItemStack item = new ItemStack(Material.BLAZE_ROD, 1);
    17.                         ItemMeta met =item.getItemMeta();
    18.                         met.setDisplayName("Electric Stuff");
    19.                         item.setItemMeta(met);
    20.                         pl.getInventory().addItem(item);
    21.                         pl.sendMessage("§1[Electric Stuff]§f" + this.getConfig().getString("messages.canfly"));
    22.                     }
    23.                     else
    24.                     {
    25.                         canfly.remove(pl.getName());
    26.                         pl.sendMessage("§1[Electric Stuff]§f" + this.getConfig().getString("messages.cantfly")); 
    27.                     }
    28.                 }
    29.         }
    30.     }
    31.  
    32. return true;
    33. }
    34.  
     
    #4
  5. Scrumplex
    Offline

    Scrumplex

    Registriert seit:
    10. Februar 2014
    Beiträge:
    8
    Ort:
    Herten
    Minecraft:
    TheSCHFan
    @MrFlieder
    1. Dass soll Staff heissen
    2. DAnke für die Hilfe
    3. Ich kenn dich von Youtube
     
    #5