Skocz do zawartości

rozumek29

Użytkownik
  • Ilość zawartości

    134
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    2

Treść opublikowana przez rozumek29

  1. masz na samym końcu </project> przekopiuj całość pliku tutaj w załączniku code <>
  2. Ha, rozwiązanie było banalne, wystarczyło ustawić ArrayListe jako statyczną. Dziękuję za pomoc panowie
  3. Luzik Nie, nie. Wszystko jest w jednej klasie
  4. nie no i tu i tu zwraca false
  5. hmm w zasadzie wygląda że problem leży tutaj unloginplayers.add(player.getUniqueId()); ponieważ mam też drugą komendę @Override public boolean onCommand(CommandSender sender, Command command, String s, String[] args) { if(sender instanceof Player){ Player player = (Player) sender; if (command.getName().equalsIgnoreCase("login")){ if (unloginplayers.contains(player.getUniqueId())){ if (args.length == 1){ if (loginChecker(player.getUniqueId(), args[0])){ unloginplayers.remove(player.getUniqueId()); player.sendMessage("Logowanie przebeiglo pomyslnie"); }else { player.sendMessage("Logowanie niepoprawne, sprobuj ponownie"); } }else { player.sendMessage(ChatColor.GREEN+"Prawidlowe uzycie tej komedy to /login <haslo>"); } }else { player.sendMessage(ChatColor.GREEN+"Jestes juz zalogowany"); } } i po jej wpisaniu zwraca mi to player.sendMessage(ChatColor.GREEN+"Jestes juz zalogowany"); więc wygląda na to że z jakiegoś powodu nie dodaje gracza do listy. lub faktycznie coś nie tak jest z tym unloginplayers.contains
  6. właśnie sprawdziłem, niestety nadal to samo
  7. public Boolean isPlayerRegister(UUID uuid){ try{ PreparedStatement statement = DbConnector.getConnection() .prepareStatement("SELECT * FROM players WHERE UUID=?"); statement.setString(1, uuid.toString()); ResultSet result = statement.executeQuery(); if (result.next()){ return true; }else { return false; } }catch (SQLException e){ e.printStackTrace(); } return false; }
  8. jest tam, tylko nie skopiowałem po prostu, sorki. ogólnie onJoin się wykonuję, bo po wejściu na serwer wysyłą do gracza to player.sendMessage("Wpisz /Register");
  9. Witam, mam taki oto kod public ArrayList<UUID> unloginplayers = new ArrayList<>(); public void onJoin(PlayerJoinEvent event){ Player player = event.getPlayer(); unloginplayers.add(player.getUniqueId()); if (isPlayerRegister(player.getUniqueId())){ player.sendMessage("Wpisz / Login"); }else { player.sendMessage("Wpisz /Register"); } if (unloginplayers.contains(player.getUniqueId())) { // Reszta kodu } problem polega na tym że if(unloginplayers.contains(player.getUniqueUD())) zwraca false, pomimo że gdy gracz wejdzie na serwer dodaję go to tej listy
  10. dobra, problem rozwiązany. przeanalizowałem kod i w setConnection powinno być this.connection = conection, bo wcześniej to nie miało sensu. Wielkie dzięki @LeviBoyPL za wskazanie błędu
  11. package me.rozumek29.core; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DbConnector { static Core plugin = Core.getPlugin(Core.class); private static String host, dbname, user, password; private static int port; private static Connection connection; public static void connectionSetter() { host = plugin.getConfig().getString("DataBase.HostName"); port = plugin.getConfig().getInt("DataBase.Port"); dbname = plugin.getConfig().getString("DataBase.DbName"); user = plugin.getConfig().getString("DataBase.UserName"); password = plugin.getConfig().getString("DataBase.Password"); try { if (getConnection() != null && !getConnection().isClosed()) { return; } Class.forName("com.mysql.jdbc.Driver"); setConnection(DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + dbname, user, password)); Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN+"[CORE] POLACZONO Z BAZA DANYCH"); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection(){ return connection; } public static void setConnection(Connection connection){ connection = connection; } }
  12. .prepareStatement("SELECT * FROM players WHERE UUID=?");
  13. Could not pass event PlayerJoinEvent to Core v1.0 org.bukkit.event.EventException: null at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:319) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at net.minecraft.server.v1_16_R2.PlayerList.a(PlayerList.java:200) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at net.minecraft.server.v1_16_R2.LoginListener.c(LoginListener.java:153) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at net.minecraft.server.v1_16_R2.LoginListener.tick(LoginListener.java:52) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at net.minecraft.server.v1_16_R2.NetworkManager.a(NetworkManager.java:219) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at net.minecraft.server.v1_16_R2.ServerConnection.c(ServerConnection.java:130) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at net.minecraft.server.v1_16_R2.MinecraftServer.b(MinecraftServer.java:1126) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at net.minecraft.server.v1_16_R2.DedicatedServer.b(DedicatedServer.java:349) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at net.minecraft.server.v1_16_R2.MinecraftServer.a(MinecraftServer.java:1007) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:846) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] at java.lang.Thread.run(Unknown Source) [?:1.8.0_261] Caused by: java.lang.NullPointerException at me.rozumek29.core.LoginSystem.isPlayerRegister(LoginSystem.java:28) ~[?:?] at me.rozumek29.core.LoginSystem.onJoin(LoginSystem.java:19) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_261] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_261] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_261] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_261] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[spigot-1.16.3.jar:git-Spigot-17d78db-5c77bd2] ... 14 more public class LoginSystem implements Listener { public ArrayList<UUID> unloginplayers = new ArrayList<>(); @EventHandler public void onJoin(PlayerJoinEvent event){ unloginplayers.add( event.getPlayer().getUniqueId()); if (isPlayerRegister( event.getPlayer().getUniqueId())){ event.getPlayer().sendMessage("Wpisz / Login"); }else { event.getPlayer().sendMessage("Wpisz /Register"); } } public Boolean isPlayerRegister(UUID uuid){ try{ PreparedStatement statement = DbConnector.getConnection() .prepareStatement("SELECT * FROM players WHERE UUID=?"); statement.setString(1, uuid.toString()); ResultSet result = statement.executeQuery(); if (result.next()){ return true; } }catch (SQLException e){ e.printStackTrace(); } return false; } }
  14. No ja to widzę tak że robisz do każdego serwera plik start.sh w którym będzie polecenie startowe (Java -Xmx itd) w katalogu każdego serwer. następnie np w katalogu home tworzysz plik startowy w którym będzie polecenie (screen -m <ścieżka do pliku>) możesz też dodać atrybut -S i nadać nazwę screenowi aby go łatwo odnaleźć. Końcowy efekt powinien wyglądać mniej więcej tak: Screen -S "Proxy" -m /home/proxy/start.sh Screen -S "Lobby" -m /home/lobby/start.sh Screen -S "Survival" -m /home/Survival/start.sh Zaznaczam że ścieżki pewnie się różnią więc musisz je zmodyfikować
  15. Całkiem spoko to wygląda, mimo wszystko polecam stworzyć stronę demo np na Github pages, lub własnym serwerze www.
  16. XD, Dobra dzięki za pomoc moja głupota zadziwia czasami nawet mnie
  17. wklepałem po prostu podczas wywoływania komendy player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("options.gui_name")) zwróciło po prostu na czerwono nazwę GUI
  18. stwórz jeden plik startowy w którym będą polecenia do uruchomienia reszty screen ./<server1>/start.sh screen ./<serwer2>/start.sh itd tylko daj jeszcze atrybut żeby odrazu do nich się nie logowało
  19. rozumek29

    niszczenie farm

    Da się to zrobić WorldGuardem, chyba że chodzi ci o napisanie własnego pluginu
  20. Witam, tak jak w tytule, event mi nie działa, ponieważ z jakiegoś powodu błędnie odczytuję nazwę gui z configu. @EventHandler public void clickEvent(InventoryClickEvent event){ if (event.getView().getTitle().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&', getConfig().getString("options.gui_name")))){ event.setCancelled(true); } } options: #Wielkosc gui musi byc wielokrotnoscia liczby 9 gui_size: 9 gui_name: '&4KITY'
  21. Sorki za odświeżenie tematu, ale ja np korzystam od zawsze z IntelliJ, ponieważ moim zdaniem Eclips jest brzydki i mniej intuicyjny, więc polecam cieplutko, tym bardziej że ma świetny plugin dedykowany do tworzenia własnie pluginów do MC zintegrowany z Mavenem i wiele on ułatwia.
  22. Dzięki wielkie
  23. Witam mam pewne pytanie. mam przykładowo taki config. Drop: Diamond: Chance: 10 Gold_Ingot: Chance: 10 W jaki sposób mogę wczytać liczbę np z Diamond -> Chance
  24. Dobra, teraz działa Dzięki wielkie
  25. skrzynki się nie łączą i wywala błąd że nie ma w skrzynce tyle miejsca
×
×
  • Dodaj nową pozycję...