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.clan.NewPlayer;
- import ru.lisenochek.ftclans.utils.C;
- import java.util.Iterator;
- public class CommandsAPI implements CommandExecutor {
- public static int getPrice = API.config.getInt("settings.create_cost");
- public static int getUpgradePrice = API.config.getInt("settings.upgrade_cost");
- public static int getMinSimbols = API.config.getInt("settings.min_symbols");
- public static int 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(p.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(p.getName()) && !clan.hasLeader(p.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 " + p.getName() + colorMes + message.toString()));
- }
- return true;
- }
- case "online": {
- if (clan == null) {
- p.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане!"));
- return true;
- }
- p.sendMessage(C.c("&7======================================="));
- p.sendMessage(C.c("&6Список соклановцев, которые сейчас на сервере:"));
- p.sendMessage("");
- Iterator memberIterator = clan.getMembers().iterator();
- while (memberIterator.hasNext()) {
- Member m = (Member) memberIterator.next();
- if (!Bukkit.getOfflinePlayer(m.getName()).isOnline()) continue;
- if (p.getName().equalsIgnoreCase(m.getName())) p.sendMessage(C.c("&e > &a" + m.getName()));
- else p.sendMessage(C.c("&e - &a" + m.getName()));
- }
- p.sendMessage(C.c("&7======================================="));
- return true;
- }
- case "info": {
- if (clan == null) {
- p.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане!"));
- return true;
- }
- p.sendMessage(C.c("&7======================================="));
- p.sendMessage(C.c("&3Информация о вашем клане:"));
- p.sendMessage(" ");
- p.sendMessage(C.c("&3Название клана: &8«&6&l" + clan.getName() + "&8» &3."));
- p.sendMessage(C.c("&3Места в клане: &7" + clan.getMembers().size() + " &3/ &7" + clan.getMaxPlayers() + "&3."));
- p.sendMessage(C.c("&3Лидер клана: &a" + Bukkit.getOfflinePlayer(clan.getLeader()).getName() + "&3."));
- p.sendMessage(C.c("&3Казна клана: &a" + clan.getBalance() + " &3монет(а, ы)."));
- p.sendMessage(" ");
- StringBuilder b = new StringBuilder();
- Member m;
- for (Iterator memberIterator = clan.getMembers().iterator(); memberIterator.hasNext(); b.append(C.c("&7" + Bukkit.getOfflinePlayer(m.getName()).getName() + C.c("&3, ")))) {
- m = (Member) memberIterator.next();
- }
- p.sendMessage(C.c("&3Участники: " + b.toString().substring(0, b.toString().length() - 2) + "&3."));
- p.sendMessage(C.c("&7======================================="));
- return true;
- }
- case "addmoder": {
- if (clan == null) {
- p.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане."));
- return false;
- }
- if (args.length == 1) {
- p.sendMessage(C.getPrefix() + C.c("&cУкажите имя лисенка!"));
- return true;
- }
- if (!clan.hasLeader(p.getName())) {
- p.sendMessage(C.getPrefix() + C.c("&cНазначать модераторов в клан может только лидер!"));
- return true;
- }
- if (!clan.hasClanMember(args[1])) {
- p.sendMessage(C.getPrefix() + C.c("&cЛисенок не состоит в клане!"));
- return true;
- }
- if (clan.hasLeader(args[1])) {
- p.sendMessage(C.getPrefix() + C.c("&cЛисенок является лидером клана!"));
- return true;
- }
- if (clan.isModer(args[1])) {
- p.sendMessage(C.getPrefix() + C.c("&cЛисенок уже является модератором клана!"));
- return true;
- }
- clan.setModer(args[1], true);
- clan.broadcast(C.getPrefix() + C.c("&aВ клане был назначен новый модератор: &c" + Bukkit.getOfflinePlayer(args[1]).getName() + "&a!"));
- return true;
- }
- case "delmoder": {
- 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;
- }
- if (!clan.hasLeader(p.getName())) {
- p.sendMessage(C.getPrefix() + C.c("&cНазначать модераторов в клан может только лидер!"));
- return true;
- }
- if (!clan.hasClanMember(args[1])) {
- p.sendMessage(C.getPrefix() + C.c("&cЛисенок не состоит в клане!"));
- return true;
- }
- if (!clan.isModer(args[1])) {
- p.sendMessage(C.getPrefix() + C.c("&cЛисенок не является модератором клана!"));
- return true;
- }
- clan.setModer(args[1], false);
- clan.broadcast(C.getPrefix() + C.c("&aВ клане был убран модератор: &c" + Bukkit.getOfflinePlayer(args[1]).getName() + "&a!"));
- return true;
- }
- case "invite": {
- 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;
- }
- if (!clan.hasLeader(p.getName()) && !clan.isModer(p.getName())) {
- p.sendMessage(C.getPrefix() + C.c("&cПриглашать в клан может только лидер или модератор клана."));
- return false;
- }
- if (!Bukkit.getOfflinePlayer(args[1]).isOnline()) {
- p.sendMessage(C.getPrefix() + C.c("&cЛисенок не в сети!"));
- return true;
- }
- if (clan.hasClanMember(args[1])) {
- p.sendMessage(C.getPrefix() + C.c("&cЛисенок уже состоит в клане!"));
- return true;
- }
- if (clan.getMaxPlayers() <= clan.getMembers().size()) {
- p.sendMessage(C.getPrefix() + C.c("&cНедостаточно мест в клане."));
- p.sendMessage(C.c("&cМеста в клане: &6" + clan.getMembers().size() + " &c/ &6" + clan.getMaxPlayers()));
- return true;
- }
- Player invPlayer = Bukkit.getPlayer(args[1]);
- if (NewPlayer.get(invPlayer) != null) {
- p.sendMessage(C.getPrefix() + C.c("&cИгроку уже отправлено приглашение о вступлении в клан."));
- return true;
- }
- NewPlayer.send(clan, invPlayer, p.getName());
- p.sendMessage(C.getPrefix() + C.c("&aВы пригласили в клан лисенка &c" + invPlayer.getName() + "&a!"));
- invPlayer.sendMessage(C.c(C.getPrefix() + "&6Вы были приглашены в клан &8«&6&l" + clan.getName() + "&8»"));
- invPlayer.sendMessage("");
- invPlayer.sendMessage(C.c(C.getPrefix() + "&6Для принятия предложения напишите &a/clan accept"));
- invPlayer.sendMessage(C.c(C.getPrefix() + "&6Для отклонения предложения напишите &c/clan deny"));
- return true;
- }
- case "kick": {
- 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;
- }
- if (!clan.hasLeader(p.getName()) && !clan.isModer(p.getName())) {
- p.sendMessage(C.getPrefix() + C.c("&cИсключать из клана может только лидер или модератор клана."));
- return false;
- }
- if (!clan.hasClanMember(args[1])) {
- p.sendMessage(C.getPrefix() + C.c("&cЛисенок не состоит в вашем клане."));
- return true;
- }
- if (args[1].equalsIgnoreCase(clan.getLeader())) {
- p.sendMessage(C.getPrefix() + C.c("&cВы не можете исключить лидера!"));
- return true;
- }
- Player kickedPlayer = Bukkit.getPlayer(args[1]);
- clan.kick(args[1]);
- clan.broadcast(C.c(C.getPrefix() + "&aИгрок &c" + kickedPlayer.getName() + " &aбыл исключен из клана."));
- kickedPlayer.sendMessage(C.c(C.getPrefix() + "&cВы были исключены из клана &8«&6&l" + clan.getName()) + "&8»");
- return true;
- }
- case "list":
- if (Clan.clans.size() == 0) {
- p.sendMessage(C.getPrefix() + C.c("&cВ режиме нет кланов!"));
- return true;
- }
- if ()
- return true;
- default:
- p.sendMessage(C.getPrefix() + C.c("&cНеизвестная подкоманда!"));
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement