Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вот ты серьёзно?
Орнул, спасибо.Вот ты серьёзно?
1. Я уже натыкался на эту ссылку во время попыток разобраться с этой проблемой самостоятельно.
2. Там нигде нет информации о том, как мне из этого файла достать данные типа HashMap<String, HashMap<String, String>>.
3. Сам ты никак не помог этим. Даже будь где-то там ответ на мой вопрос - ты никак не указал куда и как смотреть. Ни примера кода, ни короткого объяснения. Спасибо!
Класс, спасибо. Буду думать чей из ваших ответов полезней - ссылка в никуда или совет без ссылок и указаний хоть куда-то.Орнул, спасибо.
Ямл в ведре умеет сам читать и записывать локацию. Просто передай ему ее.
Потому что понятно же все. Ты даже не кодер и полез в разработку плагинов. Сначала изучи Java, а потом уже задавай тут вопросы. Никто тут не горит желанием обучать школьника, который еще и проявляет агрессию. Тебе нужно не делать сервера в майне а играть на таких.Класс, спасибо. Буду думать чей из ваших ответов полезней - ссылка в никуда или совет без ссылок и указаний хоть куда-то.
Потому что понятно же все. Ты даже не кодер и полез в разработку плагинов. Сначала изучи Java, а потом уже задавай тут вопросы. Никто тут не горит желанием обучать школьника, который еще и проявляет агрессию. Тебе нужно не делать сервера в майне а играть на таких.
package FTSP.main;
import java.util.Map.Entry;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import org.bukkit.BanList;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
import net.milkbowl.vault.economy.Economy;
public class FTSP extends JavaPlugin implements Listener{
public HashMap<String, HashMap<String, String>> reports = new HashMap<String, HashMap<String, String>>();
public HashMap<String, Integer> toBan = new HashMap<String, Integer>();
public Integer[] stars = {1,2,4,8,0};
public static Economy economy;
public void onEnable() {
economy = getServer().getServicesManager().getRegistration(Economy.class).getProvider();
getConfig().options().copyDefaults();
saveDefaultConfig();
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void quit(PlayerQuitEvent e) {
Player p = e.getPlayer();
if(reports.containsKey(p.getName())) {
reports.remove(p.getName());
}
if(checkReport(p.getName())) {
Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" вышел и получил бан!");
}
}
@EventHandler
public void death(PlayerDeathEvent e) {
Player p = e.getEntity().getPlayer();
Player k = e.getEntity().getKiller();
if(reports.containsKey(p.getName())) {
reports.remove(p.getName());
}
if(checkReport(p.getName())) {
if(k!=null) {
Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" был убит игроком "+ChatColor.GOLD+k.getName()+" и получил бан!");
} else {
Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" умер и получил бан!");
}
}
}
private boolean checkReport(String player) {
if(toBan.containsKey(player)) {
Date banDate = new Date(System.currentTimeMillis()+stars[toBan.get(player)]*60*60*1000);
if(stars[toBan.get(player)]==0) { banDate = null; }
Bukkit.getBanList(BanList.Type.NAME).addBan(player, null, banDate, null);
Bukkit.getPlayer(player).kickPlayer(null);
toBan.remove(player);
return true;
}
return false;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
Player from = (Player) sender;
if(cmd.getName().equals("report")) {
if(args.length<1) { return false; }
if(args[0]=="send") {
if(args.length<2) { return false; }
String player = args[1];
if(!from.hasPermission("FTSP.report.send")) { return true; }
String desc = "";
if(args.length>2) {
desc = String.join(" ", Arrays.copyOfRange(args, 2, args.length));
}
HashMap<String, String> tmp = new HashMap<String, String>();
tmp.put("from", from.getName());
tmp.put("desc", desc);
reports.put(player, tmp);
String report_notify = "";
report_notify += ChatColor.RED + "[ЖАЛОБА] ";
report_notify += ChatColor.GOLD + from.getName() + " -> " + player + "\n";
report_notify += ChatColor.YELLOW + desc;
Bukkit.broadcast(report_notify, "FTSP.report.look");
return true;
} else if(args[0]=="list") {
if(!from.hasPermission("FTSP.report.list")) { return true; }
String list = ChatColor.GREEN + "Список отправленных репортов:";
for(Entry<String, HashMap<String, String>> player1 : reports.entrySet()) {
list += "\n\n";
list += ChatColor.GOLD + player1.getValue().get("from") + " -> " + player1.getKey();
list += ChatColor.WHITE + " " + player1.getValue().get("desc");
}
sender.sendMessage(list);
return true;
} else if(args[0]=="accept") {
if(args.length<2) { return false; }
String player = args[1];
if(!from.hasPermission("FTSP.report.accept")) { from.sendMessage("AAA"); return true; }
if(args.length!=3) { return false; }
try {
Integer star = Integer.parseInt(args[2]);
reports.remove(player);
toBan.put(player, star);
Bukkit.broadcastMessage("Игрок "+ChatColor.RED+player+ChatColor.WHITE+" объявлен в розыск! Уровень опастности: "+star);
} catch (Exception e) { return false; }
return true;
} else {
return false;
}
}
return false;
}
}
Посмотри как я делаю конфиг в своих кланах. Так же это будет работать и с локацией. (но там у меня hocon).Не помню школьников, которые умеют что-то большее чем System.out.prinLn и разделение плагина на миллиард файлов потому что так было в гайде. Да и в любом случае ты ошибся - я студент). Жду, когда напишешь про switch и что-нибудь ещё, что фактически будет синтаксическим сахаром.Код:package FTSP.main; import java.util.Map.Entry; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import org.bukkit.BanList; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; import net.milkbowl.vault.economy.Economy; public class FTSP extends JavaPlugin implements Listener{ public HashMap<String, HashMap<String, String>> reports = new HashMap<String, HashMap<String, String>>(); public HashMap<String, Integer> toBan = new HashMap<String, Integer>(); public Integer[] stars = {1,2,4,8,0}; public static Economy economy; public void onEnable() { economy = getServer().getServicesManager().getRegistration(Economy.class).getProvider(); getConfig().options().copyDefaults(); saveDefaultConfig(); getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void quit(PlayerQuitEvent e) { Player p = e.getPlayer(); if(reports.containsKey(p.getName())) { reports.remove(p.getName()); } if(checkReport(p.getName())) { Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" вышел и получил бан!"); } } @EventHandler public void death(PlayerDeathEvent e) { Player p = e.getEntity().getPlayer(); Player k = e.getEntity().getKiller(); if(reports.containsKey(p.getName())) { reports.remove(p.getName()); } if(checkReport(p.getName())) { if(k!=null) { Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" был убит игроком "+ChatColor.GOLD+k.getName()+" и получил бан!"); } else { Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" умер и получил бан!"); } } } private boolean checkReport(String player) { if(toBan.containsKey(player)) { Date banDate = new Date(System.currentTimeMillis()+stars[toBan.get(player)]*60*60*1000); if(stars[toBan.get(player)]==0) { banDate = null; } Bukkit.getBanList(BanList.Type.NAME).addBan(player, null, banDate, null); Bukkit.getPlayer(player).kickPlayer(null); toBan.remove(player); return true; } return false; } @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { Player from = (Player) sender; if(cmd.getName().equals("report")) { if(args.length<1) { return false; } if(args[0]=="send") { if(args.length<2) { return false; } String player = args[1]; if(!from.hasPermission("FTSP.report.send")) { return true; } String desc = ""; if(args.length>2) { desc = String.join(" ", Arrays.copyOfRange(args, 2, args.length)); } HashMap<String, String> tmp = new HashMap<String, String>(); tmp.put("from", from.getName()); tmp.put("desc", desc); reports.put(player, tmp); String report_notify = ""; report_notify += ChatColor.RED + "[ЖАЛОБА] "; report_notify += ChatColor.GOLD + from.getName() + " -> " + player + "\n"; report_notify += ChatColor.YELLOW + desc; Bukkit.broadcast(report_notify, "FTSP.report.look"); return true; } else if(args[0]=="list") { if(!from.hasPermission("FTSP.report.list")) { return true; } String list = ChatColor.GREEN + "Список отправленных репортов:"; for(Entry<String, HashMap<String, String>> player1 : reports.entrySet()) { list += "\n\n"; list += ChatColor.GOLD + player1.getValue().get("from") + " -> " + player1.getKey(); list += ChatColor.WHITE + " " + player1.getValue().get("desc"); } sender.sendMessage(list); return true; } else if(args[0]=="accept") { if(args.length<2) { return false; } String player = args[1]; if(!from.hasPermission("FTSP.report.accept")) { from.sendMessage("AAA"); return true; } if(args.length!=3) { return false; } try { Integer star = Integer.parseInt(args[2]); reports.remove(player); toBan.put(player, star); Bukkit.broadcastMessage("Игрок "+ChatColor.RED+player+ChatColor.WHITE+" объявлен в розыск! Уровень опастности: "+star); } catch (Exception e) { return false; } return true; } else { return false; } } return false; } }
С агрессией всё было бы ещё проще, если бы ты глянул на время моего сообщения. Я уже около 10 часов с перерывами на еду и туалет пытаюь разобраться с сохранение и использованием сраных координат. И ничего найти не мог. А спуся 10 часов мне скинули ссылку в которой нет вообще никакой полезной информации.
Ну и про то, что я не программист и мне стоит идити учить Java тоже упомину. Ты в глаза не видел мой код. Ты не видел моих навоков от слова совсем. А всё, на чём ты мог основываться - я не нашел нужную информацию в документации к немаленькому такому API. Гениально!
А теперь на последок вежливо попрошу - либо вообще ничего не пишите, либо распишите всё максимально понятно для человека, который впервые увидел слово Bukkit, Spigot или ещё что-то.
Что это вообще? пакеты нормально назови.... toLowerCaseНе помню школьников, которые умеют что-то большее чем System.out.prinLn и разделение плагина на миллиард файлов потому что так было в гайде. Да и в любом случае ты ошибся - я студент). Жду, когда напишешь про switch и что-нибудь ещё, что фактически будет синтаксическим сахаром.Код:package FTSP.main; import java.util.Map.Entry; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import org.bukkit.BanList; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; import net.milkbowl.vault.economy.Economy; public class FTSP extends JavaPlugin implements Listener{ public HashMap<String, HashMap<String, String>> reports = new HashMap<String, HashMap<String, String>>(); public HashMap<String, Integer> toBan = new HashMap<String, Integer>(); public Integer[] stars = {1,2,4,8,0}; public static Economy economy; public void onEnable() { economy = getServer().getServicesManager().getRegistration(Economy.class).getProvider(); getConfig().options().copyDefaults(); saveDefaultConfig(); getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void quit(PlayerQuitEvent e) { Player p = e.getPlayer(); if(reports.containsKey(p.getName())) { reports.remove(p.getName()); } if(checkReport(p.getName())) { Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" вышел и получил бан!"); } } @EventHandler public void death(PlayerDeathEvent e) { Player p = e.getEntity().getPlayer(); Player k = e.getEntity().getKiller(); if(reports.containsKey(p.getName())) { reports.remove(p.getName()); } if(checkReport(p.getName())) { if(k!=null) { Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" был убит игроком "+ChatColor.GOLD+k.getName()+" и получил бан!"); } else { Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" умер и получил бан!"); } } } private boolean checkReport(String player) { if(toBan.containsKey(player)) { Date banDate = new Date(System.currentTimeMillis()+stars[toBan.get(player)]*60*60*1000); if(stars[toBan.get(player)]==0) { banDate = null; } Bukkit.getBanList(BanList.Type.NAME).addBan(player, null, banDate, null); Bukkit.getPlayer(player).kickPlayer(null); toBan.remove(player); return true; } return false; } @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { Player from = (Player) sender; if(cmd.getName().equals("report")) { if(args.length<1) { return false; } if(args[0]=="send") { if(args.length<2) { return false; } String player = args[1]; if(!from.hasPermission("FTSP.report.send")) { return true; } String desc = ""; if(args.length>2) { desc = String.join(" ", Arrays.copyOfRange(args, 2, args.length)); } HashMap<String, String> tmp = new HashMap<String, String>(); tmp.put("from", from.getName()); tmp.put("desc", desc); reports.put(player, tmp); String report_notify = ""; report_notify += ChatColor.RED + "[ЖАЛОБА] "; report_notify += ChatColor.GOLD + from.getName() + " -> " + player + "\n"; report_notify += ChatColor.YELLOW + desc; Bukkit.broadcast(report_notify, "FTSP.report.look"); return true; } else if(args[0]=="list") { if(!from.hasPermission("FTSP.report.list")) { return true; } String list = ChatColor.GREEN + "Список отправленных репортов:"; for(Entry<String, HashMap<String, String>> player1 : reports.entrySet()) { list += "\n\n"; list += ChatColor.GOLD + player1.getValue().get("from") + " -> " + player1.getKey(); list += ChatColor.WHITE + " " + player1.getValue().get("desc"); } sender.sendMessage(list); return true; } else if(args[0]=="accept") { if(args.length<2) { return false; } String player = args[1]; if(!from.hasPermission("FTSP.report.accept")) { from.sendMessage("AAA"); return true; } if(args.length!=3) { return false; } try { Integer star = Integer.parseInt(args[2]); reports.remove(player); toBan.put(player, star); Bukkit.broadcastMessage("Игрок "+ChatColor.RED+player+ChatColor.WHITE+" объявлен в розыск! Уровень опастности: "+star); } catch (Exception e) { return false; } return true; } else { return false; } } return false; } }
С агрессией всё было бы ещё проще, если бы ты глянул на время моего сообщения. Я уже около 10 часов с перерывами на еду и туалет пытаюь разобраться с сохранение и использованием сраных координат. И ничего найти не мог. А спуся 10 часов мне скинули ссылку в которой нет вообще никакой полезной информации.
Ну и про то, что я не программист и мне стоит идити учить Java тоже упомину. Ты в глаза не видел мой код. Ты не видел моих навоков от слова совсем. А всё, на чём ты мог основываться - я не нашел нужную информацию в документации к немаленькому такому API. Гениально!
А теперь на последок вежливо попрошу - либо вообще ничего не пишите, либо распишите всё максимально понятно для человека, который впервые увидел слово Bukkit, Spigot или ещё что-то.
Потому что понятно же все. Ты даже не кодер и полез в разработку плагинов. Сначала изучи Java, а потом уже задавай тут вопросы. Никто тут не горит желанием обучать школьника, который еще и проявляет агрессию. Тебе нужно не делать сервера в майне а играть на таких.
Не гоните тут на школьников, я в свои 14(2016 год) начал программировать ^.-Не помню школьников, которые умеют что-то большее чем System.out.prinLn и разделение плагина на миллиард файлов потому что так было в гайде. Да и в любом случае ты ошибся - я студент). Жду, когда напишешь про switch и что-нибудь ещё, что фактически будет синтаксическим сахаром.Код:package FTSP.main; import java.util.Map.Entry; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import org.bukkit.BanList; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; import net.milkbowl.vault.economy.Economy; public class FTSP extends JavaPlugin implements Listener{ public HashMap<String, HashMap<String, String>> reports = new HashMap<String, HashMap<String, String>>(); public HashMap<String, Integer> toBan = new HashMap<String, Integer>(); public Integer[] stars = {1,2,4,8,0}; public static Economy economy; public void onEnable() { economy = getServer().getServicesManager().getRegistration(Economy.class).getProvider(); getConfig().options().copyDefaults(); saveDefaultConfig(); getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void quit(PlayerQuitEvent e) { Player p = e.getPlayer(); if(reports.containsKey(p.getName())) { reports.remove(p.getName()); } if(checkReport(p.getName())) { Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" вышел и получил бан!"); } } @EventHandler public void death(PlayerDeathEvent e) { Player p = e.getEntity().getPlayer(); Player k = e.getEntity().getKiller(); if(reports.containsKey(p.getName())) { reports.remove(p.getName()); } if(checkReport(p.getName())) { if(k!=null) { Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" был убит игроком "+ChatColor.GOLD+k.getName()+" и получил бан!"); } else { Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" умер и получил бан!"); } } } private boolean checkReport(String player) { if(toBan.containsKey(player)) { Date banDate = new Date(System.currentTimeMillis()+stars[toBan.get(player)]*60*60*1000); if(stars[toBan.get(player)]==0) { banDate = null; } Bukkit.getBanList(BanList.Type.NAME).addBan(player, null, banDate, null); Bukkit.getPlayer(player).kickPlayer(null); toBan.remove(player); return true; } return false; } @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { Player from = (Player) sender; if(cmd.getName().equals("report")) { if(args.length<1) { return false; } if(args[0]=="send") { if(args.length<2) { return false; } String player = args[1]; if(!from.hasPermission("FTSP.report.send")) { return true; } String desc = ""; if(args.length>2) { desc = String.join(" ", Arrays.copyOfRange(args, 2, args.length)); } HashMap<String, String> tmp = new HashMap<String, String>(); tmp.put("from", from.getName()); tmp.put("desc", desc); reports.put(player, tmp); String report_notify = ""; report_notify += ChatColor.RED + "[ЖАЛОБА] "; report_notify += ChatColor.GOLD + from.getName() + " -> " + player + "\n"; report_notify += ChatColor.YELLOW + desc; Bukkit.broadcast(report_notify, "FTSP.report.look"); return true; } else if(args[0]=="list") { if(!from.hasPermission("FTSP.report.list")) { return true; } String list = ChatColor.GREEN + "Список отправленных репортов:"; for(Entry<String, HashMap<String, String>> player1 : reports.entrySet()) { list += "\n\n"; list += ChatColor.GOLD + player1.getValue().get("from") + " -> " + player1.getKey(); list += ChatColor.WHITE + " " + player1.getValue().get("desc"); } sender.sendMessage(list); return true; } else if(args[0]=="accept") { if(args.length<2) { return false; } String player = args[1]; if(!from.hasPermission("FTSP.report.accept")) { from.sendMessage("AAA"); return true; } if(args.length!=3) { return false; } try { Integer star = Integer.parseInt(args[2]); reports.remove(player); toBan.put(player, star); Bukkit.broadcastMessage("Игрок "+ChatColor.RED+player+ChatColor.WHITE+" объявлен в розыск! Уровень опастности: "+star); } catch (Exception e) { return false; } return true; } else { return false; } } return false; } }
С агрессией всё было бы ещё проще, если бы ты глянул на время моего сообщения. Я уже около 10 часов с перерывами на еду и туалет пытаюь разобраться с сохранение и использованием сраных координат. И ничего найти не мог. А спуся 10 часов мне скинули ссылку в которой нет вообще никакой полезной информации.
Ну и про то, что я не программист и мне стоит идити учить Java тоже упомину. Ты в глаза не видел мой код. Ты не видел моих навоков от слова совсем. А всё, на чём ты мог основываться - я не нашел нужную информацию в документации к немаленькому такому API. Гениально!
А теперь на последок вежливо попрошу - либо вообще ничего не пишите, либо распишите всё максимально понятно для человека, который впервые увидел слово Bukkit, Spigot или ещё что-то.
Лол мне 15Не гоните тут на школьников, я в свои 14(2016 год) начал программировать ^.-
. И писать код и то умею. Не помню школьников, которые умеют что-то большее чем System.out.prinLn и разделение плагина на миллиард файлов потому что так было в гайде. Да и в любом случае ты ошибся - я студент). Жду, когда напишешь про switch и что-нибудь ещё, что фактически будет синтаксическим сахаром.Код:package FTSP.main; import java.util.Map.Entry; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import org.bukkit.BanList; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; import net.milkbowl.vault.economy.Economy; public class FTSP extends JavaPlugin implements Listener{ public HashMap<String, HashMap<String, String>> reports = new HashMap<String, HashMap<String, String>>(); public HashMap<String, Integer> toBan = new HashMap<String, Integer>(); public Integer[] stars = {1,2,4,8,0}; public static Economy economy; public void onEnable() { economy = getServer().getServicesManager().getRegistration(Economy.class).getProvider(); getConfig().options().copyDefaults(); saveDefaultConfig(); getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void quit(PlayerQuitEvent e) { Player p = e.getPlayer(); if(reports.containsKey(p.getName())) { reports.remove(p.getName()); } if(checkReport(p.getName())) { Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" вышел и получил бан!"); } } @EventHandler public void death(PlayerDeathEvent e) { Player p = e.getEntity().getPlayer(); Player k = e.getEntity().getKiller(); if(reports.containsKey(p.getName())) { reports.remove(p.getName()); } if(checkReport(p.getName())) { if(k!=null) { Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" был убит игроком "+ChatColor.GOLD+k.getName()+" и получил бан!"); } else { Bukkit.broadcastMessage("Игрок "+ChatColor.RED+p.getName()+ChatColor.WHITE+" умер и получил бан!"); } } } private boolean checkReport(String player) { if(toBan.containsKey(player)) { Date banDate = new Date(System.currentTimeMillis()+stars[toBan.get(player)]*60*60*1000); if(stars[toBan.get(player)]==0) { banDate = null; } Bukkit.getBanList(BanList.Type.NAME).addBan(player, null, banDate, null); Bukkit.getPlayer(player).kickPlayer(null); toBan.remove(player); return true; } return false; } @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { Player from = (Player) sender; if(cmd.getName().equals("report")) { if(args.length<1) { return false; } if(args[0]=="send") { if(args.length<2) { return false; } String player = args[1]; if(!from.hasPermission("FTSP.report.send")) { return true; } String desc = ""; if(args.length>2) { desc = String.join(" ", Arrays.copyOfRange(args, 2, args.length)); } HashMap<String, String> tmp = new HashMap<String, String>(); tmp.put("from", from.getName()); tmp.put("desc", desc); reports.put(player, tmp); String report_notify = ""; report_notify += ChatColor.RED + "[ЖАЛОБА] "; report_notify += ChatColor.GOLD + from.getName() + " -> " + player + "\n"; report_notify += ChatColor.YELLOW + desc; Bukkit.broadcast(report_notify, "FTSP.report.look"); return true; } else if(args[0]=="list") { if(!from.hasPermission("FTSP.report.list")) { return true; } String list = ChatColor.GREEN + "Список отправленных репортов:"; for(Entry<String, HashMap<String, String>> player1 : reports.entrySet()) { list += "\n\n"; list += ChatColor.GOLD + player1.getValue().get("from") + " -> " + player1.getKey(); list += ChatColor.WHITE + " " + player1.getValue().get("desc"); } sender.sendMessage(list); return true; } else if(args[0]=="accept") { if(args.length<2) { return false; } String player = args[1]; if(!from.hasPermission("FTSP.report.accept")) { from.sendMessage("AAA"); return true; } if(args.length!=3) { return false; } try { Integer star = Integer.parseInt(args[2]); reports.remove(player); toBan.put(player, star); Bukkit.broadcastMessage("Игрок "+ChatColor.RED+player+ChatColor.WHITE+" объявлен в розыск! Уровень опастности: "+star); } catch (Exception e) { return false; } return true; } else { return false; } } return false; } }
С агрессией всё было бы ещё проще, если бы ты глянул на время моего сообщения. Я уже около 10 часов с перерывами на еду и туалет пытаюь разобраться с сохранение и использованием сраных координат. И ничего найти не мог. А спуся 10 часов мне скинули ссылку в которой нет вообще никакой полезной информации.
Ну и про то, что я не программист и мне стоит идити учить Java тоже упомину. Ты в глаза не видел мой код. Ты не видел моих навоков от слова совсем. А всё, на чём ты мог основываться - я не нашел нужную информацию в документации к немаленькому такому API. Гениально!
А теперь на последок вежливо попрошу - либо вообще ничего не пишите, либо распишите всё максимально понятно для человека, который впервые увидел слово Bukkit, Spigot или ещё что-то.
ConfigurationSection work = this.getConfig().getConfigurationSection("work");
work.getKeys(false).forEach(key -> {
ConfigurationSection block = work.getConfigurationSection(key);
int x = block.getInt("x");
int y = block.getInt("z");
int z = block.getInt("z");
int id = block.getInt("id");
});
Если бы он агрессивно не кидался на людей, а написал бы "я так не понимаю, сделайте пожалуйста вместо меня", этого бы не было .Ужас на поцана накинулись за код
Я уже ответил нормально, не парься. Новичкам сложно эти непонятные конфиги ковырять.Ужас на поцана накинулись за код