3.4 Разрешается выкладывание кода, файлов конфигураций, логов и т.д. только под BB-код CODE
я вот сделал код для плагина перекраску ников.
но он не работает
package com.yurosing.colorchange;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
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.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
import org.jetbrains.annotations.NotNull;
public final class ColorChange extends JavaPlugin implements Listener {
@Override
public void onEnable() {
saveDefaultConfig();
getCommand("color").setExecutor(this);
getServer().getPluginManager().registerEvents(this, this);
}
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 1 && args[0].equalsIgnoreCase("reload")) {
reloadConfig();
sender.sendMessage(ChatColor.GREEN + "Config reloaded");
return true;
}
if (!(sender instanceof Player player)) return true;
Inventory inv = Bukkit.createInventory(null, 27, ChatColor.GOLD + "Выбор цвета");
ItemStack blue = new ItemStack(Material.BLUE_DYE);
ItemMeta blueMeta = blue.getItemMeta();
blueMeta.setDisplayName(ChatColor.BLUE + player.getName());
blue.setItemMeta(blueMeta);
inv.setItem(10, blue);
ItemStack yellow = new ItemStack(Material.YELLOW_DYE);
ItemMeta yellowMeta = yellow.getItemMeta();
yellowMeta.setDisplayName(ChatColor.YELLOW + player.getName());
yellow.setItemMeta(yellowMeta);
inv.setItem(12, yellow);
player.openInventory(inv);
return true;
}
@EventHandler
public void onClick(InventoryClickEvent event) {
if (!(event.getWhoClicked() instanceof Player player)) return;
if (!event.getView().getTitle().equals(ChatColor.GOLD + "Выбор цвета")) return;
event.setCancelled(true);
if (event.getSlot() == 10) setColor(player, ChatColor.BLUE);
if (event.getSlot() == 12) setColor(player, ChatColor.YELLOW);
player.closeInventory();
}
private void setColor(Player player, ChatColor color) {
Scoreboard board = Bukkit.getScoreboardManager().getMainScoreboard();
String teamName = "cc_" + color.name();
Team team = board.getTeam(teamName);
if (team == null) {
team = board.registerNewTeam(teamName);
team.setColor(color);
}
for (Team t : board.getTeams()) {
t.removeEntry(player.getName());
}
team.addEntry(player.getName());
}
}
но он не работает
package com.yurosing.colorchange;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
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.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
import org.jetbrains.annotations.NotNull;
public final class ColorChange extends JavaPlugin implements Listener {
@Override
public void onEnable() {
saveDefaultConfig();
getCommand("color").setExecutor(this);
getServer().getPluginManager().registerEvents(this, this);
}
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 1 && args[0].equalsIgnoreCase("reload")) {
reloadConfig();
sender.sendMessage(ChatColor.GREEN + "Config reloaded");
return true;
}
if (!(sender instanceof Player player)) return true;
Inventory inv = Bukkit.createInventory(null, 27, ChatColor.GOLD + "Выбор цвета");
ItemStack blue = new ItemStack(Material.BLUE_DYE);
ItemMeta blueMeta = blue.getItemMeta();
blueMeta.setDisplayName(ChatColor.BLUE + player.getName());
blue.setItemMeta(blueMeta);
inv.setItem(10, blue);
ItemStack yellow = new ItemStack(Material.YELLOW_DYE);
ItemMeta yellowMeta = yellow.getItemMeta();
yellowMeta.setDisplayName(ChatColor.YELLOW + player.getName());
yellow.setItemMeta(yellowMeta);
inv.setItem(12, yellow);
player.openInventory(inv);
return true;
}
@EventHandler
public void onClick(InventoryClickEvent event) {
if (!(event.getWhoClicked() instanceof Player player)) return;
if (!event.getView().getTitle().equals(ChatColor.GOLD + "Выбор цвета")) return;
event.setCancelled(true);
if (event.getSlot() == 10) setColor(player, ChatColor.BLUE);
if (event.getSlot() == 12) setColor(player, ChatColor.YELLOW);
player.closeInventory();
}
private void setColor(Player player, ChatColor color) {
Scoreboard board = Bukkit.getScoreboardManager().getMainScoreboard();
String teamName = "cc_" + color.name();
Team team = board.getTeam(teamName);
if (team == null) {
team = board.registerNewTeam(teamName);
team.setColor(color);
}
for (Team t : board.getTeams()) {
t.removeEntry(player.getName());
}
team.addEntry(player.getName());
}
}