Wakal 23 Opublikowano 13 lutego 2018 Udostępnij Opublikowano 13 lutego 2018 (edytowane) Tak jak w temacie, w sk jest nazwa.%player%, nazwa.%attacker%, chce wiedziec jak to zrobic, jezeli robi sie je w int i boolean jakos inaczej to porszę napisać. Dziękuje za wszystkie odpowiedzi. Edytowane 13 lutego 2018 przez Wakal Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 GoblicPL 35 Opublikowano 13 lutego 2018 Udostępnij Opublikowano 13 lutego 2018 (edytowane) Ja zazwyczaj używam HashMap'y; HashMap<Player, Integer> map = new HashMap<Player, Integer>(); lub : HashMap<Player, double> map = new HashMap<Player, double>(); Lub tez na nick: HashMap<String, Integer> map = new HashMap<String, Integer>(); lub : HashMap<String, double> map = new HashMap<String, double>(); Dodawanie: map.put(player.getName(), true); // Ustawiasz boolean na true I otrzymywanie: if(map.get(p)) // cos sie wykonuje, jesli jest na true // if(map.get(p.getName()) // A to na nick czy tez String. Edytowane 13 lutego 2018 przez GoblicPL Wakal 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Wakal 23 Opublikowano 13 lutego 2018 Autor Udostępnij Opublikowano 13 lutego 2018 (edytowane) @GoblicPL A jak chce dodac do zmiennej int gracza który wpisał daną komende? Spoiler package me.wakal.plugins; import java.util.HashMap; import java.util.Map; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin { private Map<Player, Integer> reglist = new HashMap<Player, Integer>(); @Override public void onEnable() { System.out.println("[Poradniki] Enabling..."); System.out.println("[Poradniki] Enabled."); } @Override public void onDisable() { System.out.println("[Poradniki] Disabling..."); System.out.println("[Poradniki] Disabled."); } @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (cmd.getName().equalsIgnoreCase("poradniki")) { if(sender instanceof Player) { Player p = (Player)sender; p.sendMessage("§7§l============================"); p.sendMessage("§7§l §6Regulamin "); try { Thread.sleep(2500); } catch (InterruptedException e) { e.printStackTrace(); } p.sendMessage("§b§l1§7. §fNie obrazaj administracji, ani innych graczy."); p.sendMessage("§b§l1§7. §fKazdy gracz jest rowny."); p.sendMessage("§b§l1§7. §fZakaz spamowania jedna litera na chacie(Zakaz floodowania)."); p.sendMessage("§b§l1§7. §fCheatowanie jest surowo zabronione."); p.sendMessage("§b§l1§7. §fWszelkie ulatwienia typu autoclicker/macro sa zakazane."); p.sendMessage("§b§l1§7. §fPrzestrzegaj regulaminu."); try { Thread.sleep(2500); } catch (InterruptedException e) { e.printStackTrace(); } p.sendMessage("§4§lAle wiesz, no ten... nie cheatuj."); try { Thread.sleep(2500); } catch (InterruptedException e) { e.printStackTrace(); } p.sendMessage("§7§l §6Regulamin "); p.sendMessage("§e§lRegulamin odwiedzales juz §6§l " + reglist); sender.sendMessage("§7§l============================"); }else { sender.sendMessage("You are not a player"); } } return false; } } Edytowane 13 lutego 2018 przez Wakal Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 GotoFinal 195 Opublikowano 13 lutego 2018 Udostępnij Opublikowano 13 lutego 2018 nie używaj Thread.sleep, nigdzie. Jak używasz tego w wątku serwera to zatrzymuje to cały serwer na ten podany czas... Do tego taką mapkę musiałbyś zapisywać przy zmianach i wczytywać na starcie serwera skoro chcesz tam przechowywać coś na stałe. A przechowywanie po Player w mapce też nie jest dobrym pomysłem - szczególnie jak jesteś początkujący, bo jak dodasz gracza do libki i on wyjdzie z serwera to dalej trzymasz go w mapce - a taki obiekt gracza przechowuje bardzo duże ilości danych, które zamiast zostać usunięte musza być dalej trzymane w pamięci. Lepiej trzymać po UUID. System.out.println("[Poradniki] Enabling..."); System.out.println("[Poradniki] Enabled."); Tego nie potrzebujesz, bukkit sam wysyła takie wiadomości, a do tego System.out się prawie nie używa, masz metodę w JavaPlugin, getLogger().log("wiadomość"); wtedy bukkit sam doda odpowiedni tag [Pluginu] Ale zapisu i odczytu to ja cię tutaj nie nauczę, bo zwyczajnie mi się nie chce, musisz poczytać o YamlConfiguration pod bukkita, na pewno znajdziesz sensowne wyjaśnienia. Ewentualnie zadaj konkretniejsze pytanie wtedy tutaj jak coś nie będzie ci wychodzić. Wakal 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Wakal 23 Opublikowano 13 lutego 2018 Autor Udostępnij Opublikowano 13 lutego 2018 @GotoFinalA jakis zamiennik dla thread.sleep? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 yooniks 347 Opublikowano 13 lutego 2018 Udostępnij Opublikowano 13 lutego 2018 @Wakal BukkitRunnable np.: public class MyTask extends BukkitRunnable { private final Player p; public MyTask(Player p) { this.p=p; } @Override public void run(){ p.sendMessage("it works"); } } new MyTask(player).runTaskLater(plugin,20L); //chyba tak to bylo Wakal 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
Wakal 23
Tak jak w temacie, w sk jest nazwa.%player%, nazwa.%attacker%, chce wiedziec jak to zrobic, jezeli robi sie je w int i boolean jakos inaczej to porszę napisać.
Dziękuje za wszystkie odpowiedzi.
Edytowane przez WakalOdnośnik do komentarza
Udostępnij na innych stronach
5 odpowiedzi na to pytanie
Rekomendowane odpowiedzi