-
Ilość zawartości
134 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
2
Treść opublikowana przez rozumek29
-
masz na samym końcu </project> przekopiuj całość pliku tutaj w załączniku code <>
-
Ha, rozwiązanie było banalne, wystarczyło ustawić ArrayListe jako statyczną. Dziękuję za pomoc panowie
-
Luzik Nie, nie. Wszystko jest w jednej klasie
-
nie no i tu i tu zwraca false
-
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
-
właśnie sprawdziłem, niestety nadal to samo
-
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; }
-
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");
-
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
-
Could not pass event PlayerJoinEvent
rozumek29 odpowiedział(a) na rozumek29 pytanie w Pytania i problemy
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 -
Could not pass event PlayerJoinEvent
rozumek29 odpowiedział(a) na rozumek29 pytanie w Pytania i problemy
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; } } -
Could not pass event PlayerJoinEvent
rozumek29 odpowiedział(a) na rozumek29 pytanie w Pytania i problemy
.prepareStatement("SELECT * FROM players WHERE UUID=?"); -
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; } }
-
odpalanie kilku screenów na raz
rozumek29 odpowiedział(a) na MocSwiatla320 pytanie w Pytania i problemy
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ć -
Twoja własna strona www [ AKTUALIZACJA ]
rozumek29 odpowiedział(a) na CubeStorm temat w Archiwum współpracy
Całkiem spoko to wygląda, mimo wszystko polecam stworzyć stronę demo np na Github pages, lub własnym serwerze www.- 9 odpowiedzi
-
Nie mogę odczytać nazwy gui z configu.
rozumek29 odpowiedział(a) na rozumek29 pytanie w Pytania i problemy
XD, Dobra dzięki za pomoc moja głupota zadziwia czasami nawet mnie -
Nie mogę odczytać nazwy gui z configu.
rozumek29 odpowiedział(a) na rozumek29 pytanie w Pytania i problemy
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 -
odpalanie kilku screenów na raz
rozumek29 odpowiedział(a) na MocSwiatla320 pytanie w Pytania i problemy
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 -
Da się to zrobić WorldGuardem, chyba że chodzi ci o napisanie własnego pluginu
-
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'
-
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.
-
Dzięki wielkie
-
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
-
Dobra, teraz działa Dzięki wielkie
-
skrzynki się nie łączą i wywala błąd że nie ma w skrzynce tyle miejsca
