Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- if (args.length == 4 && args[0].equalsIgnoreCase("set")) {
- //Проверка аргументов
- String nickname = args[1];
- String startColorString = args[2].startsWith("#") ? args[2] : "#" + args[2];
- String endColorString = args[3].startsWith("#") ? args[3] : "#" + args[3];
- ChatColor startColor = ChatColor.getByChar(startColorString.substring(1));
- ChatColor endColor = ChatColor.getByChar(endColorString.substring(1));
- if (startColor == null || endColor == null) {
- sender.sendMessage("Ошибка: не удалось разобрать цвета.");
- return true;
- }
- StringBuilder sb = new StringBuilder();
- int charsToSkip = Math.max(nickname.length() / 2 - 1, 0);
- for (int i = 0; i < nickname.length(); i++) {
- if (charsToSkip > 0) {
- charsToSkip--;
- sb.append(nickname.charAt(i));
- continue;
- }
- int colorR, colorG, colorB;
- try {
- Color start = Color.decode(startColorString);
- Color end = Color.decode(endColorString);
- colorR = (int) ((end.getRed() - start.getRed()) * ((float) i / (float) nickname.length())) + start.getRed();
- colorG = (int) ((end.getGreen() - start.getGreen()) * ((float) i / (float) nickname.length())) + start.getGreen();
- colorB = (int) ((end.getBlue() - start.getBlue()) * ((float) i / (float) nickname.length())) + start.getBlue();
- } catch (NumberFormatException e) {
- sender.sendMessage("Ошибка: не удалось разобрать цвета.");
- return true;
- }
- ChatColor color = ChatColor.valueOf(String.valueOf(new Color(colorR, colorG, colorB)));
- sb.append(color).append(nickname.charAt(i));
- }
- sender.getServer().dispatchCommand(sender, "nickname " + sender.getName() + " " + sb.toString());
- sender.sendMessage("Градиентный ник установлен.");
- return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment