154 lines
8.6 KiB
Java
154 lines
8.6 KiB
Java
package de.jatitv.opsecurity.listener;
|
|
|
|
import de.jatitv.opsecurity.config.languages.SelectMessages;
|
|
import de.jatitv.opsecurity.config.config.SelectConfig;
|
|
import de.jatitv.opsecurity.system.Main;
|
|
import de.jatitv.opsecurity.util.Replace;
|
|
import de.jatitv.opsecurity.util.Cmd;
|
|
import de.jatitv.opsecurity.util.send;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.scheduler.BukkitRunnable;
|
|
|
|
public class Check {
|
|
public static Boolean onCheck(Player player, Boolean join) {
|
|
if (SelectConfig.OP_Whitelist_Enable) {
|
|
if (player.isOp()) {
|
|
if (!opWhitelist(player)) {
|
|
if (join) {
|
|
send.console(Replace.replace(SelectMessages.OP_consoleOnJoin.replace("[player]", player.getName())));
|
|
}
|
|
if (SelectConfig.Notify_Warn) {
|
|
for (Player notifyperm : Bukkit.getOnlinePlayers()) {
|
|
if (notifyperm.hasPermission("opsecurity.notify")) {
|
|
if (join) {
|
|
notifyperm.sendMessage(Replace.replace(SelectMessages.OP_consoleOnJoin.replace("[player]", player.getName())));
|
|
} else notifyperm.sendMessage(Replace.replace(SelectMessages.OP_consoleKick.replace("[player]", player.getName())));
|
|
if (SelectConfig.Notify_Sound_Enable) {
|
|
notifyperm.playSound(player.getLocation(), SelectConfig.Notify_Sound, 3, 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (SelectConfig.no_OP_Player_kick && SelectConfig.no_OP_Player_deop) {
|
|
player.setOp(false);
|
|
Cmd.console(SelectConfig.KickCommand.replace("[player]", player.getName())
|
|
.replace("[reason]", Replace.replace(SelectMessages.OP_kick + "\n" + "\n" + SelectMessages.OP_deop)));
|
|
send.console(Replace.replace(SelectMessages.OP_consoleKick.replace("[player]", player.getName())));
|
|
return true;
|
|
} else {
|
|
if (SelectConfig.no_OP_Player_kick) {
|
|
Cmd.console(SelectConfig.KickCommand.replace("[player]", player.getName()).replace("[reason]", Replace.replace(SelectMessages.OP_kick)));
|
|
send.console(Replace.replace(SelectMessages.OP_consoleKick.replace("[player]", player.getName())));
|
|
for (Player notifyperm : Bukkit.getOnlinePlayers()) {
|
|
if (notifyperm.hasPermission("opsecurity.notify")) {
|
|
notifyperm.sendMessage(Replace.replace(SelectMessages.OP_consoleKick.replace("[player]", player.getName())
|
|
+ "\n" + SelectMessages.OP_consoleDeop.replace("[player]", player.getName())));
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
if (SelectConfig.no_OP_Player_deop) {
|
|
player.setOp(false);
|
|
if (SelectConfig.sendPlayerDEOPmsg) {
|
|
new BukkitRunnable() {
|
|
@Override
|
|
public void run() {
|
|
player.sendMessage(Replace.replace(SelectMessages.OP_deop));
|
|
}
|
|
}.runTaskLater(Main.plugin, 5L);
|
|
|
|
}
|
|
send.console(Replace.replace(SelectMessages.OP_consoleDeop.replace("[player]", player.getName())));
|
|
for (Player notifyperm : Bukkit.getOnlinePlayers()) {
|
|
if (notifyperm.hasPermission("opsecurity.notify")) {
|
|
notifyperm.sendMessage(Replace.replace(SelectMessages.OP_consoleDeop.replace("[player]", player.getName())));
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
if (SelectConfig.customCommand_Enable) {
|
|
new BukkitRunnable() {
|
|
@Override
|
|
public void run() {
|
|
for (String cmd : SelectConfig.customKickCommand) {
|
|
Cmd.console(Replace.replace(cmd.replace("[player]", player.getName())));
|
|
}
|
|
}
|
|
}.runTaskLater(Main.plugin, 5L);
|
|
return true;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
if (SelectConfig.Permission_Whitelist_Enable) {
|
|
for (String s : SelectConfig.Permissions) {
|
|
if (player.hasPermission(s)) {
|
|
if (!permWhitelist(player)) {
|
|
if (join) {
|
|
send.console(Replace.replace(SelectMessages.Perm_consoleOnJoin.replace("[player]", player.getName()).replace("[perm]", s)));
|
|
}
|
|
if (SelectConfig.Notify_Warn) {
|
|
for (Player notifyperm : Bukkit.getOnlinePlayers()) {
|
|
if (notifyperm.hasPermission("opsecurity.notify")) {
|
|
if (join) {
|
|
notifyperm.sendMessage(Replace.replace(SelectMessages.Perm_consoleOnJoin.replace("[player]",
|
|
player.getName()).replace("[perm]", s)));
|
|
} else notifyperm.sendMessage(Replace.replace(SelectMessages.Perm_consoleKick.replace("[player]",
|
|
player.getName()).replace("[perm]", s)));
|
|
if (SelectConfig.Notify_Sound_Enable) {
|
|
notifyperm.playSound(player.getLocation(), SelectConfig.Notify_Sound, 3, 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (SelectConfig.PlayerWhithPermission_kick && SelectConfig.Perm_Command_enable){
|
|
Cmd.console(SelectConfig.KickCommand.replace("[player]", player.getName()).replace("[reason]", Replace.replace(SelectMessages.Perm_kick)));
|
|
send.console(Replace.replace(SelectMessages.Perm_consoleKick.replace("[player]",
|
|
player.getName()).replace("[perm]", s)));
|
|
for (String cmd : SelectConfig.Perm_Command) {
|
|
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), cmd.replace("[player]", player.getName()).replace("[perm]", s));
|
|
}
|
|
return true;
|
|
|
|
}
|
|
if (SelectConfig.PlayerWhithPermission_kick) {
|
|
Cmd.console( SelectConfig.KickCommand.replace("[player]", player.getName()).replace("[reason]", Replace.replace(SelectMessages.Perm_kick)));
|
|
send.console(Replace.replace(SelectMessages.Perm_consoleKick.replace("[player]",
|
|
player.getName()).replace("[perm]", s)));
|
|
return true;
|
|
}
|
|
if (SelectConfig.Perm_Command_enable) {
|
|
for (String cmd : SelectConfig.Perm_Command) {
|
|
Cmd.console(cmd.replace("[player]", player.getName()).replace("[perm]", s));
|
|
}
|
|
return true;
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private static Boolean opWhitelist(Player player) {
|
|
if (Main.opHashMap.containsKey(player.getName())) {
|
|
if (Main.opHashMap.get(player.getName()).UUID.equals(player.getUniqueId().toString().replace("-", ""))) {
|
|
return true;
|
|
} else return false;
|
|
} else return false;
|
|
}
|
|
|
|
private static Boolean permWhitelist(Player player) {
|
|
if (Main.permissionHashMap.containsKey(player.getName())) {
|
|
if (Main.permissionHashMap.get(player.getName()).UUID.equals(player.getUniqueId().toString().replace("-",""))) {
|
|
return true;
|
|
} else return false;
|
|
} else return false;
|
|
}
|
|
}
|