Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.kowlintech.command.group;
- import me.kowlintech.utils.CommandUtils;
- import me.kowlintech.utils.GroupManager;
- import me.kowlintech.utils.PrivateChatUtils;
- import me.kowlintech.utils.objects.Colour;
- import me.kowlintech.utils.objects.Error;
- import me.kowlintech.utils.objects.Group;
- import org.apache.commons.lang3.EnumUtils;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.OfflinePlayer;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import java.sql.SQLException;
- public class SetGroupCommand implements CommandExecutor {
- private CommandUtils commandUtils = new CommandUtils();
- private GroupManager groupManager = new GroupManager();
- private PrivateChatUtils privateChatUtils = new PrivateChatUtils();
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- try {
- if(commandUtils.hasRequiredGroup(sender, Group.ADMIN)) {
- if(args.length == 2) {
- String playerName = args[0];
- OfflinePlayer player = Bukkit.getOfflinePlayer(playerName);
- String groupname = args[1].toUpperCase();
- if(player.hasPlayedBefore()) {
- if(EnumUtils.isValidEnum(Group.class, groupname)) {
- Group group = Group.valueOf(groupname);
- if(!groupManager.isAbleToSetGroup(sender, Bukkit.getPlayer(player.getUniqueId()), group)) {
- sender.sendMessage(Colour.prefix(ChatColor.RED) + "You are not allowed to set groups higher than your current group.");
- return true;
- } else {
- try {
- groupManager.addPlayerToGroup(player, group.toString());
- sender.sendMessage(Colour.prefix(ChatColor.GREEN) + "Successfully set " + player.getName() + "'s group to " + group.getName() + ".");
- privateChatUtils.sendAdminChatGroupChange(sender, (Player) player, group);
- if(player.isOnline()) {
- if(group.isRankBold()) {
- groupManager.changeName((Player) player, group.getColor() + Colour.translate("&l") + group.getName() + " " + group.getNameColor() + player.getName());
- player.getPlayer().setPlayerListName(group.getColor() + Colour.translate("&l") + group.getName() + " " + group.getNameColor() + player.getName());
- } else {
- groupManager.changeName((Player) player, group.getColor() + group.getName() + " " + group.getNameColor() + player.getName());
- player.getPlayer().setPlayerListName(group.getColor() + group.getName() + " " + group.getNameColor() + player.getName());
- }
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- } else {
- sender.sendMessage(Colour.prefix(ChatColor.RED) + "That group doesn't exist!");
- return true;
- }
- return true;
- } else {
- sender.sendMessage(Colour.prefix(ChatColor.RED) + "According to the world files, that player hasn't played on this server before. Due to this, the group will not be assigned to that user.");
- return true;
- }
- } else {
- sender.sendMessage(Colour.translate("&cUsage: /setgroup <player> <group>"));
- }
- } else {
- Error nopermission = Error.NO_PERMISSION;
- sender.sendMessage(nopermission.getColor() + nopermission.getError());
- return true;
- }
- } catch (SQLException e) {
- e.printStackTrace();
- sender.sendMessage(Colour.prefix(ChatColor.RED) + "An error occurred while executing that command. Please report this.");
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement