Skocz do zawartości

Sneyrox

Użytkownik
  • Ilość zawartości

    12
  • Rejestracja

  • Ostatnia wizyta

1 obserwujący

O Sneyrox

  • Urodziny 04/30/2003 (23.097528895 lat)

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Warszawa
  • Hobby
    Pisanie pluginów kiedyś może aplikacje w javie
  • Nick w MC
    Sneyrox

Metody kontaktu

Ostatnie wizyty

1038 wyświetleń profilu

Osiągnięcia Sneyrox

  1. Od teraz listę TODO mam na swoim discordzie: https://discord.gg/YRzvYj7F4R
  2. to polecam zmienić Spigota na PaperSpigota, bo nic się nie stanie bo paper to fork Spigota, a to poprawi ci działanie. to może go zmienić żeby uniknąć błędu
  3. Tego nie zrobisz w taki sposób najlepiej to zbanować nick gracza i później sprawdzać, czy taka osoba jest na serwerze i wtedy kick. Co do twojego DBUtila to nie jest za dobry, jest to tak samo, jak z ładowaniem itemStackow przy starcie serwera. Do tego musisz wiedzieć na czym polega programowanie obiektowe w Javie. I użyć tego w twoim kodzie, bo jest optymalne pobierać np. powód z pamięci pluginu, a nie obciążać bazę danym kolejnym zapytaniem. Tworzysz objekt Ban: public class Ban { private final String name; private final String reason; public Ban(String name, String reason){ this.name = name; this.reason = reason; } //tworzysz sobie tutaj gettery do wszystkich pól public String getName(){ return this.name; } } Później tworzysz klasę BanManager, w której głównym polem jest Lista lub Mapa, w której przetrzymujesz pamięć. Tworzysz sobie metody takie jak createBan, removeBan i getBan. Do tego w jakiejś klasie przy każdym włączaniu pluginu ładujesz bazę danych za pomocą ResultSet dodając objekt do managera. Co do błędu z tematu usuń po prostu Objects.requireNonNull i w metodzie od czasu, zamiast nulla powinieneś wpisać 0L. Nie chce ci już więcej dawać wszystkiego na tacy, jak nie będziesz dawał rady to poszukaj na githubie coś z bazą danych, a w ostateczności napisz tutaj / lub nowy temat.
  4. W głownym folderze od serwera znajdz paper.yml a w nim cntr + f i remove-corrupt-tile-entities lub remove-invalid-mob-spawner-tile-entities i zmień wartość na przeciwną.
  5. Cześć, chciałbym wam zaprezentować mój pierwszy publiczny plugin. Plugin dodaje ochronę dla nowych graczy oznacza to, że podczas ochrony taki gracz nie może otrzymać obrażeń od drugiego gracza. W configu zawarte są wszystkie rzeczy z pluginu. Prezentacja: W pluginie znajduje się: system nameTagów. Wiadomość actionBar z pozostałym czasem ochrony. Wiadomości title przed i po ochronie. Komenda umożliwiająca sprawdzenie pozostałego czasu oraz wyłączenie ochrony. Komendy: /protection - Pokazuje pozostały czas ochrony. /protection disable - Umożliwia wcześniejsze wyłączenie ochrony. TODO: Masz pomysł co dodać do pluginu? Zajrzyj tutaj. Dodanie eventów takich jak: ProtectionAddEvent, ProtectionExpireEvent Konfiguracja: # Protection time in seconds protectionTime: 300 nameTag: # Whether nameTags should be enabled status: true # To choose a prefix or suffix (PREFIX, SUFFIX) type: 'SUFFIX' # Appearance of nameTag view: " &ePROTECTION" actionBar: # Whether actionBar should be enabled status: true # Appearence of actionBar message message: "&eYour protection ends in: &f{TIME}" title: settings: fadeIn: 20 stay: 60 fadeOut: 20 start: # Whether title message on join should be enabled status: true up: "&6Protection" down: "&eYou have received a protection for &f5 minutes!" end: # Whether title message on protection end should be enabled status: true up: "&6Protection" down: "&cYour protection is over!" protection: # message when you hit player while you have protection youhave: up: "&6Protection" down: "&eYou can't hit players while you have protection." someonehave: up: "&6Protection" down: "&eThis player have protection!" # Whether command /protection should be enabled protectionCommandStatus: true # Whether subcommand /protection disable should be enabled protectionDisablerCommandStatus: true protectionDisablerCommandName: "disable" messages: # message when you are not protected noProtection: "&cYou have no protection!" # message when you have protection haveProtection: - "&6Your protection ends in: &f{TIME}" - "&6to disable it, type: &c/protection disable" # message when you disable protection disableProtection: "&cYou turned off protection!" Download pluginu: SpigotMC Kod źródłowy pluginu: GitHub
  6. Błąd jest raczej w DBUtil pewnie null a użyłeś Objects.requireNonNull, dlatego wyrzuca ci błąd, najlepiej pokaż tego utila. Co do kodu jest on stasznie nie czytelny pozwolę sobie, się trochę rozpisać. 1. Nazwy paczek (package) powinny być małą literą. 2. Jeżeli tworzysz klase to nazwe zrób zgodną z PascalCase np (TempBanCommand) 3. Nie powinno się mieszać polskiego i angielskiego. 4. Cały czas pobierasz wszystko z configu, zamiast załadować go przy starcie serwera przykładowy config. 5. Tutaj ewidentnie kłaniają się podstawy Javy. if(args.length == 0 | args.length == 1) { } if (args.leght < 2){ } 6. Ten kod możesz uprościć używając metody join() z StringUtils. StringBuilder powod = new StringBuilder(); for(int i = 2; i < args.length; i++){ powod.append(args[i]).append(" "); } if(powod.length()==0) powod = new StringBuilder("Nie podano"); powod = new StringBuilder(powod.toString().trim()); String reason = "Brak"; if (args.length > 2){ reason = StringUtils.join(args, " ", 2, args.length); } 7. Tak samo ten od gracza, 2 razy używasz Bukkit.getPlayerExact() if(Bukkit.getPlayerExact(args[0])==null){ sender.sendMessage("nie znaleziono gracza"); return true; } UUID id = Bukkit.getPlayerExact(args[0]).getUniqueId(); final Optional<Player> player = Optional.ofNullable(Bukkit.getPlayer(args[0])); if (!player.isPresent()){ sender.sendMessage("Gracz jest offline!"); return false; } uuid pobierasz wtedy player.get().getUniqueId(); 8. kod który wyznacza ci czas blokady jest taki sam w 4 klasach (tak zgaduje), lepiej zrobić utila w którym dasz sobie ten kod i nie będzie on powtarzany 4 razy.
  7. Cześć mam takie pytanko ostatnio robie bota na serwer i chciałem zrobić komendę, która pokazuje ile osób zaprosiłeś na serwer. Ktoś może wie jak do tego podejść? Zrobiłem sobie managera do invite, ale dalej nie wiem jak w eventach to zrobić. Dodam jeszcze tylko, że używam JDA.
  8. Sneyrox

    itemstack głowy

    Tak te durability oznacza jaka głowę chcesz. Możesz tak wybrać każda głowę potwora i gracza
  9. Sneyrox

    itemstack głowy

    Problem jest tutaj: Musisz to skastować do ItemMety: final Player player = (Player)sender; final ItemStack itemStack = new ItemStack(Material.SKULL_ITEM, 1, (short)3); final SkullMeta meta = (SkullMeta)itemStack.getItemMeta(); meta.setOwner(name); itemStack.setItemMeta((ItemMeta)meta); player.getInventory().addItem(itemStack);
  10. Pokazałeś że masz config może nie ma linijki "uprawnienia.chatkolor" i dlatego wyrzuca ci błąd? Nie potrzebnie cancelujesz ten event możesz poprostu ustawić format co umożliwia AsyncPlayerChatEvent czyli setFormat();
  11. Ja szukając parę miesięcy temu polskiego poradnika nic nie znalazłem, jeżeli rozumiesz angielski to możesz obejrzeć na YouTube serię u MenuDocs jak tworzy bota.
  12. Sneyrox

    bledy w konsoli

    Wyrzuca ci wyjątek w consoli przez źle zrobiona klase główną a dokładniej ten konstruktor który nie ma prawa bytu
×
×
  • Dodaj nową pozycję...