[TnT-BowSpleef] Hilfe beim Refillen vom TnT

Dieses Thema im Forum "Programmierung" wurde erstellt von ThunderFlo, 14. Oktober 2013.

  1. ThunderFlo
    Offline

    ThunderFlo

    Registriert seit:
    22. September 2013
    Beiträge:
    53
    Hallo Minecraft-Server.eu,

    ein Freund von mir schreibt gerade ein Plugin (TnT-BowSpleef) alles funktioniert eig. einwandfrei außer das sich das TnT nicht refillt. Da er hier keinen Acc. hat poste ich mal hier seinen Code und würde gerne Wissen was den falsch dran ist.

    Code (Text):
    1. package me.Summerfeeling.Spleef.Commands;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.GameMode;
    5. import org.bukkit.Location;
    6. import org.bukkit.Material;
    7. import org.bukkit.command.Command;
    8. import org.bukkit.command.CommandSender;
    9. import org.bukkit.enchantments.Enchantment;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.inventory.ItemStack;
    12. import org.bukkit.inventory.meta.ItemMeta;
    13. import org.bukkit.potion.PotionEffect;
    14.  
    15. import me.Summerfeeling.Spleef.Spleef;
    16. import me.Summerfeeling.Spleef.spleefMessageManager;
    17.  
    18. public class BowspleefCommand extends Spleef {
    19.  
    20.     public static int minX = 1213;
    21.     public static int minY = 4;
    22.     public static int minZ = 658;
    23.     public static int maxX = 1252;
    24.     public static int maxY = 4;
    25.     public static int maxZ = 619;
    26.    
    27.     @SuppressWarnings("deprecation")
    28.     @Override
    29.     public boolean onCommand(CommandSender cs, Command cmd, String label, String[] args) {
    30.        
    31.         if(cmd.getName().equalsIgnoreCase("bowspleef")) {
    32.            
    33.             Player p = (Player)cs;
    34.            
    35.             if(args.length != 1) {
    36.                 cs.sendMessage(spleefMessageManager.errorMessage("Syntax error! /bowspleef <join,leave,setspawn,wand,create>"));
    37.                 return true;
    38.             }
    39.            
    40.             if(args[0].equalsIgnoreCase("join")) {
    41.  
    42.                 if(players.contains(p.getName())) {
    43.                     p.sendMessage(spleefMessageManager.errorMessage("Du bist bereits in der Arena!"));
    44.                     return true;
    45.                 }
    46.                
    47.                 if(gameStarted) {
    48.                     p.sendMessage(spleefMessageManager.errorMessage("Das Spiel hat bereits begonnen!"));
    49.                     return true;
    50.                 }
    51.                
    52.                 if(players.size() == 10) {
    53.                     p.sendMessage(spleefMessageManager.errorMessage("Die Arena ist voll."));
    54.                     return true;
    55.                 }
    56.                
    57.                 if(players.size() == 0) {
    58.                     startTimer();
    59.                 }
    60.                
    61.                 String n = p.getName();
    62.                 players.add(n);
    63.                 inv.put(n, p.getInventory().getContents());
    64.                 rüssi.put(n, p.getInventory().getArmorContents());
    65.                 effects.put(n, p.getActivePotionEffects());
    66.                 xp.put(n, p.getExp());
    67.                 level.put(n, p.getLevel());
    68.                 gm.put(n, p.getGameMode());
    69.                 locs.put(n, p.getLocation());
    70.                
    71.                 p.teleport(new Location(Bukkit.getWorld("Summer7771"),  1233, 4, 640));
    72.                 for(PotionEffect eff : p.getActivePotionEffects()) {
    73.                     p.removePotionEffect(eff.getType());
    74.                 }
    75.                
    76.                 p.setGameMode(GameMode.ADVENTURE);
    77.                 p.setGameMode(GameMode.ADVENTURE);
    78.                 p.setExp(0);
    79.                 p.setLevel(0);
    80.                 p.getInventory().clear();
    81.                 p.getInventory().setBoots(new ItemStack(Material.AIR));
    82.                 p.getInventory().setLeggings(new ItemStack(Material.AIR));
    83.                 p.getInventory().setChestplate(new ItemStack(Material.AIR));
    84.                 p.getInventory().setHelmet(new ItemStack(Material.AIR));   
    85.                
    86.                 p.updateInventory();
    87.                
    88.                 Bukkit.broadcastMessage(spleefMessageManager.defaultMessage(n + " hat die Arena betreten! (" + players.size() + "/10)"));
    89.                
    90.             }else if(args[0].equalsIgnoreCase("leave")) {
    91.                
    92.                 if(players.contains(p.getName())) {
    93.                                        
    94.                     p.getInventory().setContents(inv.get(p.getName()));
    95.                     p.getInventory().setArmorContents(rüssi.get(p.getName()));
    96.                     p.addPotionEffects(effects.get(p.getName()));
    97.                     p.setExp(xp.get(p.getName()));
    98.                     p.teleport(locs.get(p.getName()));
    99.                     p.setLevel(level.get(p.getName()));
    100.                     p.setGameMode(gm.get(p.getName()));
    101.                    
    102.                     players.remove(p.getName());
    103.                     inv.remove(p.getName());
    104.                     rüssi.remove(p.getName());
    105.                     effects.remove(p.getName());
    106.                     xp.remove(p.getName());
    107.                     locs.remove(p.getName());
    108.                     level.remove(p.getName());
    109.                     gm.remove(p.getName());
    110.                    
    111.                     p.updateInventory();
    112.                    
    113.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage(p.getName() + " hat die Arena verlassen."));
    114.                    
    115.                     if(players.size() == 1) {
    116.                        
    117.                         Player pl = Bukkit.getPlayer(players.get(0));
    118.                         Bukkit.broadcastMessage(spleefMessageManager.defaultMessage(pl.getName() + " hat das Spiel gewonnen!"));
    119.                        
    120.                         pl.getInventory().setContents(inv.get(pl.getName()));
    121.                         pl.getInventory().setArmorContents(rüssi.get(pl.getName()));
    122.                         pl.addPotionEffects(effects.get(pl.getName()));
    123.                         p.setExp(xp.get(pl.getName()));
    124.                         pl.teleport(locs.get(pl.getName()));
    125.                         pl.setLevel(level.get(pl.getName()));
    126.                         pl.setGameMode(gm.get(pl.getName()));
    127.                        
    128.                         players.remove(pl.getName());
    129.                         inv.remove(pl.getName());
    130.                         rüssi.remove(pl.getName());
    131.                         effects.remove(pl.getName());
    132.                         xp.remove(pl.getName());
    133.                         locs.remove(pl.getName());
    134.                         level.remove(pl.getName());
    135.                         gm.remove(pl.getName());
    136.                         gameStarted = false;
    137.                        
    138.                         Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "bowspleef reset");
    139.                        
    140.                     }
    141.                    
    142.                 }
    143.                
    144.             }else if(args[0].equalsIgnoreCase("setspawn")) {
    145.  
    146.                 p.sendMessage("§cFolgt!");              
    147.                
    148.             }else if(args[0].equalsIgnoreCase("wand")) {
    149.                
    150.                 if(p.hasPermission("bowspleef.wand")) {
    151.                    
    152.                     ItemStack wand = new ItemStack(Material.IRON_SPADE);
    153.                     ItemMeta wandMeta = wand.getItemMeta();
    154.                     wandMeta.setDisplayName("TNT-Bowspleef-Wand");
    155.                     wand.setItemMeta(wandMeta);
    156.                    
    157.                     p.getInventory().addItem(wand);
    158.                    
    159.                    
    160.                 }else{
    161.                     cs.sendMessage(spleefMessageManager.errorMessage("Keine Berechtigung!"));
    162.                 }
    163.                
    164.             }else if(args[0].equalsIgnoreCase("create")) {
    165.                
    166.                 p.sendMessage("§cFolgt!");
    167.                
    168.             }else if(args[0].equalsIgnoreCase("reset")) {
    169.                
    170.                 if(p.hasPermission("bowspleef.reset")) {
    171.                    
    172.                     for(int x = minX; x <= maxX; x++) {
    173.                         for(int y = minY; y <= maxY; y++) {
    174.                             for(int z = minZ; z <= maxZ; z++) {
    175.                                 Bukkit.getWorld("Summer7771").getBlockAt(x,y,z);
    176.                                 Bukkit.getWorld("Summer7771").getBlockAt(x,y,z).setType(Material.TNT);;
    177.                             }
    178.                         }
    179.                     }
    180.                    
    181.                 }else{
    182.                     cs.sendMessage(spleefMessageManager.errorMessage("Keine Berechtigung!"));
    183.                 }
    184.                
    185.             }else{
    186.                 cs.sendMessage(spleefMessageManager.errorMessage("Syntax error! /bowspleef <join,leave,setspawn,wand,create,reset>"));
    187.             }
    188.         }
    189.        
    190.         return true;
    191.     }
    192.        
    193.     @SuppressWarnings("deprecation")
    194.     public void startTimer() {
    195.         task = Bukkit.getScheduler().scheduleAsyncRepeatingTask(instance, new Runnable() {
    196.             int current = -1;
    197.             @Override
    198.             public void run() {
    199.                 current++;
    200.                
    201.                 if(current == 0) {
    202.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 60 Sekunden! Joint mit /bowspleef join"));
    203.                 }else if(current == 10) {
    204.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 50 Sekunden!"));
    205.                 }else if(current == 20) {
    206.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 40 Sekunden!"));
    207.                 }else if(current == 30) {
    208.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 30 Sekunden!"));
    209.                 }else if(current == 40) {
    210.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 20 Sekunden!"));
    211.                 }else if(current == 50) {
    212.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 10 Sekunden!"));
    213.                 }else if(current == 51) {
    214.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 9 Sekunden!"));
    215.                 }else if(current == 52) {
    216.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 8 Sekunden!"));
    217.                 }else if(current == 53) {
    218.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 7 Sekunden!"));
    219.                 }else if(current == 54) {
    220.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 6 Sekunden!"));
    221.                 }else if(current == 55) {
    222.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 5 Sekunden!"));
    223.                 }else if(current == 56) {
    224.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 4 Sekunden!"));
    225.                 }else if(current == 57) {
    226.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 3 Sekunden!"));
    227.                 }else if(current == 58) {
    228.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 2 Sekunden!"));
    229.                 }else if(current == 59) {
    230.                     Bukkit.broadcastMessage(spleefMessageManager.defaultMessage("Das Spiel startet in 1 Sekunde!"));
    231.                 }else if(current == 60) {
    232.                     if(players.size() >= 2) {
    233.                         gameStarted = true;
    234.                         stopTask = true;
    235.                         for(String str : players) {
    236.                             Player p = Bukkit.getPlayer(str);
    237.                             ItemStack is = new ItemStack(Material.BOW);
    238.                             ItemStack a = new ItemStack(Material.ARROW);
    239.                             ItemMeta im = is.getItemMeta();
    240.                             im.addEnchant(Enchantment.ARROW_FIRE, 1, true);
    241.                             im.addEnchant(Enchantment.ARROW_INFINITE, 1, true);
    242.                             im.setDisplayName("§6§lTnT - Bow Spleef");
    243.                             is.setItemMeta(im);
    244.                             p.getInventory().setItem(0, is);
    245.                             p.getInventory().setItem(8, a);
    246.                             p.setGameMode(GameMode.ADVENTURE);
    247.                         }
    248.                     }else{
    249.                         Bukkit.broadcastMessage(spleefMessageManager.errorMessage("Es sind nicht genügend Spieler da! Restarting Lobby-Phase"));
    250.                         if(players.size() >= 1) {
    251.                             startTimer();
    252.                         }
    253.                     }
    254.                 }  
    255.                
    256.             }
    257.         }, 0L, 20L);
    258.     }
    259.    
    260. }
     
    #1
  2. Major_Sauce
    Offline

    Major_Sauce

    Registriert seit:
    18. September 2013
    Beiträge:
    27
    Minecraft:
    Major_Sauce
    TnT setzen

    Hey,

    also ich hatte es so gemacht dass ich eine Locaton erstellt habe, an der dann das TnT gesetzt werden soll. und dann Loc.getBlock.setTypeId(idVonTnt);
     
    #2