- package cc.moecraft.banwords;
- import org.bukkit.ChatColor;
- import org.bukkit.plugin.java.JavaPlugin;
- import java.util.List;
- import org.bukkit.Bukkit;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.SignChangeEvent;
- import org.bukkit.event.player.PlayerChatEvent;
- /**
- * @author kilpikonna
- */
- public class BanWords extends JavaPlugin implements Listener
- {
- String spcmd;
- String sccmd;
- boolean skill;
- boolean skk;
- boolean smessage;
- String smsg;
- String skmsg;
- String cpcmd;
- String cccmd;
- boolean ckill;
- boolean ckk;
- boolean cmessage;
- String cmsg;
- String ckmsg;
- String crmsg;
- boolean cermsg;
- boolean cerw;
- String crw;
- List list;
- boolean csc;
- public void onEnable()
- {
- getServer().getPluginManager().registerEvents(this, this);
- getConfig().options().copyDefaults(true);
- saveConfig();
- /*读取配置*/
- this.skk = getConfig().getBoolean("Sign.KickPlayer");
- this.skill = getConfig().getBoolean("Sign.KillPlayer");
- this.smessage = getConfig().getBoolean("Sign.EnableSendMessage");
- this.spcmd = getConfig().getString("Sign.PlayerCommand");
- this.sccmd = getConfig().getString("Sign.ConsoleCommand");
- this.smsg = getConfig().getString("Sign.Message");
- this.ckk = getConfig().getBoolean("Chat.KickPlayer");
- this.ckill = getConfig().getBoolean("Chat.KillPlayer");
- this.cmessage = getConfig().getBoolean("Chat.EnableSendMessage");
- this.cpcmd = getConfig().getString("Chat.PlayerCommand");
- this.cccmd = getConfig().getString("Chat.ConsoleCommand");
- this.cmsg = getConfig().getString("Chat.Message");
- this.ckmsg = getConfig().getString("Chat.KickMessage");
- this.crmsg = getConfig().getString("Chat.ReplaceMessage");
- this.crw = getConfig().getString("Chat.ReplaceWord");
- this.cermsg = getConfig().getBoolean("Chat.EnableReplaceMessage");
- this.cerw = getConfig().getBoolean("Chat.EnableReplaceWord");
- this.csc = getConfig().getBoolean("Chat.SetCancelled");
- this.skmsg = getConfig().getString("Sign.KickMessage");
- this.list = getConfig().getStringList("BanWordList");
- /*替换彩色字符*/
- Bukkit.getConsoleSender().sendMessage("[KE][测试信息];" + smsg + ";" + cmsg + ";" + crmsg + ";" + crw + ".");
- if (!(this.smsg == null)){
- this.smsg = this.smsg.replaceAll("&", "§");
- }
- if (!(this.cmsg == null)){
- this.cmsg = this.cmsg.replaceAll("&", "§");
- }
- if (!(this.crmsg == null)) {
- this.crmsg = this.crmsg.replaceAll("&", "§");
- }
- if (!(this.crw == null)) {
- this.crw = this.crw.replaceAll("&", "§");
- }
- Bukkit.getConsoleSender().sendMessage("[KE][关键词屏蔽]加载完成,插件作者:kilpikonna");
- }
-
- public void onDisable()
- {
- Bukkit.getConsoleSender().sendMessage("[KE][关键词屏蔽]卸载完成,插件作者:kilpikonna");
- }
-
- @EventHandler
- public void signPlaceEvent(SignChangeEvent e)
- {
- /*牌子关键词屏蔽*/
- Player player = e.getPlayer();
- for (int line = 0; line < 4; line++)
- {
- String message = e.getLine(line);
- for (int col = 0; col > 9; col++){
- /*替换彩色字符0-9*/
- message = message.replaceAll("&" + col , "");
- }
- /*替换彩色字符abcdef mnrl*/
- message = message.replaceAll("&a", "");
- message = message.replaceAll("&b", "");
- message = message.replaceAll("&c", "");
- message = message.replaceAll("&d", "");
- message = message.replaceAll("&e", "");
- message = message.replaceAll("&f", "");
- message = message.replaceAll("&m", "");
- message = message.replaceAll("&n", "");
- message = message.replaceAll("&r", "");
- message = message.replaceAll("&l", "");
-
- for (int word = 0; word < list.toArray().length; word++) {
- if (message.toLowerCase().contains(((String)list.get(word)).toLowerCase())) {
- if (!player.hasPermission("ke.bws.s.bypass")) {
- e.setCancelled(true);
- /*检测是否踢掉玩家,并输出踢掉玩家的信息*/
- if (this.skk) {
- if (!player.hasPermission("ke.bws.s.kick.bypass")) {
- player.kickPlayer(skmsg.replaceAll("&", "§"));
- }
- } else {
- /*如果不踢掉,检测是否杀掉玩家*/
- if (this.skill) {
- if (!player.hasPermission("ke.bws.s.kill.bypass")) {
- player.damage(32767.0D);
- if (player.getHealth() > 0.0D) {
- player.setHealth(0.0D);
- }
- }
- }
- }
- /*检测是否发送信息并发送信息*/
- if (this.smessage){
- if (this.smsg.equals("")){
- player.sendMessage(ChatColor.RED + "服主并不想让你在牌子上写屏蔽掉的词并向你扔了两只狗 :D");
- player.sendMessage(ChatColor.RED + "屏蔽的关键词: " + (String)list.get(word));
- } else {
- player.sendMessage(ChatColor.RED + smsg);
- player.sendMessage(ChatColor.RED + "屏蔽的关键词: " + (String)list.get(word));
- }
- }
- /*发送后台指令和玩家指令*/
- if (!sccmd.equals("")){
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(),sccmd);
- }
- if (!spcmd.equals("")){
- player.chat("/" + spcmd);
- }
- }
- }
- }
- }
- }
- @EventHandler
- public void onPlayerChat(PlayerChatEvent event)
- {
- Player player = event.getPlayer();
- if (!player.hasPermission("ke.bws.c.bypass")) {
- String msg = event.getMessage().toLowerCase();
- for (int col = 0; col > 9; col++){
- /*替换彩色字符0-9*/
- msg = msg.replaceAll("&" + col , "");
- }
- /*替换彩色字符abcdef mnrl*/
- msg = msg.replaceAll("&a", "");
- msg = msg.replaceAll("&b", "");
- msg = msg.replaceAll("&c", "");
- msg = msg.replaceAll("&d", "");
- msg = msg.replaceAll("&e", "");
- msg = msg.replaceAll("&f", "");
- msg = msg.replaceAll("&m", "");
- msg = msg.replaceAll("&n", "");
- msg = msg.replaceAll("&r", "");
- msg = msg.replaceAll("&l", "");
-
- for (int x = 0; x < list.toArray().length; x++)
- {
- String word = (String)list.toArray()[x];
- word = word.toLowerCase();
- if (msg.contains(word))
- {
- /*发送后台指令和玩家指令*/
- if (!sccmd.equals("")){
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(),sccmd);
- }
- if (!spcmd.equals("")){
- player.chat("/" + spcmd);
- }
- /*检测是否踢掉玩家,并输出踢掉玩家的信息*/
- if (this.ckk) {
- if (!player.hasPermission("ke.bws.c.kick.bypass")) {
- player.kickPlayer(ckmsg.replaceAll("&", "§"));
- }
- } else {
- /*如果不踢掉,检测是否杀掉玩家*/
- if (this.ckill) {
- if (!player.hasPermission("ke.bws.c.kill.bypass")) {
- player.damage(32767.0D);
- if (player.getHealth() > 0.0D) {
- player.setHealth(0.0D);
- }
- }
- }
- }
- /*检测是否发送信息并发送信息*/
- if (this.cmessage){
- if (this.cmsg.equals("")){
- player.sendMessage(ChatColor.RED + "服主并不想让你发送屏蔽掉的词并向你扔了两只狗 :D");
- player.sendMessage(ChatColor.RED + "屏蔽的关键词: " + word);
- } else {
- player.sendMessage(ChatColor.RED + cmsg);
- player.sendMessage(ChatColor.RED + "屏蔽的关键词: " + word);
- }
- }
- /*替换消息*/
- if (this.cermsg) {
- event.setMessage(crmsg);
- } else {
- /*替换关键词*/
- if (this.cerw) {
- event.setMessage(event.getMessage().toLowerCase().replaceAll(word.toLowerCase(), this.crw));
- }
- }
- /*取消事件*/
- if (this.csc) {
- event.setCancelled(true);
- }
- }
- }
- }
- }
- }
复制代码
|