Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package direct.derekunavailable.untitled;
- 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.EventPriority;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.EntityDamageByEntityEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import java.util.HashSet;
- import java.util.UUID;
- public final class Untitled extends JavaPlugin implements Listener {
- private final HashSet<UUID> rangeListeners = new HashSet<>();
- @Override
- public void onEnable() {
- this.getServer().getPluginManager().registerEvents(this, this);
- }
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- String lcCommand = label.toLowerCase();
- // Технически, теперь можешь добавить ещё какой нибудь /remove, чтобы убирать слушателей из списка
- boolean isPutCommand = lcCommand.equals("put");
- Player target;
- if (args.length < 1) {
- if (sender instanceof Player) {
- target = (Player) sender;
- } else {
- sender.sendMessage(ChatColor.RED + "Usage: /" + lcCommand + " <playername>");
- return true;
- }
- } else {
- target = this.getServer().getPlayerExact(args[0]);
- }
- if (target == null) {
- sender.sendMessage(ChatColor.RED + "Player not found.");
- return true;
- }
- if (isPutCommand) {
- this.rangeListeners.add(target.getUniqueId());
- sender.sendMessage(ChatColor.GOLD + "Player " + target.getName() + " added to listeners");
- } else {
- this.rangeListeners.remove(target.getUniqueId());
- sender.sendMessage(ChatColor.GOLD + "Player " + target.getName() + " removed from listeners");
- }
- return true;
- }
- @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
- public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
- if (!(event.getDamager() instanceof Player)) {
- return;
- }
- Player damager = (Player) event.getDamager();
- double distance = damager.getLocation().distance(event.getEntity().getLocation());
- final String message = ChatColor.AQUA + "[" + damager.getName() + "] " + ChatColor.RESET + "range: " + String.format("%.2f", distance);
- for (UUID listenerUUID : this.rangeListeners) {
- Player listener = this.getServer().getPlayer(listenerUUID);
- if (listener != null) {
- listener.sendMessage(message);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement