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

  • Odpowiedzi 142
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Rzecz w tym, że hologram ma isnieć cały czas (nawet po reloadzie czy wyłączeniu serwera), a plugin po wydaniu komendy ma go zmieniać co 1 tick (odliczanie od jednej minuty).

 

Czyli mam zrobić za pomocą api i go zapisać w pliku?

 

 

I czy można w runnable podawać czas w milidekundach (co jedną milisekunde, a nie co tick)?

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

Rzecz w tym, że hologram ma isnieć cały czas (nawet po reloadzie czy wyłączeniu serwera), a plugin po wydaniu komendy ma go zmieniać co 1 tick (odliczanie od jednej minuty).

 

Czyli mam zrobić za pomocą api i go zapisać w pliku?

 

 

I czy można w runnable podawać czas w milidekundach (co jedną milisekunde, a nie co tick)?

co jedną milisekunde? chyba cię pokupkało :D

To nie ma sensu bo i tak nikt nie zobaczy nic szybszego niż 1 na tick,bo tak działa MC

+ 1 na milisekunde były by lagi jak uj :)

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 jak jest w różnych zegarach (np. bomby)?

 

Podaje się też milisekundy.

Nie widzi się cyfr, ale widać, że się zmieniają.

 

Można czy nie można (lagami się nie przejmuj, to mój serwer i robię co mi się podoba :))

 

A... nie odpowiedziałaś na pełne pytanie, ale jak zawsze i tak like.

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

A jak jest w różnych zegarach (np. bomby)?

 

Podaje się też milisekundy.

Nie widzi się cyfr, ale widać, że się zmieniają.

 

Można czy nie można (lagami się nie przejmuj, to mój serwer i robię co mi się podoba :))

 

A... nie odpowiedziałaś na pełne pytanie, ale jak zawsze i tak like.

nigdzie nie ma nic co miało by byc wuidoczne dla gracza szybciej niż co tick... bo z taką prędkością pracuje server i gracz...

tick to 50 milisekund

A jak dasz 1 milisekunde to ni uja server tego nie wytrzyma... bo wystraczy że zrobisz jakiś większy kodzik i bedzie od trwał dłużej niż się da, i server po prsotu się zatnie..

+ nie da się tego zrobić z poziomu bukkita więc nie będzie się dało wykonywać żadnych operacji na blokach czy entity (hologramy to też entity) bo wywali error, a w głównym watku szybciej niż 1 zmiana na tick się nie da.

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

  • 3 tygodnie później...
Opublikowano

Jak zmienić nazwę i opis itemu w itemstacku?

 

Jaki event się wykona gdy się kliknie jakimś itemem (np. patykiem) prawym przyciskiem myszy (nie ważne gdzie, czy w powietrze, czy w blok, czy w gracza, itd...)?

I czy będzie można odczytać jego nazwę, opis i enchanty?

 

 

DEVWEBTEL

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

itemStack.getItemMeta() i tam masz opcje od takich śmieci jak setDisplayName

jak pozmieniasz to musisz dać itemStack.setItemMeta(meta)

 

Problem jest taki że może zwracać null, więc jak jest nullem to trzeba

Bukkit.getItemFactory().getItemMeta(itemStack.getType())

 

 

a co do klikania to PlayerInteractEvent i mozna tam spokojnie pobrać ItemStack itp

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 dlaczego jak sprawdzam uprawnienia ( sender.hasPermission("testplugin.admin) ) to jak ktoś ma OPa to zawsze zwraca true nawet jak nie ma tego permu w PEXie?

 

Jak to zmienić?

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

A dlaczego jak sprawdzam uprawnienia ( sender.hasPermission("testplugin.admin) ) to jak ktoś ma OPa to zawsze zwraca true nawet jak nie ma tego permu w PEXie?

 

Jak to zmienić?

no bo op ma wszystkie permissions, możesz co njawyzej spr dać mu ujemne permissions np

- -essentials.gamemoode

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

Ok, szkoda.

 

A mam taki problem.

 

Zrobiłem wczytywanie do zmiennej Material itemu z configu i mam problem.

 

Jak wczytać Light Blue Dye (niebieski jasny barwnik), nie mogę po numerze, gdyż jest dwu częściowy (XXX:12, nie pamiętam cyfr przed dwukropkiem), ani po nazwie gdyż jego nazwą jest ink (nwm jak według javy, ale tak podaje essentials przy /itemdb, a nazwy alternatywne z itemdb nie działają, sprawdziłem kilka)?

 

Więc jak go wczytać?

Wolałbym, żeby się zapisywało ID, ale ewentualnie może to być też nazwa.

 

 

DEVWEBTEL

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

Ok, szkoda.

 

A mam taki problem.

 

Zrobiłem wczytywanie do zmiennej Material itemu z configu i mam problem.

 

Jak wczytać Light Blue Dye (niebieski jasny barwnik), nie mogę po numerze, gdyż jest dwu częściowy (XXX:12, nie pamiętam cyfr przed dwukropkiem), ani po nazwie gdyż jego nazwą jest ink (nwm jak według javy, ale tak podaje essentials przy /itemdb, a nazwy alternatywne z itemdb nie działają, sprawdziłem kilka)?

 

Więc jak go wczytać?

Wolałbym, żeby się zapisywało ID, ale ewentualnie może to być też nazwa.

 

 

DEVWEBTEL

albo używasz już nie-zalecanych metod i tworząc nowy ItemStack ustawiasz te :12

new ItemStack(material, amount, meta)

 

Albo robisz to niewygodnie i poprawnie

Czyli po stworzeniu ItemStacku barwnika, pobierasz MaterialData i castujesz do: http://jd.bukkit.org/rb/doxygen/de/dc4/classorg_1_1bukkit_1_1material_1_1Dye.html

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

albo używasz już nie-zalecanych metod i tworząc nowy ItemStack ustawiasz te :12

new ItemStack(material, amount, meta)

 

Albo robisz to niewygodnie i poprawnie

Czyli po stworzeniu ItemStacku barwnika, pobierasz MaterialData i castujesz do: http://jd.bukkit.org/rb/doxygen/de/dc4/classorg_1_1bukkit_1_1material_1_1Dye.html

 

Użyję niezalecanych metod, bo to ma działać na dowolny item.

Wspomniałem o barwniku, gdyż to akturat było mi potrzebne na serwerze, a plugin musi mieć obslugę dowolnego itemu.

 

I nie działa to co mówisz. Jak to dokładnie dodać to :12?

 

A jak zmienić autora i tytuł książki?

Chodzi mi o to jak napisać w pluginie, a nie chcę, żeby zaraz ktoś odpisał: "Użyj pluginu Itemizer :)".

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

Użyję niezalecanych metod, bo to ma działać na dowolny item.

Wspomniałem o barwniku, gdyż to akturat było mi potrzebne na serwerze, a plugin musi mieć obslugę dowolnego itemu.

 

I nie działa to co mówisz. Jak to dokładnie dodać to :12?

 

A jak zmienić autora i tytuł książki?

Chodzi mi o to jak napisać w pluginie, a nie chcę, żeby zaraz ktoś odpisał: "Użyj pluginu Itemizer :)".

3 argument ten "meta" to te twoje 12

 

co do książki

BookMeta meta = (BookMeta) item.getItemMeta();

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

Nie działa :(.

 

Kodzik:

String[] mate = dane[3].split(":");
																	
Material mater = Material.getMaterial(mate[0]);

ItemStack item = null;
																		
if (mate.length == 1) item = new ItemStack(mater, Integer.valueOf(args[3]));
else item = new ItemStack(mater, Integer.valueOf(args[3]), Short.valueOf(mate[1]));

@Edit działa.

Błąd 3 linijki. Poprawne:

Material mater = Material.getMaterial(Integer.valueOf(mate[0]));

A jak dodać własne craftingi?

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

A jak odczytać dane json ze strony internetowej?

 

Chcę ograniczyć dostęp do swojego pluginu (np. udostępnie jednemu znajomemu, a po kilku godzinach pluginu używają wszyscy jego znajomi...).

 

Nie wiem czy to dobry pomysł, ale może danymi json.

 

Np. plugin przy każdym włączaniu serwera i co 5 minut (gdybym wycofał pozwolenie) łączy sie z moją stroną internetową (www.<coś tam>.net/plugin.aspx?kod=<kod z configu>&ip=<tutaj ip serwera>) i strona coś tam wyświetli (piszę w C# i nwm czy zwrócenie w labelu pomoże, jeżeli nie to ktoś by podesłał gotowy kodzik może? dane czy poprawne czy nie będą w bazie MsSQL).

Jeżeli zwróci zezwolenie to nic się nie dzieje (plugin dalej działa), a jeżeli zwróci odmowe to jeżeli serwer jest włączony to go restartuje, a jeżeli się włącza to co minutę zgłasza na chacie i na konsoli jakąś tam wiadomość oraz zapisuje to do zmiennej boolean dzięki czemu blokuje wszystkie polecenia pluginu (to to umiem zrobić :)).

 

Czy ten sposób, który zasugerowałem jest dobry?

Jeżeli nie to powiedzcie jak to można lepiej zrobić i podajcie kodzik, a jeżeli dobry to podajcie kodzik jak to zrobić.

 

Tylko pamiętajcie, że plugin nie może mieć dostępu do tej bazy danych z danymi autoryzacji.

 

DEVWEBTEL

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

A jak odczytać dane json ze strony internetowej?

 

Chcę ograniczyć dostęp do swojego pluginu (np. udostępnie jednemu znajomemu, a po kilku godzinach pluginu używają wszyscy jego znajomi...).

 

Nie wiem czy to dobry pomysł, ale może danymi json.

 

Np. plugin przy każdym włączaniu serwera i co 5 minut (gdybym wycofał pozwolenie) łączy sie z moją stroną internetową (www.<coś tam>.net/plugin.aspx?kod=<kod z configu>&ip=<tutaj ip serwera>) i strona coś tam wyświetli (piszę w C# i nwm czy zwrócenie w labelu pomoże, jeżeli nie to ktoś by podesłał gotowy kodzik może? dane czy poprawne czy nie będą w bazie MsSQL).

Jeżeli zwróci zezwolenie to nic się nie dzieje (plugin dalej działa), a jeżeli zwróci odmowe to jeżeli serwer jest włączony to go restartuje, a jeżeli się włącza to co minutę zgłasza na chacie i na konsoli jakąś tam wiadomość oraz zapisuje to do zmiennej boolean dzięki czemu blokuje wszystkie polecenia pluginu (to to umiem zrobić :)).

 

Czy ten sposób, który zasugerowałem jest dobry?

Jeżeli nie to powiedzcie jak to można lepiej zrobić i podajcie kodzik, a jeżeli dobry to podajcie kodzik jak to zrobić.

 

Tylko pamiętajcie, że plugin nie może mieć dostępu do tej bazy danych z danymi autoryzacji.

 

DEVWEBTEL

 

F5

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

Np tak:

  public static Boolean isPremium(String p)
    throws Exception
  {
    try
    {
      URL url = new URL("https://www.minecraft.net/haspaid.jsp?user=" + p);
      BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
      String result = in.readLine(); // pamiętaj że to odczytuje tylko 1 linijke, jak potrzebujesz więcej to musisz uzyc pętli
      in.close();
      return Boolean.valueOf(result);
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
    return null;
  } 

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 jaki event obsługuje za postawienie tabliczki?

 

SignUpdateEvent?

 

 

A czy kliknięcie tabliczki obsługiwać eventem PlayerInterct?

"Los nagradza przygotowanych"

 

(Liberator 2)

Opublikowano

"Los nagradza przygotowanych"

 

(Liberator 2)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...