Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.lisenochek.ftclans.API;
- import org.bukkit.Bukkit;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import ru.lisenochek.ftclans.clan.Clan;
- import ru.lisenochek.ftclans.clan.Member;
- import ru.lisenochek.ftclans.utils.C;
- import java.util.Iterator;
- public class CommandsAPI implements CommandExecutor {
- public static Integer getPrice = API.config.getInt("settings.create_cost");
- public static Integer getUpgradePrice = API.config.getInt("settings.upgrade_cost");
- public static Integer getMinSimbols = API.config.getInt("settings.min_symbols");
- public static Integer getMaxSimbols = API.config.getInt("settings.max_symbols");
- @Override
- public boolean onCommand(CommandSender s, Command cmd, String str, String[] args) {
- if (!(s instanceof Player)) {
- s.sendMessage(C.c("&cКоманду используют только игроки!"));
- return true;
- }
- Player p = (Player) s;
- Clan clan = Clan.getClanByName(p.getName());
- if (!p.hasPermission("ftclans.user")) return true;
- if (args.length == 0) {
- if (clan == null) {
- p.sendMessage(C.c("&c&nВы не состоите в клане."));
- p.sendMessage(C.c("&7======================================="));
- p.sendMessage(C.c("&3/clan create &c(&eназвание клана&c) &a- основать клан."));
- p.sendMessage(C.c("&aЦена создание клана: &e" + getPrice + " &aмонет."));
- p.sendMessage(C.c("&7======================================="));
- } else {
- if (!clan.hasLeader(p.getName()) && !clan.isModer(p.getName())) {
- p.sendMessage(C.c("&6Помощь в клане. &d(Страница 1/2)"));
- p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
- p.sendMessage(C.c("&7======================================="));
- p.sendMessage(C.c("&eКлановый чат: перед сообщением поставьте &c% &e."));
- p.sendMessage(C.c("&3/clan home &a- переместиться в клановый дом."));
- p.sendMessage(C.c("&3/clan deposit &c(&eкол-во&c] &a- вложить монет в казну клана."));
- p.sendMessage(C.c("&3/clan info &a- информация о клане."));
- p.sendMessage(C.c("&3/clan online &a- узнать онлайн соклановцев."));
- p.sendMessage(C.c("&3/clan list &a- список других кланов."));
- p.sendMessage(C.c("&7======================================="));
- } else {
- p.sendMessage(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 1/4)"));
- p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
- p.sendMessage(C.c("&7======================================="));
- p.sendMessage(C.c("&eКлановый чат: перед сообщением поставьте &c% &e."));
- p.sendMessage(C.c("&eЛидерский чат: перед сообщением поставьте &c* &e."));
- p.sendMessage(C.c("&3/clan addmoder &c(&eигрок&c) &a- повысить члена клана до модератора."));
- p.sendMessage(C.c("&3/clan delmoder &c(&eигрок&c) &a- понизить члена клана до соклановца."));
- p.sendMessage(C.c("&3/clan take &c(&eкол-во&c) &a- взять монет из клановой казны."));
- p.sendMessage(C.c("&3/clan sethome &a- установить клановый дом."));
- p.sendMessage(C.c("&7======================================="));
- }
- }
- return true;
- }
- switch (args[0].toLowerCase()) {
- case "page":
- if (clan == null) {
- p.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане!"));
- return true;
- }
- if (args.length == 1) {
- p.sendMessage(C.getPrefix() + C.c("&cВы не указали страницу помощи!"));
- return true;
- }
- switch (Integer.valueOf(args[1])) {
- case 1:
- if (!clan.hasLeader(p.getName()) && !clan.isModer(p.getName())) {
- p.sendMessage(C.c("&6Помощь в клане. &d(Страница 1/2)"));
- p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
- p.sendMessage(C.c("&7======================================="));
- p.sendMessage(C.c("&eКлановый чат: перед сообщением поставьте &c% &e."));
- p.sendMessage(C.c("&3/clan home &a- переместиться в клановый дом."));
- p.sendMessage(C.c("&3/clan deposit &c(&eкол-во&c] &a- вложить монет в казну клана."));
- p.sendMessage(C.c("&3/clan info &a- информация о клане."));
- p.sendMessage(C.c("&3/clan online &a- узнать онлайн соклановцев."));
- p.sendMessage(C.c("&3/clan list &a- список других кланов."));
- p.sendMessage(C.c("&7======================================="));
- } else {
- p.sendMessage(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 1/4)"));
- p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
- p.sendMessage(C.c("&7======================================="));
- p.sendMessage(C.c("&eКлановый чат: перед сообщением поставьте &c% &e."));
- p.sendMessage(C.c("&eЛидерский чат: перед сообщением поставьте &c* &e."));
- p.sendMessage(C.c("&3/clan addmoder &c(&eигрок&c) &a- повысить члена клана до модератора."));
- p.sendMessage(C.c("&3/clan delmoder &c(&eигрок&c) &a- понизить члена клана до соклановца."));
- p.sendMessage(C.c("&3/clan take &c(&eкол-во&c) &a- взять монет из клановой казны."));
- p.sendMessage(C.c("&3/clan sethome &a- установить клановый дом."));
- p.sendMessage(C.c("&7======================================="));
- }
- return true;
- case 2:
- if (!clan.hasLeader(p.getName()) && !clan.isModer(p.getName())) {
- p.sendMessage(C.c("&6Помощь в клане. &d(Страница 2/2)"));
- p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
- p.sendMessage(C.c("&7======================================="));
- p.sendMessage(C.c("&3/clan top &a- топ &c10&a самых лучших кланов на сервере."));
- p.sendMessage(C.c("&3/clan leave &a- покинуть клан."));
- p.sendMessage(C.c("&7======================================="));
- } else {
- p.sendMessage(C.c(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 2/4)")));
- p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
- p.sendMessage(C.c(C.c("&7=======================================")));
- p.sendMessage(C.c("&3/clan removehome &a- удалить клановый дом."));
- p.sendMessage(C.c("&3/clan msg &a- сделать объявление в клане."));
- p.sendMessage(C.c("&3/clan invite &c(&eигрок&c) &a- пригласить игрока в клан."));
- p.sendMessage(C.c("&3/clan home &a- переместиться в клановый дом."));
- p.sendMessage(C.c("&3/clan kick &c(&eигрок&c) &a- выгнать игрока из клана."));
- p.sendMessage(C.c("&3/clan pvp &a- отключить или включить PvP между соклановцами."));
- p.sendMessage(C.c("&7======================================="));
- }
- return true;
- case 3:
- if (!clan.hasLeader(p.getName()) && !clan.isModer(p.getName())) {
- p.sendMessage(C.getPrefix() + C.c("&cУкажите страницу от 1 до 2!"));
- return true;
- } else {
- p.sendMessage(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 3/4)"));
- p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
- p.sendMessage(C.c("&7======================================="));
- p.sendMessage(C.c("&3/clan deposit &c(&ecкол-во&c) &a- вложить монет в казну клана."));
- p.sendMessage(C.c("&3/clan info &a- информация о клане."));
- p.sendMessage(C.c("&3/clan disband &a- расформировать клан."));
- p.sendMessage(C.c("&3/clan online &a- узнать онлайн соклановцев."));
- p.sendMessage(C.c("&3/clan list &a- список других кланов."));
- p.sendMessage(C.c("&3/clan top &a- 10 самых лучших кланов на сервере."));
- p.sendMessage(C.c("&7======================================="));
- }
- return true;
- case 4:
- if (!clan.hasLeader(p.getName()) && !clan.isModer(p.getName())) {
- p.sendMessage(C.getPrefix() + C.c("&cУкажите страницу от 1 до 2!"));
- return true;
- } else {
- p.sendMessage(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 4/4)"));
- p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
- p.sendMessage(C.c("&7======================================="));
- p.sendMessage(C.c("&3/clan upgrade &a- улучшить клан &c(&e+1 место в клане&c)&a."));
- p.sendMessage(C.c("&aЦена улучшения клана: &e" + getUpgradePrice + " &aмонет."));
- if (!clan.hasLeader(p.getName()) && clan.isModer(s.getName())) {
- p.sendMessage(C.c("&3/clan leave &a- покинуть пост модератора клана."));
- } else {
- p.sendMessage(C.c("&3/clan leave &a- покинуть клан."));
- }
- p.sendMessage(C.c("&3/clan leader &c(&eигрок&c) &a- передать лидерство клана другому игроку."));
- p.sendMessage(C.c("&7======================================="));
- }
- return true;
- default:
- return true;
- }
- case "create":
- if (args.length == 1) {
- p.sendMessage(C.getPrefix() + C.c("&cУкажите название клана!"));
- return true;
- }
- if (Clan.getClan(args[1]) != null) {
- p.sendMessage(C.getPrefix() + C.c("&cКлан с таким названием уже существует!"));
- return true;
- }
- String clanName = args[1].replaceAll("&.", "");
- if (clanName.length() > getMaxSimbols) {
- p.sendMessage(C.getPrefix() + C.c("&cМаксимальное количество символов в названии клана: &7" + getMaxSimbols + "&c!"));
- return true;
- }
- if (clanName.length() < getMinSimbols) {
- p.sendMessage(C.getPrefix() + C.c("&cМинимальное количество символов в названии клана: &7" + getMinSimbols + "&c!"));
- return true;
- }
- if (clan != null) {
- p.sendMessage(C.getPrefix() + C.c("&cВы уже состоите в клане!"));
- return true;
- }
- try {
- if (API.getEconomy().getBalance(p) < getPrice) {
- p.sendMessage(C.getPrefix() + C.c("&cУ вас недостаточно монет для основания клана!"));
- return true;
- }
- API.getEconomy().withdrawPlayer(p, getPrice);
- } catch (Exception e) {
- e.printStackTrace();
- }
- Clan.create(args[1], p.getName());
- p.sendMessage(C.getPrefix() + C.c("&aКлан под названием &7«" + Clan.getClanByName(p.getName()).getName() + "&7» &aбыл основан!"));
- return true;
- case "disband":
- if (clan == null) {
- p.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане!"));
- return true;
- }
- if (!clan.hasLeader(p.getName())) {
- p.sendMessage(C.getPrefix() + C.c("&cВы не лидер клана, чтобы распускать клан."));
- return true;
- }
- clan.broadcast(C.getPrefix() + C.c("&cКлан &7«" + Clan.getClanByName(p.getName()).getName() + "&7» &cбыл расформирован."));
- clan.disband();
- return true;
- case "msg":
- if (clan == null) {
- p.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане!"));
- return true;
- }
- if (!clan.isModer(s.getName()) && !clan.hasLeader(s.getName())) {
- p.sendMessage(C.getPrefix() + C.c("&cСделать объявление может только лидер или модератор клана."));
- return false;
- }
- StringBuilder message = new StringBuilder();
- for (int i = 1; i < args.length; i++) message.append(args[i]).append(" ");
- if (message.toString().length() <= 3) {
- s.sendMessage(C.getPrefix() + C.c("&cСообщение должно содержать не менее 3 символов."));
- return false;
- }
- String colorMes = C.c("&9&l➾ &7&l&o");
- if (clan.isModer(p.getName())) colorMes = C.c("&9&l➾ &a&l&o");
- if (clan.hasLeader(p.getName())) colorMes = C.c("&9&l➾ &6&l&o");
- Iterator memberIterator = clan.getMembers().iterator();
- while (memberIterator.hasNext()) {
- Member m = (Member) memberIterator.next();
- if (!Bukkit.getOfflinePlayer(m.getName()).isOnline()) continue;
- Bukkit.getPlayer(m.getName()).sendMessage(C.c(C.getPrefix() + "&9&l| " + "&d[&b&lОбъявление&d] &9&l|&7&l " + s.getName() + colorMes + message.toString()));
- }
- return true;
- default:
- p.sendMessage(C.getPrefix() + C.c("&cНеизвестная подкоманда!"));
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement