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

Prośba o poprawę pluginu


MineAnonim

Rekomendowane odpowiedzi

Opublikowano
  @EventHandler

  public void onLogin(PlayerLoginEvent e){  

 Main.getInst().saveConfig();

 if(!e.getPlayer().hasPermission("limit.bypass")){

 if(Bukkit.getOnlinePlayers().size() >= getInst().getConfig().getInt("Limit")){

 e.setResult(Result.KICK_OTHER);

 e.setKickMessage("Limit graczy jest osiagniety!");

 }else{

 

 }

 }else{

 

 }  

  }

 

Jeśli ktoś wie, czemu to nie działa, w sensie czemu gracze mogą wejść mimo osiągniętego limitu to prosiłbym o podpowiedź :/

Opublikowano

Po co pobierasz to "live" z configu cały czas :P załaduj to, i korzystaj, AsyncPlayerPreLoginEvent e.disallow(Result.KICK_OTHER, "Limit graczy:(");

Opublikowano

Po co pobierasz to "live" z configu cały czas :P załaduj to, i korzystaj, AsyncPlayerPreLoginEvent e.disallow(Result.KICK_OTHER, "Limit graczy:(");

 

 

Na 1.10 to nie działa :/ Nw czm.. Dzięki za poprawkę :)

Opublikowano
  @EventHandler(priority=EventPriority.HIGHEST)

  public void onLogin(AsyncPlayerPreLoginEvent e){  

 getInst().saveConfig();

 Player p = (Player) e;

 if(!p.hasPermission("limit.bypass")){

 if(online >= limit){

 e.disallow(Result.KICK_OTHER, "Limit!");

 }else{

 

 }

 }else{

 

 }  

  }

 

 

Jak użyć tego returna @Oldis i czemu on ma służyć? :?

Opublikowano

 

  @EventHandler(priority=EventPriority.HIGHEST)
  public void onLogin(AsyncPlayerPreLoginEvent e){  
 getInst().saveConfig();
 Player p = (Player) e;
 if(!p.hasPermission("limit.bypass")){
 if(online >= limit){
 e.disallow(Result.KICK_OTHER, "Limit!");
 }else{
 
 }
 }else{
 
 }  
  }
 
 
Jak użyć tego returna @Oldis i czemu on ma służyć? :?

 

 

Nie rozumiem po co w ogóle bierzesz się za pluginy, skoro ty nawet podstaw javy nie opanowałeś.

Pomijam fakt, że kod pewnie skądś zajebałeś, skoro pytasz o return'a. LeL.

 getInst().saveConfig();

Co to tutaj robi? Zapisujesz config za każym wejściem gracza? Holy :O

 

 Player p = (Player) e;

To także nie zadziała.. Castujesz cały event, do gracza? Wut.

 

W asyncPlayerPreLoginEvent masz tylko i wyłącznie UUID, więc albo opierasz rezerwacje (Permisje czy jak wy to tam zwiecie) na UUID (Obiekt User albo coś), lub korzystasz z tego poprzedniego eventu, który miałeś na początku.. Myślałem, że nie muszę tego tłumaczyć, lecz widzę, że jednak tak...

 

Gotowego kodu Ci nie dam, bo nie o to w tym chodzi :)

 

Jeśli limit jest mniejszy niż onlinePlayers oraz gracz nie posiada permisji, to anulujesz event i returnujesz.

784091427630431250239.png

Regulamin sygnatur

Opublikowano

 

 

  @EventHandler(priority=EventPriority.HIGHEST)
  public void onLogin(AsyncPlayerPreLoginEvent e){  
 getInst().saveConfig();
 Player p = (Player) e;
 if(!p.hasPermission("limit.bypass")){
 if(online >= limit){
 e.disallow(Result.KICK_OTHER, "Limit!");
 }else{
 
 }
 }else{
 
 }  
  }
 
 
Jak użyć tego returna @Oldis i czemu on ma służyć? :?

 

 

Nie rozumiem po co w ogóle bierzesz się za pluginy, skoro ty nawet podstaw javy nie opanowałeś.

Pomijam fakt, że kod pewnie skądś zajebałeś, skoro pytasz o return'a. LeL.

 getInst().saveConfig();

Co to tutaj robi? Zapisujesz config za każym wejściem gracza? Holy :O

 Player p = (Player) e;

To także nie zadziała.. Castujesz cały event, do gracza? Wut.

 

W asyncPlayerPreLoginEvent masz tylko i wyłącznie UUID, więc albo opierasz rezerwacje (Permisje czy jak wy to tam zwiecie) na UUID (Obiekt User albo coś), lub korzystasz z tego poprzedniego eventu, który miałeś na początku.. Myślałem, że nie muszę tego tłumaczyć, lecz widzę, że jednak tak...

 

Gotowego kodu Ci nie dam, bo nie o to w tym chodzi :)

 

Jeśli limit jest mniejszy niż onlinePlayers oraz gracz nie posiada permisji, to anulujesz event i returnujesz.

 

 

To już jest tak bardzo typical dla tego forum, że ktoś czegoś nie umie i zrobi źle to miesza się go z błotem.. Nie proszę Cię absolutnie o jakiekolwiek porady co do kierunku mojego programowania.. Niczego nigdy w tym evencie nie robiłem więc nw.. Cały kod pisałem intuicyjnie i znikąd go nie "zajebałem".. Ponadto ocenianie kodu na etapie tworzenia jest bardzo rozsądne.. Poza tym nie mam pojęcia skąd w tym evencie mam określić Playera? Dziękuję za pomoc

Opublikowano

 

 UUID uuid = e.getUniqueId();
 OfflinePlayer player = Bukkit.getOfflinePlayer(uuid);
 
Jedno już mam -_-

 

 

Nie jestem pewny, czy oby na pewno po skończonych czynnościach go wyjebie, ale jeśli zobaczysz spadki to będziesz musiał to zmienić, na razie zostaw.

 

I teraz sobie robisz na takiej zasadzie:

 

Jeśli limit jest mniejszy niż onlinePlayers i jeśli nie posiada permisji, to anulujesz event i go returnujesz -> return = kod zatrzymuje się w miejscu, dalej nie idzie.

 

I w żadnym przypadku nie mieszam Cię z błotem, bo nawet odnoszę się do Ciebie z szacunkiem. Chodzi mi o to po prostu, że bez podstaw javy będziesz błądził i sam nie będziesz do końca rozumiał co robisz.. Wiem z własnego doświadczenia, zaufaj mi :)

 

@Edit

 

Może jesteś wzrokowcem i to Ci rozjaśni:

if (limit < onlinePlayers && !p.hasPermission("test")) {
    //tutaj kod od cancela
    return;
}

784091427630431250239.png

Regulamin sygnatur

Opublikowano
public class Kick implements Listener{

 

 @EventHandler

 public void onLogin(AsyncPlayerPreLoginEvent e){  

 UUID uuid = e.getUniqueId();

 OfflinePlayer player = Bukkit.getOfflinePlayer(uuid);

if(Main.online >= Main.limit && !player.getPlayer().hasPermission("limit.bypass")){

e.disallow(Result.KICK_OTHER, "Limit!");

e.setLoginResult(Result.KICK_OTHER);

}

return;

 }

}

 

 

Nie działa to :/ Coś mam może z bibliotekami już serio nw od czego to.. Dałoby się to zrobić w PlayerLoginEvent pewnie ale tak samo nie wiadomo czemu nie działaa.. Przepraszam za ofensywne słowa :/ Return nw czy dobrze ale szczerze to jest to jedna z 50 kombinacji gdzie próbowałem go dać żeby zadziałało bo rzadko używam.. Dzięki wszystkim za pomoc :) Spróbuję sam coś wymyślić :/

Opublikowano

A ty w ogóle zarejestrowałeś ten event?

return ma być przed }

ja sie zapytam tylko o jedno

"Po C**J RETURN?"

return daje sie wtedy kiedy chce sie przerwać działanie kodu kiedy wykona się jakiś warunek no i tez sa inne miejsce gdzie sie go uzywa ale napewno nie w tym kodzie.

nawet net beans podpowiada w tym kodzie:

http://scr.hu/1det/r9723

wiec po co ten return?

 

@topic w klasie Main czyli w klasie w ktorej extendujesz JavaPlugin

i w onEnable robisz

getServer().getPluginManager().registerEvents(new Kick(), this);

Co ja tutaj robie...

Opublikowano

 

A ty w ogóle zarejestrowałeś ten event?

return ma być przed }

ja sie zapytam tylko o jedno

"Po C**J RETURN?"

return daje sie wtedy kiedy chce sie przerwać działanie kodu kiedy wykona się jakiś warunek no i tez sa inne miejsce gdzie sie go uzywa ale napewno nie w tym kodzie.

nawet net beans podpowiada w tym kodzie:

http://scr.hu/1det/r9723

wiec po co ten return?

 

@topic w klasie Main czyli w klasie w ktorej extendujesz JavaPlugin

i w onEnable robisz

getServer().getPluginManager().registerEvents(new Kick(), this);

 

 

Poziom MC4U, widać. xD

Return mongole stawiasz tam, gdzie kod ma się przerwać.

Jak go wypierdolisz z serwera, to po c**j ma sprawdzać cokolwiek więcej co się znajduje po tym?

Wy w ogóle tam na tym mc4u coś robicie, czy tylko piterka tą tragedię ratuje? xD

Poza tym wyraźnie mu napisałem, że returna stawił nie w tym miejscu, a ty jak debil powielasz jego kod i sapiesz, że Ci sypie Twój idiotyzm.

Hum. Great. xD

 

 

@topic

Jeśli zarejestrowałeś event i jesteś tego pewny, dodaj debuga, by sprawdzić, czy aby na pewno:

   System.out.println("debug");

784091427630431250239.png

Regulamin sygnatur

Opublikowano

 

 

A ty w ogóle zarejestrowałeś ten event?

return ma być przed }

ja sie zapytam tylko o jedno

"Po C**J RETURN?"

return daje sie wtedy kiedy chce sie przerwać działanie kodu kiedy wykona się jakiś warunek no i tez sa inne miejsce gdzie sie go uzywa ale napewno nie w tym kodzie.

nawet net beans podpowiada w tym kodzie:

http://scr.hu/1det/r9723

wiec po co ten return?

 

@topic w klasie Main czyli w klasie w ktorej extendujesz JavaPlugin

i w onEnable robisz

getServer().getPluginManager().registerEvents(new Kick(), this);

 

 

Poziom MC4U, widać. xD

Return mongole stawiasz tam, gdzie kod ma się przerwać.

Jak go wypierdolisz z serwera, to po c**j ma sprawdzać cokolwiek więcej co się znajduje po tym?

Wy w ogóle tam na tym mc4u coś robicie, czy tylko piterka tą tragedię ratuje? xD

Poza tym wyraźnie mu napisałem, że returna stawił nie w tym miejscu, a ty jak debil powielasz jego kod i sapiesz, że Ci sypie Twój idiotyzm.

Hum. Great. xD

 

 

@topic

Jeśli zarejestrowałeś event i jesteś tego pewny, dodaj debuga, by sprawdzić, czy aby na pewno:

   System.out.println("debug");

Widze że ktoś ma problem z "czytaniem z zrozumieniem", no tego cie nie naucze bo to powinienś umieć po podstawówce jeśli ja skonćzyłeś.

return w kodzie który on podał jest zbędny Panie Java Devoloperze 

"Return mongole stawiasz tam, gdzie kod ma się przerwać." o ty ale mądry jesteś zobacz

"return daje sie wtedy kiedy chce sie przerwać działanie kodu kiedy wykona się jakiś warunek" napisales to samo co ja tylko innym słowami, stary dobry jesteś xD

"Jak go wypierdolisz z serwera, to po c**j ma sprawdzać cokolwiek więcej co się znajduje po tym?" Wróżbita maciej? No bo ja po tym kodzie co wrzucił nie potrafie stwierdzić że robi coś dalej, dlatego napisałem że ten return jest bez sensu.

A jak tam twój hide**? (sądze że to twój serwer, lub na nim programujesz bo wstawiles jego prezke)

bo widze że strona pierwsze klasa http://scr.hu/1det/sx2a2 (no ofense xD)

fb nie działa

a serwer podobno (tak jest w prezce) miałbyć 1.8-1.10 ale wchodząc na 1.10 nagle "Zbyt stary serwer".

no ale co mi tam do tego

Co ja tutaj robie...

Opublikowano

 

 

 

A ty w ogóle zarejestrowałeś ten event?

return ma być przed }

ja sie zapytam tylko o jedno

"Po C**J RETURN?"

return daje sie wtedy kiedy chce sie przerwać działanie kodu kiedy wykona się jakiś warunek no i tez sa inne miejsce gdzie sie go uzywa ale napewno nie w tym kodzie.

nawet net beans podpowiada w tym kodzie:

http://scr.hu/1det/r9723

wiec po co ten return?

 

@topic w klasie Main czyli w klasie w ktorej extendujesz JavaPlugin

i w onEnable robisz

getServer().getPluginManager().registerEvents(new Kick(), this);

 

 

Poziom MC4U, widać. xD

Return mongole stawiasz tam, gdzie kod ma się przerwać.

Jak go wypierdolisz z serwera, to po c**j ma sprawdzać cokolwiek więcej co się znajduje po tym?

Wy w ogóle tam na tym mc4u coś robicie, czy tylko piterka tą tragedię ratuje? xD

Poza tym wyraźnie mu napisałem, że returna stawił nie w tym miejscu, a ty jak debil powielasz jego kod i sapiesz, że Ci sypie Twój idiotyzm.

Hum. Great. xD

 

 

@topic

Jeśli zarejestrowałeś event i jesteś tego pewny, dodaj debuga, by sprawdzić, czy aby na pewno:

   System.out.println("debug");

Widze że ktoś ma problem z "czytaniem z zrozumieniem", no tego cie nie naucze bo to powinienś umieć po podstawówce jeśli ja skonćzyłeś.

return w kodzie który on podał jest zbędny Panie Java Devoloperze 

"Return mongole stawiasz tam, gdzie kod ma się przerwać." o ty ale mądry jesteś zobacz

"return daje sie wtedy kiedy chce sie przerwać działanie kodu kiedy wykona się jakiś warunek" napisales to samo co ja tylko innym słowami, stary dobry jesteś xD

"Jak go wypierdolisz z serwera, to po c**j ma sprawdzać cokolwiek więcej co się znajduje po tym?" Wróżbita maciej? No bo ja po tym kodzie co wrzucił nie potrafie stwierdzić że robi coś dalej, dlatego napisałem że ten return jest bez sensu.

A jak tam twój hide**? (sądze że to twój serwer, lub na nim programujesz bo wstawiles jego prezke)

bo widze że strona pierwsze klasa http://scr.hu/1det/sx2a2 (no ofense xD)

fb nie działa

a serwer podobno (tak jest w prezce) miałbyć 1.8-1.10 ale wchodząc na 1.10 nagle "Zbyt stary serwer".

no ale co mi tam do tego

 

Skoro nie wiesz czy będzie miał dalej jakiś kod czy nie to po co się sapiesz? Lepiej żeby return tam był niż nie.

Opublikowano

Ziomeczki kochane. Return nie jest potrzebny przecież tutaj tylko sprawdza czy jest full graczy i ma permissie, więcej kodu nie wykonuje, więc nie ma co blokować.
 

@EventHandler
public void onJoin(AsyncPlayerPreLoginEvent e) {
  OfflinePlayer player = Bukkit.getOfflinePlayer(e.getUniqueId());

  if(Bukkit.getOnlinePlayers().size >= 100) {
    if(!player.hasPermission("Perm") {
      e.disallow(Result.KICK_OTHER, "KUP VIP");
    }
  }
}

Pisane z telefonu, więc popraw sobie ewentualne błędy i taby

 

P.S nie pamiętam czy dało się z offlineplayera tak permissie wyciągać. Ewentualnie użyj Vaulta

Opublikowano

Ziomeczki kochane. Return nie jest potrzebny przecież tutaj tylko sprawdza czy jest full graczy i ma permissie, więcej kodu nie wykonuje, więc nie ma co blokować.

 

@EventHandler
public void onJoin(AsyncPlayerPreLoginEvent e) {
  OfflinePlayer player = Bukkit.getOfflinePlayer(e.getUniqueId());

  if(Bukkit.getOnlinePlayers().size >= 100) {
    if(!player.hasPermission("Perm") {
      e.disallow(Result.KICK_OTHER, "KUP VIP");
    }
  }
}

Pisane z telefonu, więc popraw sobie ewentualne błędy i taby

 

P.S nie pamiętam czy dało się z offlineplayera tak permissie wyciągać. Ewentualnie użyj Vaulta

No ale jak to przecież OLDIS MISTRZ PROGRAMOWANIA wiec że ma być tam RETURN napewno tam ma być bo inaczej jest źle on zawsze wie najlepiej jak coś zrobić. 

 

@Up 

masz bład

bo OfflinePlayer nie ma metody hasPermission

więc tak tego nie zrobi, no chyba że napisze sobie jakiś system permisji swoich, albo zrobi liste uuid w config ktorzy mogą wejść i wtedy może porównywac uuid z listy ale to tylko jedno z rozwiązań, xD

Co ja tutaj robie...

Opublikowano

 

 

 

 

A ty w ogóle zarejestrowałeś ten event?

return ma być przed }

ja sie zapytam tylko o jedno

"Po C**J RETURN?"

return daje sie wtedy kiedy chce sie przerwać działanie kodu kiedy wykona się jakiś warunek no i tez sa inne miejsce gdzie sie go uzywa ale napewno nie w tym kodzie.

nawet net beans podpowiada w tym kodzie:

http://scr.hu/1det/r9723

wiec po co ten return?

 

@topic w klasie Main czyli w klasie w ktorej extendujesz JavaPlugin

i w onEnable robisz

getServer().getPluginManager().registerEvents(new Kick(), this);

 

 

Poziom MC4U, widać. xD

Return mongole stawiasz tam, gdzie kod ma się przerwać.

Jak go wypierdolisz z serwera, to po c**j ma sprawdzać cokolwiek więcej co się znajduje po tym?

Wy w ogóle tam na tym mc4u coś robicie, czy tylko piterka tą tragedię ratuje? xD

Poza tym wyraźnie mu napisałem, że returna stawił nie w tym miejscu, a ty jak debil powielasz jego kod i sapiesz, że Ci sypie Twój idiotyzm.

Hum. Great. xD

 

 

@topic

Jeśli zarejestrowałeś event i jesteś tego pewny, dodaj debuga, by sprawdzić, czy aby na pewno:

   System.out.println("debug");

Widze że ktoś ma problem z "czytaniem z zrozumieniem", no tego cie nie naucze bo to powinienś umieć po podstawówce jeśli ja skonćzyłeś.

return w kodzie który on podał jest zbędny Panie Java Devoloperze 

"Return mongole stawiasz tam, gdzie kod ma się przerwać." o ty ale mądry jesteś zobacz

"return daje sie wtedy kiedy chce sie przerwać działanie kodu kiedy wykona się jakiś warunek" napisales to samo co ja tylko innym słowami, stary dobry jesteś xD

"Jak go wypierdolisz z serwera, to po c**j ma sprawdzać cokolwiek więcej co się znajduje po tym?" Wróżbita maciej? No bo ja po tym kodzie co wrzucił nie potrafie stwierdzić że robi coś dalej, dlatego napisałem że ten return jest bez sensu.

A jak tam twój hide**? (sądze że to twój serwer, lub na nim programujesz bo wstawiles jego prezke)

bo widze że strona pierwsze klasa http://scr.hu/1det/sx2a2 (no ofense xD)

fb nie działa

a serwer podobno (tak jest w prezce) miałbyć 1.8-1.10 ale wchodząc na 1.10 nagle "Zbyt stary serwer".

no ale co mi tam do tego

 

Skoro nie wiesz czy będzie miał dalej jakiś kod czy nie to po co się sapiesz? Lepiej żeby return tam był niż nie.

 

 

Zostaw, mama tłumaczyła, by z idiotami nie dyskutować :).

 

 

@topic

 

Pełny kod tutaj, działa bez problemów.

Może nie zarejestrowałeś w onEnable?

  @EventHandler
    public void onPlayerLoginEvent (PlayerLoginEvent e) {
        Player p = e.getPlayer();

        if (Bukkit.getOnlinePlayers().size() >= 0 && !p.hasPermission("permisja")) { // Wykonuje się, gdy na serwerze jest więcej graczy, niż powinno oraz gdy gracz nie posiada permisjii
            e.setKickMessage("Tutaj wiadomosc jaka ma mu sie wyswietlic"); // Dodatkowo \n mozesz sobie zrobic nowa linie
            e.setResult(PlayerLoginEvent.Result.KICK_WHITELIST); // Tutaj pełny spis https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/player/PlayerLoginEvent.Result.html
            return;
        }

        //Dalszy kod tutaj
    }

784091427630431250239.png

Regulamin sygnatur

Opublikowano

 

Ziomeczki kochane. Return nie jest potrzebny przecież tutaj tylko sprawdza czy jest full graczy i ma permissie, więcej kodu nie wykonuje, więc nie ma co blokować.

 

@EventHandler
public void onJoin(AsyncPlayerPreLoginEvent e) {
  OfflinePlayer player = Bukkit.getOfflinePlayer(e.getUniqueId());

  if(Bukkit.getOnlinePlayers().size >= 100) {
    if(!player.hasPermission("Perm") {
      e.disallow(Result.KICK_OTHER, "KUP VIP");
    }
  }
}

Pisane z telefonu, więc popraw sobie ewentualne błędy i taby

 

P.S nie pamiętam czy dało się z offlineplayera tak permissie wyciągać. Ewentualnie użyj Vaulta

No ale jak to przecież OLDIS MISTRZ PROGRAMOWANIA wiec że ma być tam RETURN napewno tam ma być bo inaczej jest źle on zawsze wie najlepiej jak coś zrobić. 

 

@Up 

masz bład

bo OfflinePlayer nie ma metody hasPermission

więc tak tego nie zrobi, no chyba że napisze sobie jakiś system permisji swoich, albo zrobi liste uuid w config ktorzy mogą wejść i wtedy może porównywac uuid z listy ale to tylko jedno z rozwiązań, xD

 

 

Więc do OfflinePlayera trzeba użyć np. Vaulta

Chociaż łatwiejszym sposobem byłoby użyć właśnie eventu PlayerLoginEvent 

Opublikowano

Dziękuję wszystkim za pomoc! Daje lajki bo mega mnie naprowadziliście.. Pomogliście mi myśleć xD (y) "Limit" był stringiem :c Nikomu nie życzę czegoś takiego..

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...