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

Własny plugin - problem z pobieraniem materiałów


Gość tomecki1

Rekomendowane odpowiedzi

Gość tomecki1
Opublikowano

Witam,

Nie wiem jak zrobić mniej więcej takie coś:

 

Material[] materials = { materialy };

i tam gdzie materialy ma być pobieranie z configu. Czyli:

 

materialy = getConfig()...

Material[] materials = { materialy };

 

Config:

Materialy:

  - 'dirt'

  - 'cobblestone'

  - 'diamond'

 

Wiecie o co mi chodzi?

Please, pomocy!

Opublikowano

­Tym sposobem spróbuj:

Material.getMaterial("String");

» Zostanę technikiem serwera minecraft / stworzę twój serwer (Klik) «

» Wykonam pliki serwerowe do minecraft  «

» Pomagam w różnych sprawach «

<>~~~~~~~~~~~~<> Kontakt <>~~~~~~~~~~~~<>
» Wyślij do mnie Prywatną Wiadomość (PW) «

Gość tomecki1
Opublikowano

Zrobiłem tak, ale nie działa:

String materialy = getConfig().getString("Materialy");
Material materials = Material.getMaterial(materialy);
Material randomMaterial = materials;
ItemStack item = new ItemStack(randomMaterial);
player.getInventory().addItem(item);

@XSkrypcioX

Opublikowano

Szczerze to już nie wiem bo dopiero się uczę :/

Spróbuj gdzieś dodaj jaki item ma brać i nie randommaterial tylko material daj

» Zostanę technikiem serwera minecraft / stworzę twój serwer (Klik) «

» Wykonam pliki serwerowe do minecraft  «

» Pomagam w różnych sprawach «

<>~~~~~~~~~~~~<> Kontakt <>~~~~~~~~~~~~<>
» Wyślij do mnie Prywatną Wiadomość (PW) «

Gość tomecki1
Opublikowano

zacznijmy od tego ze z configa pobierasz liste a nie stringa...

Zaczęliśmy, to może powiesz jak to zrobić i co dalej?...

Opublikowano

­String materialy = getConfig().getString("Materialy");
Material materials = Material.getMaterial(materialy);
Material randomMaterial = materials;                                                    <- to tutaj nie ma najmniejszego sensu  ... materials == randomMaterial
ItemStack item = new ItemStack(randomMaterial);                               <- jeśli wcześniej pole materials == null to tutaj powinno wywalic blad
player.getInventory().addItem(item);                                                     

 

 

zacznijmy od tego ze z configa pobierasz liste a nie stringa...

cuż on na bank pobiera String'a choć pewnie wygodniej by było pobrać od razu listę ,

 

tomecki1 polecam

http://helion.pl/ksiazki/java-podstawy-wydanie-ix-cay-s-horstmann-gary-cornell,javpd9.htm

wcale nie trzeba się wszystkiego uczyć na pamięć wystarczy przeczytać i wiedzieć co z czym się je ...

 

 

 

Witam,

Nie wiem jak zrobić mniej więcej takie coś:

 

Material[] materials = { materialy };

i tam gdzie materialy ma być pobieranie z configu. Czyli:

 

materialy = getConfig()...

Material[] materials = { materialy };

 

Config:

Materialy:

  - 'dirt'

  - 'cobblestone'

  - 'diamond'

 

Wiecie o co mi chodzi?

Please, pomocy!

wykonasz

Lista<T> materials = FILECONFIGURATION.getStringList(...)    oczywiście tego co napisałem w całości z wielkich liter nie przepisuj

Opublikowano

skoro nie potrafisz takiego czegoś napisać, podszkol się, poczytaj poradniki i javadocsy, co do czego służy, ale nie oczekuj gotowców.

ale po to jest to forum, więc masz:

ArrayList<Material> materials = new ArrayList<Material>();
for(String mat : getConfig().getStringList("Materialy")){
    materials.add(Material.valueOf(mat));
}
int randomMaterial = new Random().nextInt(materials.size());
player.getInventory().addItem(materials.get(randomMaterial));

następnym razem wykaż trochę samodzielności.

 

sygnatura.png

Gość tomecki1
Opublikowano

Boże co za społeczność.... bez obrazy, ale nie mówcie mi "trochę samodzielności", ponieważ j anie oczekuje gotowca tylko pomocy. Jak nie potraficie czytać to się nie wypowiadajcie. Wystarczy powiedzieć co jak a nie pisać całe....

Więc nie zwalajcie na mnie, bo to Wasza wina...

 

Nie wiem jak zrobić ( dla mnie to oznacza "proszę o podpowiedź" ), a nie "Napisze mi ktoś takie coś"

 

CZYTAJCIE ZE ZROZUMIENIEM I NIE ZWALAJCIE NA MNIE, BO NIE WIECIE CO POTRAFIĘ A CZEGO NIE...

KAŻDY MA PRAWO CZEGOŚ NIE WIEDZIEĆ I OD TEGO SĄ INNI, ABY MU PODPOWIEDZIEĆ I ZAPROWADZIĆ NA DOBRĄ DROGĘ!!!

 

 

Tak w ogóle zrobiłem jak mówiłeś @HardStyl3r i coś źle napisałeś :-

Tutaj:

player.getInventory().addItem(materials.get(randomMaterial));
Nie może być additem

Co ma być innego?

Ooo.. Też nie wiesz?

Proszę pomóż...

 

Jeszcze na koniec tego posta powiem, że w pierwszym pluginie 2/4 zrobiłem sam, w drugim 3/4 sam, a w tym to cały sam, więc mam prawo jednej rzeczy nie wiedzieć i proszę nie mówić, że jestem nie samodzielny, nic nie potrafię i czekam na gotowce, bo w cale nie czekam na gotowce tylko na wytłumaczenie. @damianq20 @xCzuowiekBanann@HardStyl3r

Opublikowano

Boże co za społeczność.... bez obrazy, ale nie mówcie mi "trochę samodzielności", ponieważ j anie oczekuje gotowca tylko pomocy. Jak nie potraficie czytać to się nie wypowiadajcie. Wystarczy powiedzieć co jak a nie pisać całe....

Więc nie zwalajcie na mnie, bo to Wasza wina...

 

Nie wiem jak zrobić ( dla mnie to oznacza "proszę o podpowiedź" ), a nie "Napisze mi ktoś takie coś"

 

CZYTAJCIE ZE ZROZUMIENIEM I NIE ZWALAJCIE NA MNIE, BO NIE WIECIE CO POTRAFIĘ A CZEGO NIE...

KAŻDY MA PRAWO CZEGOŚ NIE WIEDZIEĆ I OD TEGO SĄ INNI, ABY MU PODPOWIEDZIEĆ I ZAPROWADZIĆ NA DOBRĄ DROGĘ!!!

 

 

Tak w ogóle zrobiłem jak mówiłeś @HardStyl3r i coś źle napisałeś :-

Tutaj:

player.getInventory().addItem(materials.get(randomMaterial));
Nie może być additem

Co ma być innego?

Ooo.. Też nie wiesz?

Proszę pomóż...

 

Jeszcze na koniec tego posta powiem, że w pierwszym pluginie 2/4 zrobiłem sam, w drugim 3/4 sam, a w tym to cały sam, więc mam prawo jednej rzeczy nie wiedzieć i proszę nie mówić, że jestem nie samodzielny, nic nie potrafię i czekam na gotowce, bo w cale nie czekam na gotowce tylko na wytłumaczenie. @damianq20 @xCzuowiekBanann@HardStyl3r

 

napisałem ci co jest żle <chyba tak mi się przynajmniej wydawało napisałem też jak to zrobić ba mało tego podałem ci książkę w której piszę prawie wszystko co robisz żle :/ tu nie chodzi o brak wiedzy ale podstawowe błędy z samym językiem Java

 

player.getInventory().addItem(materials.get(randomMaterial)); < nie pamiętam jak to jest teraz ale kiedyś jako parametr należało podać obiekty ItemStack

 

i taka sprawa config najlepiej pobrać tylko raz !

Opublikowano

 

Boże co za społeczność.... bez obrazy, ale nie mówcie mi "trochę samodzielności", ponieważ j anie oczekuje gotowca tylko pomocy. Jak nie potraficie czytać to się nie wypowiadajcie. Wystarczy powiedzieć co jak a nie pisać całe....

Więc nie zwalajcie na mnie, bo to Wasza wina...

 

Nie wiem jak zrobić ( dla mnie to oznacza "proszę o podpowiedź" ), a nie "Napisze mi ktoś takie coś"

 

CZYTAJCIE ZE ZROZUMIENIEM I NIE ZWALAJCIE NA MNIE, BO NIE WIECIE CO POTRAFIĘ A CZEGO NIE...

KAŻDY MA PRAWO CZEGOŚ NIE WIEDZIEĆ I OD TEGO SĄ INNI, ABY MU PODPOWIEDZIEĆ I ZAPROWADZIĆ NA DOBRĄ DROGĘ!!!

 

 

Tak w ogóle zrobiłem jak mówiłeś @HardStyl3r i coś źle napisałeś :-

Tutaj:

player.getInventory().addItem(materials.get(randomMaterial));
Nie może być additem

Co ma być innego?

Ooo.. Też nie wiesz?

Proszę pomóż...

 

Jeszcze na koniec tego posta powiem, że w pierwszym pluginie 2/4 zrobiłem sam, w drugim 3/4 sam, a w tym to cały sam, więc mam prawo jednej rzeczy nie wiedzieć i proszę nie mówić, że jestem nie samodzielny, nic nie potrafię i czekam na gotowce, bo w cale nie czekam na gotowce tylko na wytłumaczenie. @damianq20 @xCzuowiekBanann@HardStyl3r

 

napisałem ci co jest żle <chyba tak mi się przynajmniej wydawało napisałem też jak to zrobić ba mało tego podałem ci książkę w której piszę prawie wszystko co robisz żle :/ tu nie chodzi o brak wiedzy ale podstawowe błędy z samym językiem Java

 

player.getInventory().addItem(materials.get(randomMaterial)); < nie pamiętam jak to jest teraz ale kiedyś jako parametr należało podać obiekty ItemStack

 

i taka sprawa config najlepiej pobrać tylko raz !

 

Faktycznie, tutaj trzeba byłoby zrobić Material.

Spróbuj tak:

rrayList<Material> materials = new ArrayList<Material>();
for(String mat : getConfig().getStringList("Materialy")){
    materials.add(Material.valueOf(mat));
}
int randomMaterial = new Random().nextInt(materials.size());
player.getInventory().addItem(new ItemStack(materials.get(randomMaterial), <liczba przedmiotów, proponuję do configów dodać po średniku tą wartość i ją splitować>));

 

sygnatura.png

Gość tomecki1
Opublikowano
rrayList<Material> materials = new ArrayList<Material>();
for(String mat : getConfig().getStringList("Materialy")){
    materials.add(Material.valueOf(mat));
}
int randomMaterial = new Random().nextInt(materials.size());
player.getInventory().addItem(new ItemStack(materials.get(randomMaterial), <liczba przedmiotów, proponuję do configów dodać po średniku tą wartość i ją splitować>));

Błąd w linijce:

materials.add(Material.valueOf(mat));

Tak wyskakuje w konsoli.

 

To jest mój były kod, który działa bez config.yml:

 

 

 public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (sender.hasPermission("ELottery.lottery")) {
            if (cmd.getName().equalsIgnoreCase("Loteria")) {
                Player player = (Player) sender;
                economy.withdrawPlayer(player, 10);
                Random random = new Random();
                int[] ilosci = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                int ilosc = random.nextInt(ilosci.length);
                Material[] materials = new Material[] { Material.DIAMOND, Material.DIRT};
                int size = materials.length;
                int index = random.nextInt(size);
                Material randomMaterial = materials[index];
                ItemStack item = new ItemStack(randomMaterial, ilosc);
                if (economy.getBalance(player) > 0) {
                    player.getInventory().addItem(item);
                    player.sendMessage(ChatColor.GREEN + "[" + ChatColor.BLUE + "EpicChere" + ChatColor.GREEN + "] "
                            + ChatColor.GOLD + "Gratulacje!" + ChatColor.DARK_AQUA + " Wygrałeś: "
                            + ChatColor.DARK_GREEN + item.getType().name() + ChatColor.DARK_AQUA + " w ilości: "
                            + ChatColor.DARK_GREEN + ilosc);
                } else {
                    sender.sendMessage(ChatColor.GREEN + "[" + ChatColor.BLUE + "EpicChere" + ChatColor.GREEN + "] "
                            + getConfig().getString("Message.PlayerHasntMoney").replace("&", "§"));
                }
            }
        }
        return true;
    }

 

 

 

 

A to Twój:
 

 

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (sender.hasPermission("ELottery.lottery")) {
            if (cmd.getName().equalsIgnoreCase("Loteria")) {
                Player player = (Player) sender;
                //--------------------------------------------------
                ArrayList<Material> materials = new ArrayList<Material>();
                for(String mat : getConfig().getStringList("Materialy")){
                    materials.add(Material.valueOf(mat));
                }
                int randomMaterial = new Random().nextInt(materials.size());
                
                //----------------------------------------------
                    player.getInventory().addItem(new ItemStack(materials.get(randomMaterial)));
                    player.sendMessage(ChatColor.GREEN + "[" + ChatColor.BLUE + "EpicChere" + ChatColor.GREEN + "] "
                            + ChatColor.GOLD + "Gratulacje!");
                
                    sender.sendMessage(ChatColor.GREEN + "[" + ChatColor.BLUE + "EpicChere" + ChatColor.GREEN + "] "
                            + getConfig().getString("Message.PlayerHasntMoney").replace("&", "§"));
                }
            }
        
        return true;
    }
 
+Config.yml
 
Materialy:
  - 'Material.DIAMOND'
  - 'Material.DIRT'

 

 

 

@Edit:

Proszę bardzo NAPRAWIŁEM!!!

materials.add(Material.getMaterial(mat));

Ale nie działa teraz ta linijka:

player.getInventory().addItem(new ItemStack (materials.get(randomMaterial)));

Macie jakiś pomysł? @damianq20 @xCzuowiekBanann@HardStyl3r

PS Jednak coś potrafię ;)

Opublikowano

 

 

Boże co za społeczność.... bez obrazy, ale nie mówcie mi "trochę samodzielności", ponieważ j anie oczekuje gotowca tylko pomocy. Jak nie potraficie czytać to się nie wypowiadajcie. Wystarczy powiedzieć co jak a nie pisać całe....

Więc nie zwalajcie na mnie, bo to Wasza wina...

 

Nie wiem jak zrobić ( dla mnie to oznacza "proszę o podpowiedź" ), a nie "Napisze mi ktoś takie coś"

 

CZYTAJCIE ZE ZROZUMIENIEM I NIE ZWALAJCIE NA MNIE, BO NIE WIECIE CO POTRAFIĘ A CZEGO NIE...

KAŻDY MA PRAWO CZEGOŚ NIE WIEDZIEĆ I OD TEGO SĄ INNI, ABY MU PODPOWIEDZIEĆ I ZAPROWADZIĆ NA DOBRĄ DROGĘ!!!

 

 

Tak w ogóle zrobiłem jak mówiłeś @HardStyl3r i coś źle napisałeś :-

Tutaj:

player.getInventory().addItem(materials.get(randomMaterial));
Nie może być additem

Co ma być innego?

Ooo.. Też nie wiesz?

Proszę pomóż...

 

Jeszcze na koniec tego posta powiem, że w pierwszym pluginie 2/4 zrobiłem sam, w drugim 3/4 sam, a w tym to cały sam, więc mam prawo jednej rzeczy nie wiedzieć i proszę nie mówić, że jestem nie samodzielny, nic nie potrafię i czekam na gotowce, bo w cale nie czekam na gotowce tylko na wytłumaczenie. @damianq20 @xCzuowiekBanann@HardStyl3r

 

napisałem ci co jest żle <chyba tak mi się przynajmniej wydawało napisałem też jak to zrobić ba mało tego podałem ci książkę w której piszę prawie wszystko co robisz żle :/ tu nie chodzi o brak wiedzy ale podstawowe błędy z samym językiem Java

 

player.getInventory().addItem(materials.get(randomMaterial)); < nie pamiętam jak to jest teraz ale kiedyś jako parametr należało podać obiekty ItemStack

 

i taka sprawa config najlepiej pobrać tylko raz !

 

Faktycznie, tutaj trzeba byłoby zrobić Material.

Spróbuj tak:

rrayList<Material> materials = new ArrayList<Material>();
for(String mat : getConfig().getStringList("Materialy")){
    materials.add(Material.valueOf(mat));
}
int randomMaterial = new Random().nextInt(materials.size());
player.getInventory().addItem(new ItemStack(materials.get(randomMaterial), <liczba przedmiotów, proponuję do configów dodać po średniku tą wartość i ją splitować>));

 

kod jest taki sobie, bo w configu bedzie musial podawać nazwy takie, jakie spigot ma, czyli np. Material.STONE, zamiast stone, dlatego najlepiej stworzyć osobną klasę do obsługi takiego configu i parser.

 

@topic

stwórz sobie parser (jeżeli jesteś początkujący, to wygoogluj co to jest), żeby nie podawać nazw typu Material.SPONGE, tylko po prostu samo sponge; wygodniejsze i przede wszystkim czytelniejsze + to, co napisał @HardStyl3r

 

 

 

 

fKJeAI4.jpg

 

 

 

Opublikowano

 

 

 

Boże co za społeczność.... bez obrazy, ale nie mówcie mi "trochę samodzielności", ponieważ j anie oczekuje gotowca tylko pomocy. Jak nie potraficie czytać to się nie wypowiadajcie. Wystarczy powiedzieć co jak a nie pisać całe....

Więc nie zwalajcie na mnie, bo to Wasza wina...

 

Nie wiem jak zrobić ( dla mnie to oznacza "proszę o podpowiedź" ), a nie "Napisze mi ktoś takie coś"

 

CZYTAJCIE ZE ZROZUMIENIEM I NIE ZWALAJCIE NA MNIE, BO NIE WIECIE CO POTRAFIĘ A CZEGO NIE...

KAŻDY MA PRAWO CZEGOŚ NIE WIEDZIEĆ I OD TEGO SĄ INNI, ABY MU PODPOWIEDZIEĆ I ZAPROWADZIĆ NA DOBRĄ DROGĘ!!!

 

 

Tak w ogóle zrobiłem jak mówiłeś @HardStyl3r i coś źle napisałeś :-

Tutaj:

player.getInventory().addItem(materials.get(randomMaterial));
Nie może być additem

Co ma być innego?

Ooo.. Też nie wiesz?

Proszę pomóż...

 

Jeszcze na koniec tego posta powiem, że w pierwszym pluginie 2/4 zrobiłem sam, w drugim 3/4 sam, a w tym to cały sam, więc mam prawo jednej rzeczy nie wiedzieć i proszę nie mówić, że jestem nie samodzielny, nic nie potrafię i czekam na gotowce, bo w cale nie czekam na gotowce tylko na wytłumaczenie. @damianq20 @xCzuowiekBanann@HardStyl3r

 

napisałem ci co jest żle <chyba tak mi się przynajmniej wydawało napisałem też jak to zrobić ba mało tego podałem ci książkę w której piszę prawie wszystko co robisz żle :/ tu nie chodzi o brak wiedzy ale podstawowe błędy z samym językiem Java

 

player.getInventory().addItem(materials.get(randomMaterial)); < nie pamiętam jak to jest teraz ale kiedyś jako parametr należało podać obiekty ItemStack

 

i taka sprawa config najlepiej pobrać tylko raz !

 

Faktycznie, tutaj trzeba byłoby zrobić Material.

Spróbuj tak:

rrayList<Material> materials = new ArrayList<Material>();
for(String mat : getConfig().getStringList("Materialy")){
    materials.add(Material.valueOf(mat));
}
int randomMaterial = new Random().nextInt(materials.size());
player.getInventory().addItem(new ItemStack(materials.get(randomMaterial), <liczba przedmiotów, proponuję do configów dodać po średniku tą wartość i ją splitować>));

 

kod jest taki sobie, bo w configu bedzie musial podawać nazwy takie, jakie spigot ma, czyli np. Material.STONE, zamiast stone, dlatego najlepiej stworzyć osobną klasę do obsługi takiego configu i parser.

 

@topic

stwórz sobie parser (jeżeli jesteś początkujący, to wygoogluj co to jest), żeby nie podawać nazw typu Material.SPONGE, tylko po prostu samo sponge; wygodniejsze i przede wszystkim czytelniejsze + to, co napisał @HardStyl3r

 

będzie mógł podać stone, bo zrobiłem Material.valueOf, nie wprowadzaj ludzi w błąd.

 

sygnatura.png

Gość tomecki1
Opublikowano

 

 

 

 

Boże co za społeczność.... bez obrazy, ale nie mówcie mi "trochę samodzielności", ponieważ j anie oczekuje gotowca tylko pomocy. Jak nie potraficie czytać to się nie wypowiadajcie. Wystarczy powiedzieć co jak a nie pisać całe....

Więc nie zwalajcie na mnie, bo to Wasza wina...

 

Nie wiem jak zrobić ( dla mnie to oznacza "proszę o podpowiedź" ), a nie "Napisze mi ktoś takie coś"

 

CZYTAJCIE ZE ZROZUMIENIEM I NIE ZWALAJCIE NA MNIE, BO NIE WIECIE CO POTRAFIĘ A CZEGO NIE...

KAŻDY MA PRAWO CZEGOŚ NIE WIEDZIEĆ I OD TEGO SĄ INNI, ABY MU PODPOWIEDZIEĆ I ZAPROWADZIĆ NA DOBRĄ DROGĘ!!!

 

 

Tak w ogóle zrobiłem jak mówiłeś @HardStyl3r i coś źle napisałeś :-

Tutaj:

player.getInventory().addItem(materials.get(randomMaterial));
Nie może być additem

Co ma być innego?

Ooo.. Też nie wiesz?

Proszę pomóż...

 

Jeszcze na koniec tego posta powiem, że w pierwszym pluginie 2/4 zrobiłem sam, w drugim 3/4 sam, a w tym to cały sam, więc mam prawo jednej rzeczy nie wiedzieć i proszę nie mówić, że jestem nie samodzielny, nic nie potrafię i czekam na gotowce, bo w cale nie czekam na gotowce tylko na wytłumaczenie. @damianq20 @xCzuowiekBanann@HardStyl3r

 

napisałem ci co jest żle <chyba tak mi się przynajmniej wydawało napisałem też jak to zrobić ba mało tego podałem ci książkę w której piszę prawie wszystko co robisz żle :/ tu nie chodzi o brak wiedzy ale podstawowe błędy z samym językiem Java

 

player.getInventory().addItem(materials.get(randomMaterial)); < nie pamiętam jak to jest teraz ale kiedyś jako parametr należało podać obiekty ItemStack

 

i taka sprawa config najlepiej pobrać tylko raz !

 

Faktycznie, tutaj trzeba byłoby zrobić Material.

Spróbuj tak:

rrayList<Material> materials = new ArrayList<Material>();
for(String mat : getConfig().getStringList("Materialy")){
    materials.add(Material.valueOf(mat));
}
int randomMaterial = new Random().nextInt(materials.size());
player.getInventory().addItem(new ItemStack(materials.get(randomMaterial), <liczba przedmiotów, proponuję do configów dodać po średniku tą wartość i ją splitować>));

 

kod jest taki sobie, bo w configu bedzie musial podawać nazwy takie, jakie spigot ma, czyli np. Material.STONE, zamiast stone, dlatego najlepiej stworzyć osobną klasę do obsługi takiego configu i parser.

 

@topic

stwórz sobie parser (jeżeli jesteś początkujący, to wygoogluj co to jest), żeby nie podawać nazw typu Material.SPONGE, tylko po prostu samo sponge; wygodniejsze i przede wszystkim czytelniejsze + to, co napisał @HardStyl3r

 

będzie mógł podać stone, bo zrobiłem Material.valueOf, nie wprowadzaj ludzi w błąd.

 

Tylko, że jak mam valueOf() to mi wyskakuje błąd...

 

 

[17:08:12 WARN]: [EpicLottery] Default system encoding may have misread config.yml from plugin jar

[17:08:12 ERROR]: null

org.bukkit.command.CommandException: Unhandled exception executing command 'loteria' in plugin EpicLottery v_1.0

        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:740) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:957) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:818) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:47) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:157) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.ServerConnection.c(SourceFile:134) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:667) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:258) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:558) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:469) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

Caused by: java.lang.IllegalArgumentException: No enum constant org.bukkit.Material.Diamond

        at java.lang.Enum.valueOf(Unknown Source) ~[?:1.8.0_91]

        at org.bukkit.Material.valueOf(Material.java:64) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at me.tomecki1.Lottery.EpicLottery.onCommand(EpicLottery.java:41) ~[?:?]

        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        ... 13 more

 

 

Gość tomecki1
Opublikowano

jaki to konkretnie błąd?

A przepraszam, nie określiłem.

Tu jest kod:

 

 

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (sender.hasPermission("ELottery.lottery")) {
            if (cmd.getName().equalsIgnoreCase("Loteria")) {
                Player player = (Player) sender;
                
   
                ArrayList<Material> materials = new ArrayList<Material>();
                for(String mat : getConfig().getStringList("Materialy")){
                    materials.add(Material.valueOf(mat));
                }
                int randomMaterial = new Random().nextInt(materials.size());
                player.getInventory().addItem(new ItemStack (materials.get(randomMaterial)));
                
              
                    sender.sendMessage(ChatColor.GREEN + "[" + ChatColor.BLUE + "EpicChere" + ChatColor.GREEN + "] "
                            + getConfig().getString("Message.PlayerHasntMoney").replace("&", "§"));
                }
            }
        //}
        return true;
    }

 

 

 

A linijka 41 to:

materials.add(Material.valueOf(mat));

 

Logi są wyżej

Opublikowano

 

jaki to konkretnie błąd?

A przepraszam, nie określiłem.

Tu jest kod:

 

 

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (sender.hasPermission("ELottery.lottery")) {
            if (cmd.getName().equalsIgnoreCase("Loteria")) {
                Player player = (Player) sender;
                
   
                ArrayList<Material> materials = new ArrayList<Material>();
                for(String mat : getConfig().getStringList("Materialy")){
                    materials.add(Material.valueOf(mat));
                }
                int randomMaterial = new Random().nextInt(materials.size());
                player.getInventory().addItem(new ItemStack (materials.get(randomMaterial)));
                
              
                    sender.sendMessage(ChatColor.GREEN + "[" + ChatColor.BLUE + "EpicChere" + ChatColor.GREEN + "] "
                            + getConfig().getString("Message.PlayerHasntMoney").replace("&", "§"));
                }
            }
        //}
        return true;
    }

 

 

 

A linijka 41 to:

materials.add(Material.valueOf(mat));

 

Logi są wyżej

 

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if(sender.hasPermission("ELottery.lottery")) {
        if(cmd.getName().equalsIgnoreCase("Loteria")) {
            Player player = (Player) sender;
            ArrayList<Material> materials = new ArrayList<Material>();
            for(String mat : getConfig().getStringList("Materialy")){
                materials.add(Material.valueOf(mat.toUpperCase()));
            }
            int randomMaterial = new Random().nextInt(materials.size());
            player.getInventory().addItem(new ItemStack (materials.get(randomMaterial), 1));
            sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a[&bEpicChere&a] " + getConfig().getString("Message.PlayerHasntMoney")));
        }
    }
    return true;
}

 

sygnatura.png

Gość tomecki1
Opublikowano

 

 

jaki to konkretnie błąd?

A przepraszam, nie określiłem.

Tu jest kod:

 

 

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (sender.hasPermission("ELottery.lottery")) {
            if (cmd.getName().equalsIgnoreCase("Loteria")) {
                Player player = (Player) sender;
                
   
                ArrayList<Material> materials = new ArrayList<Material>();
                for(String mat : getConfig().getStringList("Materialy")){
                    materials.add(Material.valueOf(mat));
                }
                int randomMaterial = new Random().nextInt(materials.size());
                player.getInventory().addItem(new ItemStack (materials.get(randomMaterial)));
                
              
                    sender.sendMessage(ChatColor.GREEN + "[" + ChatColor.BLUE + "EpicChere" + ChatColor.GREEN + "] "
                            + getConfig().getString("Message.PlayerHasntMoney").replace("&", "§"));
                }
            }
        //}
        return true;
    }

 

 

 

A linijka 41 to:

materials.add(Material.valueOf(mat));

 

Logi są wyżej

 

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if(sender.hasPermission("ELottery.lottery")) {
        if(cmd.getName().equalsIgnoreCase("Loteria")) {
            Player player = (Player) sender;
            ArrayList<Material> materials = new ArrayList<Material>();
            for(String mat : getConfig().getStringList("Materialy")){
                materials.add(Material.valueOf(mat.toUpperCase()));
            }
            int randomMaterial = new Random().nextInt(materials.size());
            player.getInventory().addItem(new ItemStack (materials.get(randomMaterial), 1));
            sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a[&bEpicChere&a] " + getConfig().getString("Message.PlayerHasntMoney")));
        }
    }
    return true;
}

Niestety to też nie działa.

Oto cały kod:

 

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (sender.hasPermission("ELottery.lottery")) {
            if (cmd.getName().equalsIgnoreCase("Loteria")) {
                Player player = (Player) sender;
                Random random = new Random();
                economy.withdrawPlayer(player, 10);
                int[] ilosci = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
                int ilosc = random.nextInt(ilosci.length);
                ArrayList<Material> materials = new ArrayList<Material>();
                for(String mat : getConfig().getStringList("Materialy")){
                    materials.add(Material.valueOf(mat.toUpperCase()));
                }
                int randomMaterial = random.nextInt(materials.size());
                if (economy.getBalance(player) > 0) {
                    player.getInventory().addItem(new ItemStack (materials.get(randomMaterial), ilosc));
                    player.sendMessage(ChatColor.GREEN + "[" + ChatColor.BLUE + "EpicChere" + ChatColor.GREEN + "] "
                            + ChatColor.GOLD + "Gratulacje!" + ChatColor.DARK_AQUA + " Wygrałeś: "
                            + ChatColor.DARK_GREEN + materials.get(randomMaterial) + ChatColor.DARK_AQUA + " w ilości: "
                            + ChatColor.DARK_GREEN + ilosc);
                } else {
                    sender.sendMessage(ChatColor.GREEN + "[" + ChatColor.BLUE + "EpicChere" + ChatColor.GREEN + "] "
                            + getConfig().getString("Message.PlayerHasntMoney").replace("&", "§"));
                }
            }
        }
        return true;
    }

I w tej samej linii błąd:

 

 

:01:53 INFO]: tomecki1 issued server command: /Loteria

[18:01:53 ERROR]: null

org.bukkit.command.CommandException: Unhandled exception executing command 'loteria' in plugin EpicLottery v_1.0

        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:740) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:957) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:818) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:47) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:157) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.ServerConnection.c(SourceFile:134) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:667) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:258) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:558) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:469) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

Caused by: java.lang.IllegalArgumentException: No enum constant org.bukkit.Material.IRON

        at java.lang.Enum.valueOf(Unknown Source) ~[?:1.8.0_91]

        at org.bukkit.Material.valueOf(Material.java:64) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        at me.tomecki1.Lottery.EpicLottery.onCommand(EpicLottery.java:43) ~[?:?]

        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]

        ... 13 more

>

 

 

Gość tomecki1
Opublikowano

zamiast iron musisz wpisać IRON_INGOT dla sztabki, albo IRON_BLOCK dla bloku.

O ja... Nie zauważyłem, że to tu pisze:

Caused by: java.lang.IllegalArgumentException: No enum constant org.bukkit.Material.IRON

Dziękuję, już chyba wszystko co do tego tematu.

DZIĘKUJĘ:

wszystkim, co próbowali mi pomóc, a zwłaszcza @HardStyl3r za cierpliwość i za tłumaczenie. Może macie o mnie zdanie "bądź samodzielny" " Nic nie potrafisz", ale może kiedyś je zmienicie, a ja wiem, że i tak dopiero się uczę i już coś więcej potrafię...

Opublikowano

zamiast iron musisz wpisać IRON_INGOT dla sztabki, albo IRON_BLOCK dla bloku.

 

nie wprowadzam w błąd, ale jeżeli chłopak chce się czegokolwiek nauczyć to parsery są bardzo wygodne, bo nie musi np. pisać LOG_2 czy innych dziwnych nazw mojangowskich w configu tylko normalnie może sobie nadać nazwy jakie by chciał, bo np. chce udostępnić dla większej publiczności, co jednak twoja metoda jest ok, tylko nadal nie musi dawać z capsem, wystarczy .toUpperCase() używając twojej metody :)

 

 

zamiast iron musisz wpisać IRON_INGOT dla sztabki, albo IRON_BLOCK dla bloku.

O ja... Nie zauważyłem, że to tu pisze:

Caused by: java.lang.IllegalArgumentException: No enum constant org.bukkit.Material.IRON

Dziękuję, już chyba wszystko co do tego tematu.

DZIĘKUJĘ:

wszystkim, co próbowali mi pomóc, a zwłaszcza @HardStyl3r za cierpliwość i za tłumaczenie. Może macie o mnie zdanie "bądź samodzielny" " Nic nie potrafisz", ale może kiedyś je zmienicie, a ja wiem, że i tak dopiero się uczę i już coś więcej potrafię...

 

 

9/10 odpowiedzi na wszystkie problemy jest na dev.bukkit - tam nauczysz się dużo, ale jeżeli chcesz wiedzieć więcej o języku niż posługiwanie się samym api to javastart będzie tutaj bardzo pomocna, polecam.

 

 

 

 

fKJeAI4.jpg

 

 

 

Gość tomecki1
Opublikowano

 

zamiast iron musisz wpisać IRON_INGOT dla sztabki, albo IRON_BLOCK dla bloku.

 

nie wprowadzam w błąd, ale jeżeli chłopak chce się czegokolwiek nauczyć to parsery są bardzo wygodne, bo nie musi np. pisać LOG_2 czy innych dziwnych nazw mojangowskich w configu tylko normalnie może sobie nadać nazwy jakie by chciał, bo np. chce udostępnić dla większej publiczności, co jednak twoja metoda jest ok, tylko nadal nie musi dawać z capsem, wystarczy .toUpperCase() używając twojej metody :)

 

 

zamiast iron musisz wpisać IRON_INGOT dla sztabki, albo IRON_BLOCK dla bloku.

O ja... Nie zauważyłem, że to tu pisze:

Caused by: java.lang.IllegalArgumentException: No enum constant org.bukkit.Material.IRON

Dziękuję, już chyba wszystko co do tego tematu.

DZIĘKUJĘ:

wszystkim, co próbowali mi pomóc, a zwłaszcza @HardStyl3r za cierpliwość i za tłumaczenie. Może macie o mnie zdanie "bądź samodzielny" " Nic nie potrafisz", ale może kiedyś je zmienicie, a ja wiem, że i tak dopiero się uczę i już coś więcej potrafię...

 

 

9/10 odpowiedzi na wszystkie problemy jest na dev.bukkit - tam nauczysz się dużo, ale jeżeli chcesz wiedzieć więcej o języku niż posługiwanie się samym api to javastart będzie tutaj bardzo pomocna, polecam.

 

Dziękuję, z javastart skorzystam na pewno. Dziękuję za polecenie ;) Od jutra biorę się za naukę ;D

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...