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

Nie wyświetlająca się wiadomość przy braku uprawnienia


Pimpeek0321

Rekomendowane odpowiedzi

Opublikowano

Witam,

Nie wyświetla mi się wiadomość o braku uprawnienia, cały plugin działa poprawnie uprawnienie działa również ale nie wyświetla się wiadomość jeśli gracz nie ma uprawnienia to komendy.

Proszę osobę lepiej obeznaną w pluginach o pomoc. Z góry dzięki :)

jpg.png

Opublikowano

Po pierwsze - nie wysyłamy wiadomości do konsoli w ten sposób. Pobieramy loggera i wysyłamy wiadomość do konsoli w ten sposób

getLogger().info("Plugin zostal wlaczony!");

Po drugie  - nie tworzymy nowych metod (onEnable, onDisable, onLoad) tylko nadpisujemy je od JavaPlugin'u, dlatego też nad tymi metodami gdy klasa jest rozszerzona o JavaPlugin dodajemy adnotację 

@Override

Po trzecie - komenda nie wykona się, ponieważ jej nie zarejestrowałeś. Komendy rejestrujemy w onEnable w poniższy sposób:

getCommand("nazwaKomendy).setExecutor(new RepairCommand());

(W twoim przypadku zamiast RepairCommand(), daj this)

Po czwarte - nie musimy sprawdzać nazwy komendy gdy w plugin.yml i w onEnable rejestrujemy tylko jedną komendę (lub mamy każdą komendę w innej klasie). Sprawdzanie cmd.equalsIgnoreCase jest po prostu.. zbędne.

Po piąte - nigdzie nie sprawdzasz czy wysyłającym komendę jest gracz czy konsola, jeśli wykonasz komendę z konsoli wyrzuci Ci błąd, w taki sposób sprawdzamy czy wysyłający jest konsolą/graczem 

if (!(sender instanceof Player)) {
	//warunek, jesli wysylajacy jest konsola
}

if (sender instanceof Player) {
   //warunek, jesli wysylajacy jest gracz
}

Po szóste - nie przypominam sobie, aby przy reperowaniu przedmiotów potrzebny był blok try/catch

Po siódme - o ile wzrok mnie nie myli, eclipse pokazuje Ci, że brakuje klamerki

Po ósme - jw. w obecnym momencie wyśle wiadomość o braku permisji wtedy, gdy będzie podany jakiś argument

  • Biter. zmienił(a) tytuł na Nie wyświetlająca się wiadomość przy braku uprawnienia
Opublikowano
Cytat

Po drugie  - nie tworzymy nowych metod (onEnable, onDisable, onLoad) tylko nadpisujemy je od JavaPlugin'u, dlatego też nad tymi metodami gdy klasa jest rozszerzona o JavaPlugin dodajemy adnotację 


@Override

NIE ma zadnego wymogu aby dodawac adnotacje :L , ale jest to raczej scisle zalecane aby nie popelnic bledu np z literówka w nazwie metody ....
 

Cytat

Po czwarte - nie musimy sprawdzać nazwy komendy gdy w plugin.yml i w onEnable rejestrujemy tylko jedną komendę (lub mamy każdą komendę w innej klasie). Sprawdzanie cmd.equalsIgnoreCase jest po prostu.. zbędne.

mozesz zarejestrować nieograniczona ilosc komend na jednym Command , ale w najprostszym przypadku masz racje nie ma potrzeby tego sprawdzac

Cytat

Po piąte - nigdzie nie sprawdzasz czy wysyłającym komendę jest gracz czy konsola, jeśli wykonasz komendę z konsoli wyrzuci Ci błąd, w taki sposób sprawdzamy czy wysyłający jest konsolą/graczem 


if (!(sender instanceof Player)) {
	//warunek, jesli wysylajacy jest konsola
}

if (sender instanceof Player) {
   //warunek, jesli wysylajacy jest gracz
}

sprawdzac mozna na wiele sposobów to jest jeden z nich ...

Opublikowano
21 godzin temu, damianq20 napisał:

NIE ma zadnego wymogu aby dodawac adnotacje :L , ale jest to raczej scisle zalecane aby nie popelnic bledu np z literówka w nazwie metody ....
 

mozesz zarejestrować nieograniczona ilosc komend na jednym Command , ale w najprostszym przypadku masz racje nie ma potrzeby tego sprawdzac

sprawdzac mozna na wiele sposobów to jest jeden z nich ...

Nie ma żadnego wymogu aby dodawać adnotacje, tak samo jak nie ma wymogu pisać dobrego kodu i pisać profesjonalnie..

Może i jest wiele sposobów, ale jaki sens jest używanie innego jak ten w komendach? Powiedz mi ;)

Opublikowano
35 minut temu, xannydev napisał:

Nie ma żadnego wymogu aby dodawać adnotacje, tak samo jak nie ma wymogu pisać dobrego kodu i pisać profesjonalnie..

Może i jest wiele sposobów, ale jaki sens jest używanie innego jak ten w komendach? Powiedz mi ;)

teraz to ja już nic z tej wypowiedzi nie zrozumiałem :(.

z twojej pierwszej wypowiedzi wynika ze bez adnotacji , piszac metode ktora jest w superClass <nie wiem jak to inaczej nazwac :P) tworzy sie nowa metode co nie do konca jest prawda bo prawda jest taka ze ja tylko nadpisujesz z superClass, i o to sie czepilem

nooo o ile dobrze zrozumialem , jesli robisz wszystko jak bozia przykazala z wiki bukkita/spigota to tak rejestrujesz jedna komende do jednego wykonawcy,
pomyslu ci zadnego z rekawa nie wyciagne i pewnie nie mialo by to wiekszego sensu...??  Command.class moze byc odpowiedzialny za wiele komend , lub tez jeden CommandExecutor moze byc przypisany do kilku komend lub tez tylko po to by utrudnic zycie osobom ktore by chcialy taki kod ukrasc , wszystko zalezy od tego co potrzebujesz i co chcesz osiagnac ,. to ze ty z tego nie korzystasz to nie znaczy ze nie ma to sensu
ehm sie rozpisalem a tu tylko niecale 2 linijki opisu
https://bukkit.gamepedia.com/Plugin_Tutorial#Commands

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...