- Баллы
- 76
Здравствуйте!
Не работает этот код!
Ошибка при написании в чат игры:
Код:
public static final Boolean RANGED_MODE = Boolean.valueOf(false);
protected String messageFormat = "%prefix%player%suffix %message";
protected String globalMessageFormat = "%prefix%player%suffix &e%message";
protected boolean rangedMode = RANGED_MODE.booleanValue();
protected double chatRange = 100.0D;
protected String displayNameFormat = "%prefix%player%suffix";
protected String optionChatRange = "chat-range";
protected String optionMessageFormat = "message-format";
protected String optionGlobalMessageFormat = "global-message-format";
protected String optionRangedMode = "force-ranged-mode";
protected String optionDisplayname = "display-name-format";
protected String permissionChatColor = "chatmanager.chat.color";
protected String permissionChatMagic = "chatmanager.chat.magic";
protected String permissionChatBold = "chatmanager.chat.bold";
protected String permissionChatStrikethrough = "chatmanager.chat.strikethrough";
protected String permissionChatUnderline = "chatmanager.chat.underline";
protected String permissionChatItalic = "chatmanager.chat.italic";
private FileConfiguration config = Prison.instance.getConfig();
public ChatListener() {
this.messageFormat = config.getString("chatmanager.message-format");
this.globalMessageFormat = config.getString("chatmanager.global-message-format");
this.rangedMode = config.getBoolean("chatmanager.ranged-mode");
this.chatRange = config.getDouble("chatmanager.chat-range");
this.displayNameFormat = config.getString("chatmanager.display-name-format");
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerChat(AsyncPlayerChatEvent event) {
if (event.isCancelled()) {
return;
}
Player player = event.getPlayer();
String message = this.messageFormat;
boolean localChat = this.config.getBoolean(this.optionRangedMode);
String chatMessage = event.getMessage();
if (chatMessage.startsWith("!")) {
localChat = false;
chatMessage = chatMessage.substring(1);
message = this.globalMessageFormat;
}
message = ChatColor.translateAlternateColorCodes('&', message);
message = message.replace("%message", "%2$s").replace("%displayname", "%1$s");
if (PrisonPlayer.getLevel(player) > 0) {
message = message.replace("%level", "§8[§6" + PrisonPlayer.getLevel(player) + " LVL§8]");
}
String fractionStr = PrisonPlayer.getFaction(player).toLowerCase();
switch (fractionStr) {
case "niggers":
fractionStr = "§8[Ниггер]";
break;
case "aziats":
fractionStr = "§8[§eАзиат§8]";
break;
case "whites":
fractionStr = "§8[§fБелый§8]";
break;
default:
fractionStr = "";
}
PermissionUser user = PermissionsEx.getUser(player);
message = message.replace("%gprefix%", user.getPrefix());
message = message.replace("%fraction", fractionStr);
message = message.replace("%name", player.getName());
message = message.replace("%local", "§f(§aL§f)");
message = message.replace("%global", "§f(§6G§f)");
message = message.replace("<", "");
message = message.replace(">", "");
/*if (player.hasPermission("chat.color")) {
message = message.replace('&', '§');
}*/
event.setFormat(message);
event.setMessage(chatMessage);
if (localChat) {
double range = 100.0D;
event.getRecipients().clear();
event.getRecipients().addAll(getLocalRecipients(player, message, range));
}
}
protected List<Player> getLocalRecipients(Player sender, String message, double range) {
Location playerLocation = sender.getLocation();
List<Player> recipients = new LinkedList<Player>();
double squaredDistance = Math.pow(range, 2.0D);
for (Player recipient : Bukkit.getServer().getOnlinePlayers()) {
if (!recipient.getWorld().equals((Object)sender.getWorld()) || playerLocation.distanceSquared(recipient.getLocation()) > squaredDistance) continue;
recipients.add(recipient);
}
return recipients;
}
Не работает этот код!
Ошибка при написании в чат игры:
Код:
[19:50:44] [Async Chat Thread - #0/ERROR]: Could not pass event AsyncPlayerChatEvent to Prison v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.10.2-R0.1-SNAPSHOT.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.10.2-R0.1-SNAPSHOT.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.10.2-R0.1-SNAPSHOT.jar:git-Spigot-de459a2-51263e9]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [spigot-1.10.2-R0.1-SNAPSHOT.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.PlayerConnection.chat(PlayerConnection.java:1280) [spigot-1.10.2-R0.1-SNAPSHOT.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.PlayerConnection.a(PlayerConnection.java:1218) [spigot-1.10.2-R0.1-SNAPSHOT.jar:git-Spigot-de459a2-51263e9]
at net.minecraft.server.v1_10_R1.PacketPlayInChat$1.run(PacketPlayInChat.java:39) [spigot-1.10.2-R0.1-SNAPSHOT.jar:git-Spigot-de459a2-51263e9]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_161]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_161]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_161]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_161]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_161]
Caused by: java.util.UnknownFormatConversionException: Conversion = 'p'
at org.bukkit.event.player.AsyncPlayerChatEvent.setFormat(AsyncPlayerChatEvent.java:100) ~[spigot-1.10.2-R0.1-SNAPSHOT.jar:git-Spigot-de459a2-51263e9]
at ru.taselix.taselixapi.ChatListener.onPlayerChat(ChatListener.java:105) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_161]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_161]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.10.2-R0.1-SNAPSHOT.jar:git-Spigot-de459a2-51263e9]
... 11 more