Package com.mcbans.firestar.mcbans.request

Source Code of com.mcbans.firestar.mcbans.request.Kick

package com.mcbans.firestar.mcbans.request;

import static com.mcbans.firestar.mcbans.I18n._;

import java.util.UUID;

import org.bukkit.ChatColor;
import org.bukkit.entity.Player;

import com.mcbans.firestar.mcbans.I18n;
import com.mcbans.firestar.mcbans.MCBans;
import com.mcbans.firestar.mcbans.events.PlayerKickEvent;
import com.mcbans.firestar.mcbans.permission.Perms;
import com.mcbans.firestar.mcbans.util.Util;

public class Kick implements Runnable {
    private final MCBans plugin;

    private final String playerName;
    private final String senderName;
    private String reason,senderUUID,playerUUID;
    private final boolean useExactName;

    public Kick(final MCBans plugin, final String playerName, final String playerUUID, final String senderName, final String senderUUID, final String reason, final boolean useExactName) {
        this.plugin = plugin;
        this.playerName = playerName;
        this.senderName = senderName;
        this.reason = reason;
        this.useExactName = useExactName;
        this.senderUUID = senderUUID;
        this.playerUUID = playerUUID;
    }

    @Deprecated
    public Kick(final MCBans plugin, final String playerName, final String senderName, final String reason){
        this(plugin, playerName, "", senderName, "", reason, false);
    }

    @Override
    public void run() {
      Player playertmp = null;
      if(!playerUUID.equals("")){
        playertmp = MCBans.getPlayer(plugin,playerUUID);
      }else{
        playertmp = (useExactName) ? plugin.getServer().getPlayerExact(playerName) : plugin.getServer().getPlayer(playerName);
      }
      final Player player = playertmp;
        if (player != null) {
            // Check exempt permission
            if (Perms.EXEMPT_KICK.has(player)){
                Util.message(senderName, ChatColor.RED + _("kickExemptPlayer", I18n.PLAYER, player.getName()));
                return;
            }
           
            // Call PlayerKickEvent
            PlayerKickEvent kickEvent = new PlayerKickEvent(player.getName(), playerUUID, senderName, senderUUID, reason);
            plugin.getServer().getPluginManager().callEvent(kickEvent);
            if (kickEvent.isCancelled()){
                return;
            }
            reason = kickEvent.getReason();

            // kick player
            plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
                @Override
                public void run() {
                    player.kickPlayer(_("kickPlayer", I18n.PLAYER, player.getName(), I18n.SENDER, senderName, I18n.REASON, reason));
                }
            }, 0L);

            Util.broadcastMessage(ChatColor.GREEN + _("kickBroadcast", I18n.PLAYER, player.getName(), I18n.SENDER, senderName, I18n.REASON, reason));
            plugin.getLog().info(senderName + " has kicked " + player.getName() + " [" + reason + "]");
        } else {
            Util.message(senderName, ChatColor.RED + _("kickNoPlayer", I18n.PLAYER, playerName));
        }
    }
}
TOP

Related Classes of com.mcbans.firestar.mcbans.request.Kick

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.