Plugin wywala błędy

Pytania i problemy
java, bukkit
czvpka
czvpka
Timo
Timo Moderator forum.lvlup.pro

Heh, jeszcze dużo nauki przed tobą :D W klasie Main usuń this przed getCommand i powinno wszystko działać. Jak to this się tam znalazło? Miałoby to zastosowanie, gdyby komenda była w klasie Main, a wtedy zamiast new KLASA byłoby this - na przyszłość: this oznacza funkcję zastosowaną w tej samej klasie, gdzie jest ono napisane. Pytanie: Jak wygląda twój plugin.yml? Jesli po zmianie z this dalej nie będzie działać, to podeślij mi plugin.yml ;)

EDIT: Ważny błąd, opcja extends JavaPlugin może być wyłącznie w klasie Main! To jest druga, a właściwie pierwsza przyczyna tego błędu.

czvpka
czvpka

Okej, już to poprawię, zbuilduje i wrzuce na serwer 😛

Timo
Timo Moderator forum.lvlup.pro

Potem napisz, czy się udało ;)

czvpka
czvpka

@Timo 690x190

W Main usunąłem już "this." przed getCommand(), ale to wyskoczyło w CommandKit 😕

@Edit plugin.yml: http://pastebin.com/raw/0srdBz82

Timo
Timo Moderator forum.lvlup.pro

Brakuje ci overrida, zrób w ten sposób: public class NAZWA_KLASY implements CommandExecutor{ @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){ I zaimplementuj te wszystkie importy :D

czvpka
czvpka

Pokombinowałem troche, teraz nie mam żadnego błędu, jednak nie wiem, jak z poprawnością kodu 😂 http://pastebin.com/raw/wh3EFddq

Timo
Timo Moderator forum.lvlup.pro

No i git, przekopiuj od if sender instanceof player aż do } od niego i wklej to do tego na dole, a ten górny public boolean on command usuń.

Timo
Timo Moderator forum.lvlup.pro

W ten sposób:

public class CommandKit implements CommandExecutor { @Override public boolean onCommand(CommandSender commandSender, org.bukkit.command.Command command, String s, String[] strings) { if (sender instanceof Player) { Player player = (Player) sender; ItemStack diamond = new ItemStack(Material.DIAMOND); ItemStack bricks = new ItemStack(Material.BRICK); bricks.setAmount(20); player.getInventory().addItem(bricks, diamond); } return false; } }

czvpka
czvpka

@Timo Logger log = Logger.getLogger("Minecraft");

@Override
public boolean onCommand(CommandSender commandSender, org.bukkit.command.Command command, String s, String[] strings) {
    log.info("kappa");
    return false;
}

Tak może być? 😊

Timo
Timo Moderator forum.lvlup.pro

Błąd polegał głównie na tym extends JavaPlugin oraz braku @Override, po naprawieniu tego powinno wszystko działać.

czvpka
czvpka

Okej, to teraz to zbuilduje, wrzuce na serwer i sprawdzę czy działa, dzięki 😃 PS. Masz jakiegoś Skype/Facebook'a? @Timo

Timo
Timo Moderator forum.lvlup.pro

Jak chcesz jakiś dogłębniejszy kontakt do mnie to napisz na PW, do wyboru masz GG, TeamSpeaka oraz FB (konto 'publiczne'). Zapraszam ;)

Szymon
Szymon

@Timo jak się nie znasz to się nie wypowiadaj. Bodajże adnotacja Override jest tylko dla IDE. Ewentualnie dla kompilatora. Jeżeli tej adnotacji nie będzie to nie ma różnicy. To co mówisz na temat this też mija się z prawdą.

Timo
Timo Moderator forum.lvlup.pro

@Szymon Znam się od dłuższego czasu na Bukkit API oraz całej javie, oraz dodam, jakoby po zaproponowanych przeze mnie poprawkach plugin działał poprawnie.

czvpka
czvpka

@Szymon Potwierdzam, to co @Timo powiedział, po tym, co zaproponował, plugin działał poprawnie i już nie wywalał żadnych błędów ;)

Szymon
Szymon

Zadziałał, bo problemem nie było to co napisałeś. Tylko posiadałeś 2 pluginy o tej samej nazwie w folderze plugins (być może przez pomyłkę, jak używałem eclipse miałem z tym problem).

czvpka
czvpka

Szymon:

posiadałeś 2 pluginy o tej samej nazwie w folderze plugins

Mylisz się, plik miałem o tej samej nazwie (po buildzie) i wrzucałem go tylko i sama FileZilla pytała się czy zamienić, na co odpowiadałem tak. Więc to nie był problem ;) (problemem był kod, uwierz...)

bezkapi
bezkapi

XDDDDDDDDD???????????? czy napiszesz this czy nie to i tak nic nie zmienia w tym kodzie JW. jak nie znasz to nie musisz sie wypowiadac. Pozdrawiam

@topic "Plugin already initialized!" Wystarczy wlaczyc google i wyszukac te fraze.

Timo
Timo Moderator forum.lvlup.pro

Temat jest do zamknięcia. Ja w przeciwieństwie do was przynajmniej udzieliłem się tutaj z chęcią rozwiązania problemu, a nie komentowania innych wypowiedzi. Problem został rozwiązany, czyli porady moje okazały się być słuszne. Dodam, że rozmowa została kontynuowana na Facebooku, więc mogły dojść kolejne kroki.

bezkapi
bezkapi

Twoje porady nie byly sluszne. https://github.com/Thefilippop1PL/Anti-Bot/blob/master/src/main/java/pl/filippop1/antibot/AntiBotPlugin.java#L68 To jak to dziala? PRZECIEZ THIS JEST NO NIE MOZE BYC THIS !!!!!!111111 @Szymon napisal co bylo przyczyna tego, wiec nie wiem po co mialbym pisac drugi raz to samo.

czvpka
czvpka

@Szymon, @Timo, @bezkapi Nie kłóćcie się, grunt, że plugin zadziałał. Temat do zamknięcia ;)

Timo
Timo Moderator forum.lvlup.pro

Pozwolę sobię zacytować jedną z moich wypowiedzi powyżej:

Timo:

Błąd polegał głównie na tym extends JavaPlugin oraz braku @Override

Dyskusję skończyłem, możecie się dalej wymądrzać ale nic nie zrobicie. Nie zamierzam kontynuować takiej rozmowy.

system
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.