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

[Problem] Trochę pytań jak coś napisać w pluginie


Rekomendowane odpowiedzi

Opublikowano

Dzięki. A jak otrzymać dzisiejszą datę po dodaniu tego powyżej?

 

I jak to zapisać w bazie danych (i potem odczytań i porównać)?

"Los nagradza przygotowanych"

 

(Liberator 2)

  • Odpowiedzi 142
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Dzięki. A jak otrzymać dzisiejszą datę po dodaniu tego powyżej?

 

I jak to zapisać w bazie danych (i potem odczytań i porównać)?

ta metoda dodaje do dzisiejszej daty wybrany czas więc nie wiem o co ci teraz chodzi :P

 

zapisuj jako date... lub jaki zwykłą cyfrę long - czyli to co zwraca metoda

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

A... Dzieki.

 

I mam jeszcze jedno pytanie.

 

Jak sprawdzić czy w danym stringu nie ma znaków specjalnych, itp...

Tzn. ma zwrócić true jeżeli string zawiera tylko litery lub/i cyfry.

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

A... Dzieki.

 

I mam jeszcze jedno pytanie.

 

Jak sprawdzić czy w danym stringu nie ma znaków specjalnych, itp...

Tzn. ma zwrócić true jeżeli string zawiera tylko litery lub/i cyfry.

użyj RegExa

string.matches("[a-zA-Z0-9]+")

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Czy jeżeli używam:

Calendar = new GregorianCalendar();

(nie wiem czy to jest dobrze, ale to ma odczytać dzisiejszą date i czas)

 

i jeżeli mamy 28 kwietnia i wydam polecenie dodania 5 dni to wyjdzie 33 kwietnia czy 3 kwietnia?

To samo z dodawaniem miesięcy (czy przeskoczy sam na nowy rok)?

 

I jak zapisywać to do pliku i potem odczytywać?

 

I jak porównać czy data z pliku jest wcześniejsza od dzisiejszej (z tym to sobie raczej poradzę, ale wolę zapytać)?

 

Jak zawsze z góry dzięki :).

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

tak, to samo pilnuje dokładnie daty tak jak trzeba.

ogólnie do dodawania minut, godzin i tak aż do tygodni, wystraczy zwykły long i dodawanie odpowiedniej ilości milisekund - po zamianie w date i tak pokaże dobrą

 

Ale jak chce się dodawać miesiące itd, to już lepiej użyć kalendarza, bo miesiąc nie zawsze ma tyle samo dni :P

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Mi chwilowo są potrzebne dni :).

 

A jak to trzymać w pliku (Zapisywać i odczytywać) i jak porównywać?

 

PS: Jak zawsze masz like.

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

Mi chwilowo są potrzebne dni :).

 

A jak to trzymać w pliku (Zapisywać i odczytywać) i jak porównywać?

 

PS: Jak zawsze masz like.

zapisujesz jak zawsze w milisekundach, tam powinna być opcja do pobrania i ustawienia :P

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

W milisekundach?

 

Rok też?

 

Przecież to są miliardy cyfr (które pewnie trzeba przechowywać w stringu, tak?).

 

Czy nie lepiej zrobić już osobne zmienne rok, miesiąc, dzień, godzina, minuta, sekunda, milisekunda?

 

 

I odpowiesz z tym porównywaniem (czy ty odpowiadasz po jednym pytaniu, żeby nabić sobie posty i moje like?)?

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

W milisekundach?

 

Rok też?

 

Przecież to są miliardy cyfr (które pewnie trzeba przechowywać w stringu, tak?).

 

Czy nie lepiej zrobić już osobne zmienne rok, miesiąc, dzień, godzina, minuta, sekunda, milisekunda?

 

 

I odpowiesz z tym porównywaniem (czy ty odpowiadasz po jednym pytaniu, żeby nabić sobie posty i moje like?)?

od tego masz zmienną long - każdy czas się tam spokojnie zmieści i jeszcze miejsce zostanie...

To nie są ogromne cyfry bo komputery liczą czas od 1970

Przykładowy czas (coś koło 2010 r): 1 230 336 000 000

zakres "int" w javie 2 147 483 647

zakres "long" w javie:  9 223 372 036 854 775 807

            2 147 483 647 - int
        1 230 336 000 000 - czas
9 223 372 036 854 775 807 - long 

to nie jest jakoś specjalnie dużo :P

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Ja to tam zrobiłem tak:

                        p.set("Y", cal.get(Calendar.YEAR));
	            	p.set("M", cal.get(Calendar.MONTH));
	            	p.set("D", cal.get(Calendar.DAY_OF_MONTH));
	            	
	            	p.set("H", cal.get(Calendar.HOUR));
	            	p.set("min", cal.get(Calendar.MINUTE));
	            	p.set("s", cal.get(Calendar.SECOND));
	            	p.set("ms", cal.get(Calendar.MILLISECOND));

A jak porównać który z 2 kalendarzy pokazuje wcześniejszy czas?

 

Tak (calx kalendarz 1., cal kalendarz 2.):

if (calx.after(cal))

A jak zrobić w powodzie kicka nową linie?

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

Ja to tam zrobiłem tak:

                        p.set("Y", cal.get(Calendar.YEAR));
	            	p.set("M", cal.get(Calendar.MONTH));
	            	p.set("D", cal.get(Calendar.DAY_OF_MONTH));
	            	
	            	p.set("H", cal.get(Calendar.HOUR));
	            	p.set("min", cal.get(Calendar.MINUTE));
	            	p.set("s", cal.get(Calendar.SECOND));
	            	p.set("ms", cal.get(Calendar.MILLISECOND));

A jak porównać który z 2 kalendarzy pokazuje wcześniejszy czas?

 

Tak (calx kalendarz 1., cal kalendarz 2.):

if (calx.after(cal))

A jak zrobić w powodzie kicka nową linie?

nie zapisuj w wielu... to jest raczej marnowanie pamięci, na każdy kawałek używasz int - 7 x 32 = 224 bity

czas w milisekundach - 64 bity

Więc... 3.5 razy więcej

 

dodaj \n w powodzie

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Dzięki.

 

A ja pamięć lubię marnotrawić...

 

Plugin musi działać też za milion lat, gdyby ktoś odgrzebał mojego laptopa i chciał odpalić, więc ja wolę nie zapisywać w int czy long :).

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

Dzięki.

 

A ja pamięć lubię marnotrawić...

 

Plugin musi działać też za milion lat, gdyby ktoś odgrzebał mojego laptopa i chciał odpalić, więc ja wolę nie zapisywać w int czy long :).

... Ale tak się to zapisuje, ty tylko niepotrzebnie spowalniasz plugin, bo musi pobrać ten czas a potem jeszcze go doawać do siebie - marnowanie wszystkiego

 

A na 200% ktoś za 299 865 099 i pół roku bedzie chciał odpalić twój plugin do jakiejś gierki i nagle się dowie że nie działa!

Obawiam się że do tej pory albo nikt nie bedzie grać w MC, albo już wszyscy umrą

 

 

PS klasa Calendar działa tak samo... przechowuje czas w long i dodaje do niego odpowiednie wartości... więc ty robisz na złośc wszystkiemu i robisz to inaczej niż wszystko tylko po to by potem znowu używać long ale pod postacią Calendar

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Mam problem z używaniem API do Holographic Displays.

 

W jaki sposób mogę edytować dany hologram?

To znaczy mam jego nazwę i chcę zmienić np. jego 3 linie.

 

Nie chcę tego robić tak, gdyż zawali to konsolę. Chcę zrobić odliczanie z minuty (czas będzie można zmienić poleceniem) do zera z odświerzaniem co jeden nick, więc to by konsolkę zaspamiło xD.

 

Tak tego nie zrobię:

Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "hd setline test 3 &eTEST");

DEVWEBTEL

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

No właśnie ja miałem tylko polecenie do stworzenia nowego hologramu i do otrzymania listy wszystkich hologramów (w zmiennej wektorowej).

 

A oprócz kłopotu z hologramami to mam jedno pytanie: jak najlepiej zrobić plugin na gildie?

 

Czy tak jak factions claimuje się chunk, na którym się stoi (nwm. czy to trudne, ale trzeba sprawdzić czy claim ma połączenie z resztą claima) czy tak jak te prote pluginy, że claimuje się 20 bloków w każdą strone i potem powięszka na 40, 60, itd... A jak się robi tak to robić własną procedure, czy używać world guarda?

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

Porady owszem. Dużo wnoszą w temat, ale ja polecam korzystać także z dokumentacji, bo bez tego ciężko jest. Nie ma co liczyć, że nas ktoś wyręczy

Opublikowano

Mam problem z używaniem API do Holographic Displays.

 

W jaki sposób mogę edytować dany hologram?

To znaczy mam jego nazwę i chcę zmienić np. jego 3 linie.

 

Nie chcę tego robić tak, gdyż zawali to konsolę. Chcę zrobić odliczanie z minuty (czas będzie można zmienić poleceniem) do zera z odświerzaniem co jeden nick, więc to by konsolkę zaspamiło xD.

 

Tak tego nie zrobię:

Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "hd setline test 3 &eTEST");

DEVWEBTEL

to może /hd edit hologram i removeline i addline :D

Opublikowano

Porady owszem. Dużo wnoszą w temat, ale ja polecam korzystać także z dokumentacji, bo bez tego ciężko jest. Nie ma co liczyć, że nas ktoś wyręczy

 

Mówiłem, że w dokumentacji tego nie ma.

 

to może /hd edit hologram i removeline i addline :D

 

A to to spam co napisałeś. Mówiłem, że proszę o sposób używający API, a nie dispatchCommand, bo jak ma się to wywoływać 20 razy na sekunde to zaspami całą konsole i nic na niej nie będzie widać!

 

 

To jak to zrobić i jak czy pisząc plugin na gildie dać możliwość claimowania pojedynczych chunków, czy np. 30 bloków w każdą strone tylko (i potem powiększanie o kolejne 30).

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

Tam piszą jak go edytować, ale nie ma procedury, żeby hologram o danej nazwie zapisać w zmiennej Hologram (lub jakiejś innej).

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

String[] hologram.getLines()

  • Returns a copy of the lines of the hologram.


    @devwebtel mhm.... :>

733761405517115815990.png

"To, że milczę, nie znaczy, że nie mam nic do powiedzenia" ~Jonathan Carroll

Opublikowano

To to wiem, ale jak umieścić hologram o danej nawie w tej zmiennej?

bożem... podczas tworzenia...

https://github.com/filoghost/HolographicDisplays/wiki#3-start-using-the-api

i masz tam

Hologram hologram = HolographicDisplaysAPI.createHologram(this, player.getEyeLocation(), "This is a test hologram.");

i w tej zmiennej masz wszelkie potrzebne opcje

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...