- Баллы
- 61
- Имя в Minecraft
- foldandfalse
Привет всем, решил написать свой плагин с локальным и глобальным чатом, написал локальный чат, но при отправке сообщение отправляется абсолютно всему серверу (проверял на локалке с двумя аккаунтами в радиусе 5000 от друг друга, радиус локала 75)
Код:
Чат:
Main
Прошу помочь, буду сильно благодарен. (части Reply и Message решил не вставлять, так как они ничего из чата не трогают)
Код:
Чат:
Код:
// ChatChannel
package hapesh;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChatEvent;
@SuppressWarnings("deprecation")
public class ChatChannel implements Listener {
Main plugin;
public ChatChannel (Main main) {
plugin = main;
}
@EventHandler
public void onPlayerChat (PlayerChatEvent e) {
Player p = e.getPlayer();
e.setCancelled(false);
if(p.hasPermission("lantern.color")) {
e.setFormat(p.getDisplayName() + "§f: " + e.getMessage().replace("&", "§"));
}
else{
e.setFormat(p.getDisplayName() + "§f: " + e.getMessage());
}
for (Entity al : p.getNearbyEntities(1, 1, 1)) {
Player al1 = (Player) al;
if (al instanceof Player ) {
al1.sendMessage(e.getFormat());
} else {
p.sendMessage("В вашем радиусе нет игроков");
}
}
}
}
Main
Код:
// Main
package hapesh;
import org.bukkit.command.CommandExecutor;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements CommandExecutor {
MessageManager mM;
ChatManager cm;
@Override
public void onEnable(){
saveConfig();
getCommand("m").setExecutor(new MessageCommand(this));
getCommand("r").setExecutor(new ReplyCommand(this));
getServer().getPluginManager().registerEvents(new ChatChannel(this), this);
mM = new MessageManager(this);
cm = new ChatManager(this);
}
}
Прошу помочь, буду сильно благодарен. (части Reply и Message решил не вставлять, так как они ничего из чата не трогают)