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

[Java][Bukkit]Pobieranie danych od gracza


Rekomendowane odpowiedzi

Opublikowano

Hejka! Mam poważny problem - chodzi tu o to, że aż się wstyd przyznać, ale nigdy nie zrobiłem pluginu który by pobieral liczbe/tekst/cokolwiek od gracza, no i doszło rzecz jasna do tej chwili, i bach, nie mam pojęcia jak to zrobić, próbowałem szukać, gdy już w dokumentacji poszperałem, i nadal jestem w kropce, chodzi o to:


 

if(commandLabel.equalsIgnoreCase("votedodaj") && sender.isOp()){
            if(args.length == 0){
                sender.sendMessage("Musisz wprowadzic nazwe kandydata");
            }else if(args.length == 1){
       //tutaj
            }
        }
 

 

Chodzi tutaj o to, że w zaznaczonym miejscu, czyli gdy liczba argumentów wynosi 1 (/votedodaj Kandydat1 dla przykładu), żeby mogło pobrać tą nazwę wpisaną, i zarejestrowac ją jako zmienną. Proszę o pomoc :F
Opublikowano

nie rozumiem do końca, jeżeli chodzi o jakiegoś gracza to:

Player targetP = Bukkit.getServer().getPlayer(args[0]);
 
if(args.length == 1)
{
//sprawdza czy nasz cel jest online
if(targetP != null)
 
{
//kod
}
 
}

z tym zarejestrowaniem, możesz zwyczajnie zrobić arraylist i dodawać do niego graczy potem usuwać.

<>

Opublikowano

Nie piszę pluginów w Javie, ale na logikę to chodzi Ci o args[0].

Opublikowano

Chodzi tutaj o tekst wpisany przez gracza, chodzi o to, żeby go zapisać i nim operować

 

Dla przykładu:

 

Gracz wpisuje /dodaj pannumerjeden

 

i teraz chce pobrać od niego ten drugi człon i zapisać jako zmienną.

 

Wiem jak go później zapisac, tylko jak go pobrać, w tym sęk, bo raczej nie scannerem :G

Opublikowano

No dobrze, tylko jak pobrać z tablicy args teraz to słowo, jedynie o to mi chodzi, proszę o kod (sorki, że już tak bezmyslnie trochę, ale raz że się meczę z tym od rana, a dwa, późno trochę)

Opublikowano

A jak mam to zrobić w tym przypadku (normalnie bym sprawdził przez konsole wyswietlajac :F)(pewno wychodzę na debila w tym momencie, ale ok..)

Opublikowano

Szczerze mówiąc, to nie wiem. Bukkit pewnie w swoim API udostępnia funkcję do napisania czegoś na czacie.

Opublikowano

Szczerze mówiąc, to nie wiem. Bukkit pewnie w swoim API udostępnia funkcję do napisania czegoś na czacie.

 

Okej, wyświetla to co się wpisze, to takie proste było *.*

 

Tylko teraz, jak zapisać to w zmiennej/tablicy? Tak aby było to zapisywane z późniejszą możliwością operacji --/++ oraz wyświetlenia rzecz jasna.

Opublikowano

Okej, wyświetla to co się wpisze, to takie proste było *.*

 

Tylko teraz, jak zapisać to w zmiennej/tablicy? Tak aby było to zapisywane z późniejszą możliwością operacji --/++ oraz wyświetlenia rzecz jasna.

Umm dafaq ?

 

Jak nie wiesz jak się tworzy zmienną to poczytaj trochę :s

 

No sorki ale irytuje mnie troche takie coś że człowiek nie znając nawet minimalnych podstaw bierze się za 'programowanie' i pisz później takie pierdółki -,-

Opublikowano

Umm dafaq ?

 

Jak nie wiesz jak się tworzy zmienną to poczytaj trochę :s

 

No sorki ale irytuje mnie troche takie coś że człowiek nie znając nawet minimalnych podstaw bierze się za 'programowanie' i pisz później takie pierdółki -,-

 

Umiem tworzyć zmienną :F Chodzi tu tylko to, żeby nazwa tej zmiennej była tym, co wpiszę użytkownik, i tutaj nei mam pojęcia, jak to pobrać, rozumiem, że dla kogoś, kto siedzi w tym dłużej, pytania wydają się idiotyczne, ale dla mnie nie, każda pomoc jest dla mnie cenna, bo skończyło się siedzenie na listenerach :F

Opublikowano
if(commandLabel.equalsIgnoreCase("votedodaj") && sender.isOp()){
            if(args.length == 0){
                sender.sendMessage("Musisz wprowadzic nazwe kandydata");
            }else if(args.length == 1){
                String NazwaKandydata = args[0];//0 tak jak z tablicami licz od 0
                //i teraz robisz dalej co chcesz po pobraniu argumentu.
            }
        }
 

I tak możesz sobie używać argumentów w różny sposób:

if(commandLabel.equalsIgnoreCase("votedodaj") && sender.isOp()){
            if(args.length == 0){
                sender.sendMessage("Zbyt malo argumentow");
            }else if(args.length == 2){
                 String Arg0 = args[0];
                 String Arg1 = args[1];
                 sender.sendMessage("Argument ze zmiennej: "+Arg0+" "+"Argument bezposrednio: "+ args[1]);
            }
        }
 
Opublikowano

Umiem tworzyć zmienną :F Chodzi tu tylko to, żeby nazwa tej zmiennej była tym, co wpiszę użytkownik, i tutaj nei mam pojęcia, jak to pobrać, rozumiem, że dla kogoś, kto siedzi w tym dłużej, pytania wydają się idiotyczne, ale dla mnie nie, każda pomoc jest dla mnie cenna, bo skończyło się siedzenie na listenerach :F

hmm

 

if(commandLabel.equalsIgnoreCase("votedodaj") && sender.isOp()){
if(args.length == 0){
sender.sendMessage("Musisz wprowadzic nazwe kandydata");
}else if(args.length == 1){
//tutaj
sender.sendMessage("Twoj argument to:" + args[0] );
//args[0] czyli 1 argument po komendzie
//args[1] czyli 2 argument po komendzie itp..
 

}else if(args.length==2){

 
String firstArg = args[0];
String secondArg = args[1];
sender.sendMessage("Twoje argumenty: " + firstArg + secondArg);
}
}

<>

Opublikowano

Chociaż wróć - teraz, chcę zarejestrować zmienną (int), tylko jak ? Jedyne co pragnę, żeby ta zmienna nazywała się jak args[0], wartośc to 0. Kiedy próbuje zadeklarować int z args[0] lub z tym powyżej, wyskakuje błąd, jak inaczej to wykonać?

Opublikowano

Chociaż wróć - teraz, chcę zarejestrować zmienną (int), tylko jak ? Jedyne co pragnę, żeby ta zmienna nazywała się jak args[0], wartośc to 0. Kiedy próbuje zadeklarować int z args[0] lub z tym powyżej, wyskakuje błąd, jak inaczej to wykonać?

if(commandLabel.equalsIgnoreCase("votedodaj") && sender.isOp()){
            if(args.length == 0){
                sender.sendMessage("Zbyt malo argumentow");
            }else if(args.length == 2){
                int Arg0 = Integer.parseInt(args[0]);//tu masz przyklad pobierania liczby z komendy
                 String Arg1 = args[1];
                 sender.sendMessage("Argument ze zmiennej int : "+Arg0+" "+"Argument bezposrednio: "+ args[1]);
            }
        }
 
Opublikowano

Chodzi o to, żeby tutaj Arg0 był pobierany z komendy, ponieważ ich będzie nieskończenie wiele. Dlatego nazwa musi być pobierana z komendy.

 

Opublikowano

Chodzi o to, żeby tutaj Arg0 był pobierany z komendy, ponieważ ich będzie nieskończenie wiele. Dlatego nazwa musi być pobierana z komendy.

Kiedy gracz wpisuje komendę to od nowa się przypisuje argument do zmiennej i tak nieskończenie wiele razy może robić.

No to jak dasz /twojakomenda juzio

to pobierasz sobie argument pierwszy, który jest wyrazem czyli np.:

String wyraz = args[0]; 

 

jak pobierasz jakas liczbe np. /twojakomenda jakisArgument 10 to w tym przypadku:

int liczba =Integer.parseInt(args[2]);
Opublikowano

Umm dafaq ?

 

Jak nie wiesz jak się tworzy zmienną to poczytaj trochę :s

 

No sorki ale irytuje mnie troche takie coś że człowiek nie znając nawet minimalnych podstaw bierze się za 'programowanie' i pisz później takie pierdółki -,-

sorry za offtop, ale wkurwia mnie ktoś kto krytykuje każdą prace, a nie wykazał się choćby najmniejszą wiedzą na temat programowania etc.

peace.

Opublikowano

@Grzegorz

 

Uhum..no ale jakbym chciał to w tej chwili zapisać, to zmienna liczba będzie zapisywana cały czas, czyli podmieniana, a ja tego nie chcę, chce żeby były dodawane kolejne liczby (tu, kandydaci), dlatego chce pobrać nazwę zmiennej int od gracza, np. żeby nazywała się kan1.

Opublikowano

@Grzegorz

 

Uhum..no ale jakbym chciał to w tej chwili zapisać, to zmienna liczba będzie zapisywana cały czas, czyli podmieniana, a ja tego nie chcę, chce żeby były dodawane kolejne liczby (tu, kandydaci), dlatego chce pobrać nazwę zmiennej int od gracza, np. żeby nazywała się kan1.

 

pluginu który by pobieral liczbe/tekst/cokolwiek od gracza
Główne założenie tego tematu zostało spełnione.
Co do reszty to podaj proszę szczegóły twojego pomysłu z kandydatami, bo trochę mało mówi mi trochę @up

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...