@SuppressWarnings("unchecked")
	@EventHandler
	public void onSignEdit(SignChangeEvent event){
		for(String line:event.getLines()){
			for(String word:simplify(ChatColor.stripColor(line)).split("[,./:;-`~()\\[\\]{}+ ]"))
				if(wordList.fuzzilyContains(word)){
					swearReport(event.getPlayer().getName());
					event.getPlayer().sendMessage(config.getString("swear.sign.message").replace("<WARNING>", Integer.toString(plist.getInt("tracker."+event.getPlayer().getName()))+Ordinal.getOrdinal(plist.getInt("tracker."+event.getPlayer().getName()))).replace("<PLAYER>", event.getPlayer().getDisplayName()));
					if(config.getString("swear.sign.mode").equalsIgnoreCase("cancel")){
						event.setCancelled(true);
					}else if(config.getString("swear.sign.mode").equalsIgnoreCase("censor")){
						for(int i=0;i<3;i++){
							line.replaceAll("(?i:"+word+")", ChatColor.RESET+bleepColor+Bleeper.generateBleep(word,(List<String>) config.getList("swear.bleep.chars"))+ChatColor.RESET);
							event.setLine(i, line);
						}
					}
				}
		}
	}