1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

ServerPlugin Bei OnPlayerDeath dem Toten ein Item geben

Dieses Thema im Forum "Programmierung" wurde erstellt von Keksi1996, 5. April 2015.

  1. Keksi1996
    Offline

    Keksi1996

    Registriert seit:
    25. März 2012
    Beiträge:
    11
    Ort:
    Herdecke
    Minecraft:
    Derakar
    Hey!
    Ich habe folgendes vor. Es geht um ein GunGame Plugin und wenn ein Spieler stirbt er LvL 1 bekommt und wieder die anfangs Waffe hat. Doch bekommt er diese nicht. Bei dem Killer funktioniert alles.

    OnPlayerDeath:
    Code (Text):
    1.     @EventHandler
    2.     public void onPlayerDeath(PlayerDeathEvent e){
    3.         Player p = (Player)e.getEntity().getPlayer();
    4.         Player k = (Player)e.getEntity().getKiller();
    5.         int lvl = this.player_level.get(k.getName()) +1;
    6.         this.player_level.put(k.getName(), lvl);
    7.        
    8.         e.setDeathMessage(null);
    9.         e.setDroppedExp(0);
    10.         e.getDrops().clear();
    11.        
    12.         k.setHealth(20D);
    13.         k.setExp(0);
    14.         k.setLevel(lvl);
    15.         k.setFireTicks(0);
    16.        
    17.         p.setHealth(20D);
    18.         p.setExp(0);
    19.         p.setLevel(1);
    20.         p.setFireTicks(0);
    21.        
    22.         k.getInventory().clear();
    23.         p.getInventory().clear();
    24.        
    25.         giveKit(k, lvl);
    26.         giveKit(p, lvl);
    27.        
    28.         Bukkit.broadcastMessage("§c" + k.getName() + " §ahat §c" + p.getName() + " §agetötet.");
    29.        
    30.         World w = p.getWorld();
    31.        
    32.        
    33.         Location loc1 = new Location(w, 176, 64, 92);
    34.         Location loc2 = new Location(w, 171, 64, 79);
    35.         Location loc3 = new Location(w, 185, 64, 68);
    36.         Location loc4 = new Location(w, 195, 66, 58);
    37.        
    38.        
    39.         Random rnd = new Random();
    40.         int zufallszahl = rnd.nextInt(3);
    41.          
    42.         Location loc = null;
    43.          
    44.         switch(zufallszahl){
    45.         case 0:
    46.             loc = loc1;
    47.             break;
    48.         case 1:
    49.             loc = loc2;
    50.             break;
    51.         case 2:
    52.             loc = loc3;
    53.             break;
    54.         case 3:
    55.             loc = loc4;
    56.             break;
    57.         }
    58.          
    59.         p.teleport(loc);
    60.        
    61.     }
    giveKit:
    Code (Text):
    1.     public void giveKit(Player p, Integer level){
    2.        
    3.         switch(level){
    4.         case 0:
    5.            
    6.             break;
    7.            
    8.         case 1:
    9.            
    10.             ItemStack stick = new ItemStack(Material.STICK);
    11.             stick.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 1);
    12.            
    13.             ItemMeta stickm = stick.getItemMeta();
    14.             stickm.setDisplayName("§b§lStock");
    15.             stick.setItemMeta(stickm);
    16.            
    17.             p.getInventory().addItem(stick);
    18.            
    19.             break;
    20.         case 2:
    21.             p.getInventory().addItem(new ItemStack(Material.WOOD_SWORD,1));
    22.             break;
    23.            
    24.         case 3:
    25.             p.getInventory().addItem(new ItemStack(Material.GOLD_SWORD,1));
    26.             break;
    27.            
    28.         case 4:
    29.             p.getInventory().addItem(new ItemStack(Material.STONE_SWORD,1));
    30.             break;
    31.            
    32.         case 5:
    33.             p.getInventory().addItem(new ItemStack(Material.DIAMOND_SWORD,1));
    34.             break;
    35.            
    36.         }
    37.        
    38.     }
     
    #1
  2. Werbung
    Online

    Werbung

  3. jotonch
    Offline

    jotonch

    Registriert seit:
    17. März 2012
    Beiträge:
    30
    Jemandem der tot ist kann man ja auch schlecht Items geben, versuchs mal mitm PlayerRespawnEvent
     
    #2
    • Gefällt mir Gefällt mir x 1
  4. Keksi1996
    Offline

    Keksi1996

    Registriert seit:
    25. März 2012
    Beiträge:
    11
    Ort:
    Herdecke
    Minecraft:
    Derakar
    Ja ich weiß. Der Spieler stirbt ja nicht, weil ich das Leben ja wieder auf 20 setze.

    Code (Text):
    1. p.setHealth(20D);
     
    #3
  5. jotonch
    Offline

    jotonch

    Registriert seit:
    17. März 2012
    Beiträge:
    30
    #4
  6. Keksi1996
    Offline

    Keksi1996

    Registriert seit:
    25. März 2012
    Beiträge:
    11
    Ort:
    Herdecke
    Minecraft:
    Derakar
    Danke es Klappt jetzt alles! :D
     
    #5
    • Gefällt mir Gefällt mir x 1
  7. Thalion
    Offline

    Thalion

    Registriert seit:
    22. Juli 2014
    Beiträge:
    25
    Ort:
    Berlin
    Minecraft:
    Spartaner_v1
    Hallöchen,
    wollte nur deine Fehler korregieren,
    Das PlayerDeathEvent wird aufgerufen, wenn der Player tot ist / stirbt. Heißt im ganzen du musst beim DamageEvent gucken ob der Player seine kompletten Leben verlieren würde.

    PlayerDeathEvent implementiert nicht Cancellable

    Mfg,
    Thalion
     
    #6
  8. MrPyro13
    Offline

    MrPyro13

    Registriert seit:
    29. April 2013
    Beiträge:
    826
    Minecraft:
    MrPyro13
    Oder man nutzt einfach das PlayerRespawnEvent
     
    #7
  9. Keksi1996
    Offline

    Keksi1996

    Registriert seit:
    25. März 2012
    Beiträge:
    11
    Ort:
    Herdecke
    Minecraft:
    Derakar
    Ja ich hab das mit dem Scheduler gemacht.

    Code (Text):
    1.  
    2. @EventHandler
    3.     public void onPlayerDeath(PlayerDeathEvent e){
    4.         final Player p = (Player)e.getEntity().getPlayer();
    5.         Player k = (Player)e.getEntity().getKiller();
    6.        
    7.         int lvl = this.player_level.get(k.getName()) +1;
    8.         this.player_level.put(k.getName(), lvl);
    9.        
    10.         this.player_oldlevel.put(p.getName(), p.getLevel());
    11.         this.player_level.put(p.getName(), 1);
    12.        
    13.         int dlvl = this.player_level.get(p.getName());
    14.         this.player_level.put(p.getName(), dlvl);
    15.        
    16.         e.setDeathMessage(null);
    17.         e.setDroppedExp(0);
    18.         e.getDrops().clear();
    19.        
    20.         k.setHealth(20D);
    21.         k.setExp(0);
    22.         k.setLevel(lvl);
    23.         k.setFireTicks(0);
    24.        
    25.         p.setHealth(20D);
    26.         p.setExp(0);
    27.         p.setLevel(dlvl);
    28.         p.setFireTicks(0);
    29.        
    30.         k.getInventory().clear();
    31.         p.getInventory().clear();
    32.        
    33.         giveKit(k, lvl);
    34.         Bukkit.getScheduler().runTaskLater(this.plugin , new Runnable() {
    35.  
    36.             @Override
    37.             public void run() {
    38.             giveKit(p, dlvl);
    39.  
    40.             }
    41.         }, 2L);
    42.        
    43.        
    44.         Bukkit.broadcastMessage("§c" + k.getName() + " §ahat §c" + p.getName() + " §agetötet.");
    45.        
    46.         World w = p.getWorld();
    47.        
    48.        
    49.         Location loc1 = new Location(w, 176, 64, 92);
    50.         Location loc2 = new Location(w, 171, 64, 79);
    51.         Location loc3 = new Location(w, 185, 64, 68);
    52.         Location loc4 = new Location(w, 195, 66, 58);
    53.        
    54.        
    55.         Random rnd = new Random();
    56.         int zufallszahl = rnd.nextInt(3);
    57.          
    58.         Location loc = null;
    59.          
    60.         switch(zufallszahl){
    61.         case 0:
    62.             loc = loc1;
    63.             break;
    64.         case 1:
    65.             loc = loc2;
    66.             break;
    67.         case 2:
    68.             loc = loc3;
    69.             break;
    70.         case 3:
    71.             loc = loc4;
    72.             break;
    73.         }
    74.          
    75.         p.teleport(loc);
    76.        
    77.     }
     
    #8