Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Edycja pluginu, błąd player member


Stevey728

Rekomendowane odpowiedzi

Opublikowano

Taki jest o to kod pluginu [jednej klasy]

package pl.godplay.efekty.listener;

import java.util.ArrayList;
import java.util.List;
import net.dzikoysk.funnyguilds.basic.Guild;
import net.dzikoysk.funnyguilds.basic.User;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import pl.godplay.efekty.utils.Util;

public class EfektGuiGildieGlowne
  implements Listener
{
  public static void openGUI(Player player)
  {
    Inventory i = Bukkit.createInventory(null, 9, ChatColor.YELLOW + "§lDOSTEPNE EFEKTY GILDII:");
    
    ItemStack Speed = new ItemStack(Material.SUGAR);
    ItemMeta SpeedMeta = Speed.getItemMeta();
    
    List<String> loreList = new ArrayList();
    loreList.add("  §8» §7Czas trwania efektu: §e§n10 minut");
    loreList.add("  §8» §7Moc efektu: §e§nII");
    loreList.add("  §8» §7Koszt efektu: §e§n80 blokow szmaragdu.");
    loreList.add("  §8» §7Kliknij tutaj aby wybrac efekt dla gildii!");
    SpeedMeta.setLore(loreList);
    SpeedMeta.setDisplayName(ChatColor.YELLOW + " §nSZYBKOSC CHODZENIA");
    Speed.setItemMeta(SpeedMeta);
    
    ItemStack Haste = new ItemStack(Material.BEACON);
    ItemMeta HasteMeta = Haste.getItemMeta();
    loreList.clear();
    loreList.add("  §8» §7Czas trwania efektu: §e§n10 minut");
    loreList.add("  §8» §7Moc efektu: §e§nII");
    loreList.add("  §8» §7Koszt efektu: §e§n150 blokow szmaragdu.");
    loreList.add("  §8» §7Kliknij tutaj aby wybrac efekt dla gildii!");
    HasteMeta.setLore(loreList);
    HasteMeta.setDisplayName(ChatColor.YELLOW + " §nSZYBKOSC KOPANIA");
    Haste.setItemMeta(HasteMeta);
    
    ItemStack Sila = new ItemStack(Material.POTION, 1, (short)8201);
    ItemMeta SilaMeta = Sila.getItemMeta();
    loreList.clear();
    loreList.add("  §8» §7Czas trwania efektu: §e§n4 minuty");
    loreList.add("  §8» §7Moc efektu: §e§nI");
    loreList.add("  §8» §7Koszt efektu: §e§n200 blokow szmaragdu.");
    loreList.add("  §8» §7Kliknij tutaj aby wybrac efekt dla gildii!");
    SilaMeta.setLore(loreList);
    SilaMeta.setDisplayName(ChatColor.YELLOW + "  §nSILA I  ");
    Sila.setItemMeta(SilaMeta);
    
    ItemStack OdporoscNaOgien = new ItemStack(Material.MAGMA_CREAM);
    ItemMeta OdporoscNaOgienMeta = OdporoscNaOgien.getItemMeta();
    loreList.clear();
    loreList.add("  §8» §7Czas trwania efektu: §e§n8 minut");
    loreList.add("  §8» §7Moc efektu: §e§nI");
    loreList.add("  §8» §7Koszt efektu: §e§n75 blokow szmaragdu.");
    loreList.add("  §8» §7Kliknij tutaj aby wybrac efekt dla gildii!");
    OdporoscNaOgienMeta.setLore(loreList);
    OdporoscNaOgienMeta.setDisplayName(ChatColor.YELLOW + " §nODPORNOSC NA OGIEN");
    OdporoscNaOgien.setItemMeta(OdporoscNaOgienMeta);
    
    i.setItem(1, Speed);
    i.setItem(3, Haste);
    i.setItem(5, Sila);
    i.setItem(7, OdporoscNaOgien);
    
    player.openInventory(i);
  }
  
  @EventHandler
  public void onInventoryClickEvent(InventoryClickEvent e)
  {
    if (!ChatColor.stripColor(e.getInventory().getName()).equalsIgnoreCase("DOSTEPNE EFEKTY GILDII:")) {
      return;
    }
    Player player = (Player)e.getWhoClicked();
    e.setCancelled(true);
    if ((e.getCurrentItem() == null) || (e.getCurrentItem().getType() == Material.AIR) || (!e.getCurrentItem().hasItemMeta()))
    {
      player.closeInventory(); return;
    }
    Player member;
    Player member;
    Player member;
    switch (e.getCurrentItem().getType())
    {
    case SANDSTONE: 
      player.closeInventory();
      ItemStack speeditem = new ItemStack(Material.EMERALD_BLOCK, 80);
      if (player.getInventory().contains(Material.EMERALD_BLOCK, 80))
      {
        player.getInventory().removeItem(new ItemStack[] { speeditem });
        Bukkit.broadcastMessage("§6§lI§a§lC §8» §7Gildia §e" + User.get(player).getGuild().getTag() + " §7zakupila efekt: §e§nSZYBKOSC CHODZENIA II");
        Guild guild = User.get(player).getGuild();
        if ((guild == null) || (guild.getName() == null)) {
          return;
        }
        for (User u : guild.getMembers()) {
          if (u.getName() != null)
          {
            member = Bukkit.getPlayer(u.getName());
            if (member != null)
            {
              member.removePotionEffect(PotionEffectType.SPEED);
              member.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 12000, 1));
            }
          }
        }
      }
      else
      {
        player.sendMessage(Util.fixColor("&6&lI&a&lC &8» &cNie masz przy sobie wystarczajacej ilosci blokow szmaragdu!"));
      }
      break;
    case GOLD_SWORD: 
      player.closeInventory();
      ItemStack hasteitem = new ItemStack(Material.EMERALD_BLOCK, 150);
      if (player.getInventory().contains(Material.EMERALD_BLOCK, 150))
      {
        player.getInventory().removeItem(new ItemStack[] { hasteitem });
        Bukkit.broadcastMessage("§6§lI§a§lC §8» §7Gildia §e" + User.get(player).getGuild().getTag() + " §7zakupila efekt: §e§nSZYBKOSC KOPANIA II");
        Guild guild = User.get(player).getGuild();
        if ((guild == null) || (guild.getName() == null)) {
          return;
        }
        for (User u : guild.getMembers()) {
          if (u.getName() != null)
          {
            member = Bukkit.getPlayer(u.getName());
            if (member != null)
            {
              member.removePotionEffect(PotionEffectType.FAST_DIGGING);
              member.addPotionEffect(new PotionEffect(PotionEffectType.FAST_DIGGING, 12000, 1));
            }
          }
        }
      }
      else
      {
        player.sendMessage(Util.fixColor("&6&lI&a&lC &8» &cNie masz przy sobie wystarczajacej ilosci blokow szmaragdu!"));
      }
      break;
    case SPRUCE_WOOD_STAIRS: 
      player.closeInventory();
      ItemStack silaitem = new ItemStack(Material.EMERALD_BLOCK, 200);
      if (player.getInventory().contains(Material.EMERALD_BLOCK, 200))
      {
        player.getInventory().removeItem(new ItemStack[] { silaitem });
        Bukkit.broadcastMessage("§6§lI§a§lC §8» §7Gildia §e" + User.get(player).getGuild().getTag() + " §7zakupila efekt: §e§nSILA I");
        Guild guild = User.get(player).getGuild();
        if ((guild == null) || (guild.getName() == null)) {
          return;
        }
        for (User u : guild.getMembers()) {
          if (u.getName() != null)
          {
            member = Bukkit.getPlayer(u.getName());
            if (member != null)
            {
              member.removePotionEffect(PotionEffectType.INCREASE_DAMAGE);
              member.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, 4800, 0));
            }
          }
        }
      }
      else
      {
        player.sendMessage(Util.fixColor("&6&lI&a&lC &8» &cNie masz przy sobie wystarczajacej ilosci blokow szmaragdu!"));
      }
      break;
    case STATIONARY_WATER: 
      player.closeInventory();
      ItemStack odpornoscnaogienitem = new ItemStack(Material.EMERALD_BLOCK, 75);
      if (player.getInventory().contains(Material.EMERALD_BLOCK, 75))
      {
        player.getInventory().removeItem(new ItemStack[] { odpornoscnaogienitem });
        Bukkit.broadcastMessage("§6§lI§a§lC §8» §7Gildia §e" + User.get(player).getGuild().getTag() + " §7zakupila efekt: §e§nODPORNOSC NA OGIEN I");
        Guild guild = User.get(player).getGuild();
        if ((guild == null) || (guild.getName() == null)) {
          return;
        }
        for (User u : guild.getMembers()) {
          if (u.getName() != null)
          {
            Player member = Bukkit.getPlayer(u.getName());
            if (member != null)
            {
              member.removePotionEffect(PotionEffectType.FIRE_RESISTANCE);
              member.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 9600, 0));
            }
          }
        }
      }
      else
      {
        player.sendMessage(Util.fixColor("&6&lI&a&lC &8» &cNie masz przy sobie wystarczajacej ilosci blokow szmaragdu!"));
      }
      break;
    default: 
      player.closeInventory();
    }
  }
}

I wywala mi error przy

    Player member;
    Player member;

oraz

            Player member = Bukkit.getPlayer(u.getName());

Gość dominik148
Opublikowano

Czemu "Player member;" jest x3? xD

Usuń x2 i powinno działać.

Opublikowano

Sprawdzaj czy gracz kliknął na dany typ bloku, następnie zreturnuj i użyj pętli for aby dać efekty każdemu z gildii

 for(User u : User.get(player).getGuild().getMembers()) { 

Opublikowano
1 godzinę temu, dominik148 napisał:

Czemu "Player member;" jest x3? xD

Usuń x2 i powinno działać.

Usunąłem x2 i pierwsza część problemu rozwiązana jednakże zostaje jeszcze

             Player member = Bukkit.getPlayer(u.getName());

po zmianie z member na member1 działa, ale nie wiem czy plugin poprawnie będzie działać na serwerze

Opublikowano
10 minut temu, Patryk5813 napisał:

Usunąłem x2 i pierwsza część problemu rozwiązana jednakże zostaje jeszcze

             Player member = Bukkit.getPlayer(u.getName());

po zmianie z member na member1 działa, ale nie wiem czy plugin poprawnie będzie działać na serwerze

Człeku.. Naucz sie angielskiego wszystkie błędy są opisane z jakiej przyczyny one sa itd. 

I nie bierz sie za przerabianie bez znajomosci podstaw...

MPC miało ponoć nie pomagać w takich sprawach a nawet droga administracja nie sprawdzi tego..

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...