Last active
March 22, 2016 11:23
-
-
Save otya128/7158e81d9d55d82dd7ea to your computer and use it in GitHub Desktop.
hagemod
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.hagemod; | |
import com.google.gson.Gson; | |
import cpw.mods.fml.common.event.FMLPreInitializationEvent; | |
import cpw.mods.fml.common.event.FMLServerStartingEvent; | |
import cpw.mods.fml.common.eventhandler.EventPriority; | |
import cpw.mods.fml.common.eventhandler.SubscribeEvent; | |
import ibxm.Player; | |
import net.minecraft.command.CommandBase; | |
import net.minecraft.command.ICommandSender; | |
import cpw.mods.fml.common.Mod; | |
import cpw.mods.fml.common.Mod.EventHandler; | |
import cpw.mods.fml.common.event.FMLInitializationEvent; | |
import java.io.BufferedReader; | |
import java.io.IOException; | |
import java.io.InputStreamReader; | |
import java.io.UnsupportedEncodingException; | |
import java.net.*; | |
import java.nio.charset.StandardCharsets; | |
import java.util.*; | |
import java.util.regex.Pattern; | |
import cpw.mods.fml.common.network.NetworkCheckHandler; | |
import cpw.mods.fml.relauncher.Side; | |
import net.minecraft.command.WrongUsageException; | |
import net.minecraft.entity.player.EntityPlayer; | |
import net.minecraft.server.MinecraftServer; | |
import net.minecraft.util.ChatComponentText; | |
import net.minecraft.util.ChatComponentTranslation; | |
import net.minecraft.util.ChatStyle; | |
import net.minecraft.util.EnumChatFormatting; | |
import net.minecraftforge.common.MinecraftForge; | |
import net.minecraftforge.common.config.Configuration; | |
import net.minecraftforge.common.config.Property; | |
import net.minecraftforge.event.ServerChatEvent; | |
//import com.ibm.icu.text.Transliterator; | |
class AAA | |
{ | |
static Map<String, String> map1; | |
static Map<String, String> map2; | |
static Map<String, String> map3; | |
static Map<String, String> map4; | |
static Pattern AAE; | |
static String[] ABB = {"A", "I", "U", "E", "O"}; | |
static void ABA(String str) | |
{ | |
for(String ABC : ABB) | |
{ | |
map3.put((str + str + ABC).toLowerCase(), "っ" + map2.get((str + ABC).toLowerCase())); | |
} | |
} | |
static void ABD(String str) | |
{ | |
for(String ABC : ABB) | |
{ | |
map4.put((str.substring(0, 1) + str + ABC).toLowerCase(), "っ" + map3.get((str + ABC).toLowerCase())); | |
} | |
} | |
static | |
{ | |
AAE = Pattern.compile("n(.|$)"); | |
map1 = new HashMap<String, String>(); | |
map2 = new HashMap<String, String>(); | |
map3 = new HashMap<String, String>(); | |
map4 = new HashMap<String, String>(); | |
map1.put("-".toLowerCase(), "ー"); | |
map1.put("A".toLowerCase(), "あ"); | |
map1.put("I".toLowerCase(), "い"); | |
map1.put("U".toLowerCase(), "う"); | |
map1.put("E".toLowerCase(), "え"); | |
map1.put("O".toLowerCase(), "お"); | |
map2.put("KA".toLowerCase(), "か"); | |
map2.put("KI".toLowerCase(), "き"); | |
map2.put("KU".toLowerCase(), "く"); | |
map2.put("KE".toLowerCase(), "け"); | |
map2.put("KO".toLowerCase(), "こ"); | |
map2.put("SA".toLowerCase(), "さ"); | |
map2.put("SI".toLowerCase(), "し"); | |
map2.put("SU".toLowerCase(), "す"); | |
map2.put("SE".toLowerCase(), "せ"); | |
map2.put("SO".toLowerCase(), "そ"); | |
map2.put("TA".toLowerCase(), "た"); | |
map2.put("TI".toLowerCase(), "ち"); | |
map2.put("TU".toLowerCase(), "つ"); | |
map2.put("TE".toLowerCase(), "て"); | |
map2.put("TO".toLowerCase(), "と"); | |
map2.put("NA".toLowerCase(), "な"); | |
map2.put("NI".toLowerCase(), "に"); | |
map2.put("NU".toLowerCase(), "ぬ"); | |
map2.put("NE".toLowerCase(), "ね"); | |
map2.put("NO".toLowerCase(), "の"); | |
map2.put("HA".toLowerCase(), "は"); | |
map2.put("HI".toLowerCase(), "ひ"); | |
map2.put("HU".toLowerCase(), "ふ"); | |
map2.put("HE".toLowerCase(), "へ"); | |
map2.put("HO".toLowerCase(), "ほ"); | |
map2.put("FA".toLowerCase(), "ふぁ"); | |
map2.put("FI".toLowerCase(), "ふぃ"); | |
map2.put("FU".toLowerCase(), "ふ"); | |
map2.put("FE".toLowerCase(), "ふぇ"); | |
map2.put("FO".toLowerCase(), "ふぉ"); | |
ABA("F"); | |
map2.put("MA".toLowerCase(), "ま"); | |
map2.put("MI".toLowerCase(), "み"); | |
map2.put("MU".toLowerCase(), "む"); | |
map2.put("ME".toLowerCase(), "め"); | |
map2.put("MO".toLowerCase(), "も"); | |
map2.put("YA".toLowerCase(), "や"); | |
map2.put("YI".toLowerCase(), "い"); | |
map2.put("YU".toLowerCase(), "ゆ"); | |
map2.put("YE".toLowerCase(), "いぇ"); | |
map2.put("YO".toLowerCase(), "よ"); | |
map2.put("RA".toLowerCase(), "ら"); | |
map2.put("RI".toLowerCase(), "り"); | |
map2.put("RU".toLowerCase(), "る"); | |
map2.put("RE".toLowerCase(), "れ"); | |
map2.put("RO".toLowerCase(), "ろ"); | |
map2.put("WA".toLowerCase(), "わ"); | |
map2.put("WI".toLowerCase(), "うぃ"); | |
map2.put("WU".toLowerCase(), "う"); | |
map2.put("WE".toLowerCase(), "うぇ"); | |
map2.put("WO".toLowerCase(), "を"); | |
map2.put("NN".toLowerCase(), "ん"); | |
map2.put("GA".toLowerCase(), "が"); | |
map2.put("GI".toLowerCase(), "ぎ"); | |
map2.put("GU".toLowerCase(), "ぐ"); | |
map2.put("GE".toLowerCase(), "げ"); | |
map2.put("GO".toLowerCase(), "ご"); | |
ABA("G"); | |
map2.put("ZA".toLowerCase(), "ざ"); | |
map2.put("ZI".toLowerCase(), "じ"); | |
map2.put("ZU".toLowerCase(), "ず"); | |
map2.put("ZE".toLowerCase(), "ぜ"); | |
map2.put("ZO".toLowerCase(), "ぞ"); | |
ABA("Z"); | |
map2.put("DA".toLowerCase(), "だ"); | |
map2.put("DI".toLowerCase(), "ぢ"); | |
map2.put("DU".toLowerCase(), "づ"); | |
map2.put("DE".toLowerCase(), "で"); | |
map2.put("DO".toLowerCase(), "ど"); | |
ABA("D"); | |
map2.put("BA".toLowerCase(), "ば"); | |
map2.put("BI".toLowerCase(), "び"); | |
map2.put("BU".toLowerCase(), "ぶ"); | |
map2.put("BE".toLowerCase(), "べ"); | |
map2.put("BO".toLowerCase(), "ぼ"); | |
ABA("B"); | |
map2.put("PA".toLowerCase(), "ぱ"); | |
map2.put("PI".toLowerCase(), "ぴ"); | |
map2.put("PU".toLowerCase(), "ぷ"); | |
map2.put("PE".toLowerCase(), "ぺ"); | |
map2.put("PO".toLowerCase(), "ぽ"); | |
ABA("P"); | |
map2.put("VA".toLowerCase(), "ヴぁ"); | |
map2.put("VI".toLowerCase(), "ヴぃ"); | |
map2.put("VU".toLowerCase(), "ヴ"); | |
map2.put("VE".toLowerCase(), "ヴぇ"); | |
map2.put("VO".toLowerCase(), "ヴぉ"); | |
ABA("V"); | |
map2.put("CA".toLowerCase(), "か"); | |
map2.put("CI".toLowerCase(), "し"); | |
map2.put("CU".toLowerCase(), "く"); | |
map2.put("CE".toLowerCase(), "せ"); | |
map2.put("CO".toLowerCase(), "こ"); | |
ABA("C"); | |
map2.put("JA".toLowerCase(), "じゃ"); | |
map2.put("JI".toLowerCase(), "じ"); | |
map2.put("JU".toLowerCase(), "じゅ"); | |
map2.put("JE".toLowerCase(), "じぇ"); | |
map2.put("JO".toLowerCase(), "じょ"); | |
ABA("J"); | |
map3.put("SHA".toLowerCase(), "しゃ"); | |
map3.put("SHI".toLowerCase(), "し"); | |
map3.put("SHU".toLowerCase(), "しゅ"); | |
map3.put("SHE".toLowerCase(), "しぇ"); | |
map3.put("SHO".toLowerCase(), "しょ"); | |
ABD("SH"); | |
map3.put("CHA".toLowerCase(), "ちゃ"); | |
map3.put("CHI".toLowerCase(), "ち"); | |
map3.put("CHU".toLowerCase(), "ちゅ"); | |
map3.put("CHE".toLowerCase(), "ちぇ"); | |
map3.put("CHO".toLowerCase(), "ちょ"); | |
ABD("CH"); | |
map3.put("THA".toLowerCase(), "てゃ"); | |
map3.put("THI".toLowerCase(), "てぃ"); | |
map3.put("THU".toLowerCase(), "てゅ"); | |
map3.put("THE".toLowerCase(), "てぇ"); | |
map3.put("THO".toLowerCase(), "てょ"); | |
ABD("TH"); | |
map3.put("TSA".toLowerCase(), "つぁ"); | |
map3.put("TSI".toLowerCase(), "つぃ"); | |
map3.put("TSU".toLowerCase(), "つ"); | |
map3.put("TSE".toLowerCase(), "つぇ"); | |
map3.put("TSO".toLowerCase(), "つぉ"); | |
ABD("TS"); | |
map3.put("KYA".toLowerCase(), "きゃ"); | |
map3.put("KYI".toLowerCase(), "きぃ"); | |
map3.put("KYU".toLowerCase(), "きゅ"); | |
map3.put("KYE".toLowerCase(), "きぇ"); | |
map3.put("KYO".toLowerCase(), "きょ"); | |
ABD("KY"); | |
map3.put("SYA".toLowerCase(), "しゃ"); | |
map3.put("SYI".toLowerCase(), "しぃ"); | |
map3.put("SYU".toLowerCase(), "しゅ"); | |
map3.put("SYE".toLowerCase(), "しぇ"); | |
map3.put("SYO".toLowerCase(), "しょ"); | |
ABD("SY"); | |
map3.put("TYA".toLowerCase(), "ちゃ"); | |
map3.put("TYI".toLowerCase(), "ちぃ"); | |
map3.put("TYU".toLowerCase(), "ちゅ"); | |
map3.put("TYE".toLowerCase(), "ちぇ"); | |
map3.put("TYO".toLowerCase(), "ちょ"); | |
ABD("TY"); | |
map3.put("NYA".toLowerCase(), "にゃ"); | |
map3.put("NYI".toLowerCase(), "にぃ"); | |
map3.put("NYU".toLowerCase(), "にゅ"); | |
map3.put("NYE".toLowerCase(), "にぇ"); | |
map3.put("NYO".toLowerCase(), "にょ"); | |
ABD("NY"); | |
map3.put("HYA".toLowerCase(), "ひゃ"); | |
map3.put("HYI".toLowerCase(), "ひぃ"); | |
map3.put("HYU".toLowerCase(), "ひゅ"); | |
map3.put("HYE".toLowerCase(), "ひぇ"); | |
map3.put("HYO".toLowerCase(), "ひょ"); | |
ABD("HY"); | |
map3.put("RYA".toLowerCase(), "りゃ"); | |
map3.put("RYI".toLowerCase(), "りぃ"); | |
map3.put("RYU".toLowerCase(), "りゅ"); | |
map3.put("RYE".toLowerCase(), "りぇ"); | |
map3.put("RYO".toLowerCase(), "りょ"); | |
ABD("RY"); | |
map3.put("GYA".toLowerCase(), "ぎゃ"); | |
map3.put("GYI".toLowerCase(), "ぎぃ"); | |
map3.put("GYU".toLowerCase(), "ぎゅ"); | |
map3.put("GYE".toLowerCase(), "ぎぇ"); | |
map3.put("GYO".toLowerCase(), "ぎょ"); | |
ABD("GY"); | |
map3.put("ZYA".toLowerCase(), "じゃ"); | |
map3.put("ZYI".toLowerCase(), "じぃ"); | |
map3.put("ZYU".toLowerCase(), "じゅ"); | |
map3.put("ZYE".toLowerCase(), "じぇ"); | |
map3.put("ZYO".toLowerCase(), "じょ"); | |
ABD("ZY"); | |
map3.put("DYA".toLowerCase(), "ぢゃ"); | |
map3.put("DYI".toLowerCase(), "ぢぃ"); | |
map3.put("DYU".toLowerCase(), "ぢゅ"); | |
map3.put("DYE".toLowerCase(), "ぢぇ"); | |
map3.put("DYO".toLowerCase(), "ぢょ"); | |
ABD("DY"); | |
map3.put("BYA".toLowerCase(), "びゃ"); | |
map3.put("BYI".toLowerCase(), "びぃ"); | |
map3.put("BYU".toLowerCase(), "びゅ"); | |
map3.put("BYE".toLowerCase(), "びぇ"); | |
map3.put("BYO".toLowerCase(), "びょ"); | |
ABD("BY"); | |
map3.put("PYA".toLowerCase(), "ぴゃ"); | |
map3.put("PYI".toLowerCase(), "ぴぃ"); | |
map3.put("PYU".toLowerCase(), "びゅ"); | |
map3.put("PYE".toLowerCase(), "ぴぇ"); | |
map3.put("PYO".toLowerCase(), "ぴょ"); | |
ABD("PY"); | |
//map2.put("TT".toLowerCase(), "っT"); | |
ABA("K"); | |
ABA("S"); | |
ABA("T"); | |
ABA("N"); | |
ABA("H"); | |
ABA("M"); | |
ABA("Y"); | |
ABA("R"); | |
ABA("W"); | |
map3.put("TTA".toLowerCase(), "った"); | |
map3.put("TTI".toLowerCase(), "っち"); | |
map3.put("TTU".toLowerCase(), "っつ"); | |
map3.put("TTE".toLowerCase(), "って"); | |
map3.put("TTO".toLowerCase(), "っと"); | |
ABD("TT"); | |
map2.put("XA".toLowerCase(), "ぁ"); | |
map2.put("XI".toLowerCase(), "ぃ"); | |
map2.put("XU".toLowerCase(), "ぅ"); | |
map2.put("XE".toLowerCase(), "ぇ"); | |
map2.put("XO".toLowerCase(), "ぉ"); | |
ABA("X"); | |
map3.put("XTU".toLowerCase(), "っ"); | |
map4.put("XXTU".toLowerCase(), "っっ"); | |
map3.put("XYA".toLowerCase(), "ゃ"); | |
map4.put("XXYA".toLowerCase(), "っゃ"); | |
map3.put("XYU".toLowerCase(), "ゅ"); | |
map4.put("XXYU".toLowerCase(), "っゅ"); | |
map3.put("XYO".toLowerCase(), "ょ"); | |
map4.put("XXYO".toLowerCase(), "っょ"); | |
map2.put("LA".toLowerCase(), "ぁ"); | |
map2.put("LI".toLowerCase(), "ぃ"); | |
map2.put("LU".toLowerCase(), "ぅ"); | |
map2.put("LE".toLowerCase(), "ぇ"); | |
map2.put("LO".toLowerCase(), "ぉ"); | |
ABA("L"); | |
map3.put("LTU".toLowerCase(), "っ"); | |
map4.put("LLTU".toLowerCase(), "っっ"); | |
map3.put("LYA".toLowerCase(), "ゃ"); | |
map4.put("LLYA".toLowerCase(), "っゃ"); | |
map3.put("LYU".toLowerCase(), "ゅ"); | |
map4.put("LLYU".toLowerCase(), "っゅ"); | |
map3.put("LYO".toLowerCase(), "ょ"); | |
map4.put("LLYO".toLowerCase(), "っょ"); | |
} | |
static String AAB(String str) | |
{ | |
for(Map.Entry<String, String> e : map4.entrySet()) | |
{ | |
str = str.replace(e.getKey(), e.getValue()); | |
} | |
for(Map.Entry<String, String> e : map3.entrySet()) | |
{ | |
str = str.replace(e.getKey(), e.getValue()); | |
} | |
for(Map.Entry<String, String> e : map2.entrySet()) | |
{ | |
str = str.replace(e.getKey(), e.getValue()); | |
} | |
for(Map.Entry<String, String> e : map1.entrySet()) | |
{ | |
str = str.replace(e.getKey(), e.getValue()); | |
} | |
str = AAE.matcher(str).replaceAll("ん$1"); | |
return str; | |
} | |
} | |
@Mod(modid = HageMod.MODID, version = HageMod.VERSION) | |
public class HageMod | |
{ | |
String get(String u) | |
{ | |
StringBuilder output = new StringBuilder(); | |
try { | |
URL url = new URL(u); | |
HttpURLConnection connection = null; | |
try { | |
connection = (HttpURLConnection) url.openConnection(); | |
connection.setRequestMethod("GET"); | |
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { | |
InputStreamReader isr = null; | |
try { | |
isr = new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8); | |
BufferedReader reader = new BufferedReader(isr); | |
{ | |
String line; | |
while ((line = reader.readLine()) != null) { | |
output.append(line); | |
} | |
} | |
} | |
finally { | |
if (isr != null) { | |
isr.close(); | |
} | |
} | |
} | |
} finally { | |
if (connection != null) { | |
connection.disconnect(); | |
} | |
} | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
return output.toString(); | |
} | |
public static final String MODID = "hagemod"; | |
public static final String VERSION = "1.2"; | |
@Mod.Instance(HageMod.MODID) | |
protected static HageMod instance; | |
Configuration cfg; | |
boolean enableChat; | |
boolean replaceChat; | |
String[] defpattern = {"ハゲ|hage|はげ"}; | |
String[] defuser = {}; | |
List<String> users; | |
@EventHandler | |
public void preInit(FMLPreInitializationEvent event) { | |
cfg = new Configuration(event.getSuggestedConfigurationFile()); | |
try | |
{ | |
cfg.load(); | |
//Property patternp = cfg.get("chat", "pattern", "ハゲ|hage|はげ"); | |
//pattern = Pattern.compile(patternp.getString()); | |
Property messagep = cfg.get("chat", "message", "誰がハゲじゃハゲ"); | |
message = messagep.getString(); | |
Property enablep = cfg.get("chat", "enable", true); | |
enableChat = enablep.getBoolean(); | |
Property replacep = cfg.get("chat", "replace", false); | |
replaceChat = replacep.getBoolean(); | |
Property listp = cfg.get("chat", "patternlist", defpattern); | |
String[] patterns = listp.getStringList(); | |
this.patterns = new ArrayList<String>(Arrays.asList(patterns)); | |
Property userp = cfg.get("ime", "user", defuser); | |
String[] users = userp.getStringList(); | |
this.users = new ArrayList<String>(Arrays.asList(users)); | |
updatePattern(); | |
} | |
catch (Exception e) | |
{ | |
} | |
finally | |
{ | |
cfg.save(); | |
} | |
} | |
String hageime(String romaji) | |
{ | |
Gson gson = new Gson(); | |
List AAC = null; | |
String AAD = ""; | |
try { | |
romaji = AAA.AAB(romaji); | |
for (int i = 0; i < romaji.length(); i += 42) { | |
String romaji2; | |
if(i + 42 >= romaji.length()) { | |
romaji2 = romaji.substring(i, romaji.length()); | |
} | |
else | |
romaji2 = romaji.substring(i, i + 42); | |
AAC = gson.fromJson(get("http://www.google.com/transliterate?langpair=ja-Hira|ja&text=" + URLEncoder.encode(romaji2, "utf-8")), List.class); | |
for (Object a : AAC) { | |
AAD += ((List) (((List) a).get(1))).get(0).toString(); | |
} | |
} | |
}catch (UnsupportedEncodingException e) { | |
e.printStackTrace(); | |
} | |
return AAD; | |
} | |
@EventHandler | |
public void serverStarting(FMLServerStartingEvent event){ | |
event.registerServerCommand(new CommandHage()); | |
event.registerServerCommand(new CommandHageIme()); | |
} | |
String message; | |
@EventHandler | |
public void init(FMLInitializationEvent event) | |
{ | |
MinecraftForge.EVENT_BUS.register(this); | |
} | |
List<String> patterns; | |
Pattern pattern; | |
@SubscribeEvent(priority = EventPriority.LOWEST) | |
public void serverChatEvent(ServerChatEvent event) | |
{ | |
//Transliterator transliterator = Transliterator.getInstance("Any-Hiragana"); | |
//String result = transliterator.transliterate(event.message); | |
//event.component = new ChatComponentTranslation(result); | |
if(users.contains(event.username)) { | |
try { | |
String[] split = event.message.split("\\$"); | |
String AAF = ""; | |
boolean henkanflag = true; | |
for (String s : split) { | |
if (henkanflag) { | |
try { | |
AAF += hageime(s); | |
} catch (Exception e) { | |
AAF += s; | |
} | |
} else { | |
AAF += s; | |
} | |
henkanflag = !henkanflag; | |
} | |
event.component = new ChatComponentTranslation("<" + event.username + "> " + AAF); | |
event.component.appendSibling(new ChatComponentText(" (" + event.message + ")").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GRAY))); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
} | |
} | |
if(!enableChat) return; | |
if(pattern.matcher(event.message).find()) | |
{ | |
if(replaceChat) | |
{ | |
event.component = new ChatComponentTranslation( | |
pattern.matcher(event.component.getUnformattedText()) | |
.replaceAll(message) | |
); | |
return; | |
} | |
event.setCanceled(true); | |
MinecraftServer.getServer().getConfigurationManager().sendChatMsg(event.component); | |
MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText(message).setChatStyle(new ChatStyle().setBold(true))); | |
} | |
} | |
@NetworkCheckHandler | |
public boolean netCheckHandler(Map<String, String> mods, Side side) | |
{ | |
return side.isClient(); | |
} | |
public void setPattern(String pattern) { | |
this.pattern = Pattern.compile(pattern); | |
Property patternp = cfg.get("chat", "pattern", pattern); | |
patternp.set(pattern); | |
cfg.save(); | |
} | |
public void setMessage(String message) { | |
this.message = message; | |
Property messagep = cfg.get("chat", "message", message); | |
messagep.set(message); | |
cfg.save(); | |
} | |
public void enableChat(boolean enable) { | |
this.enableChat = enable; | |
Property enablep = cfg.get("chat", "enable", enable); | |
enablep.set(enable); | |
cfg.save(); | |
} | |
public void setReplace(boolean enable) { | |
this.replaceChat = enable; | |
Property enablep = cfg.get("chat", "replace", enable); | |
enablep.set(enable); | |
cfg.save(); | |
} | |
public void addPattern(String pattern) | |
{ | |
patterns.add(pattern); | |
updatePattern(); | |
savePattern(); | |
} | |
public void removePattern(String pattern) | |
{ | |
patterns.remove(pattern); | |
updatePattern(); | |
savePattern(); | |
} | |
public void clearPattern() | |
{ | |
patterns.clear(); | |
updatePattern(); | |
savePattern(); | |
} | |
protected void savePattern() | |
{ | |
String[] patterns = this.patterns.toArray(new String[this.patterns.size()]); | |
Property list = cfg.get("chat", "patternlist", defpattern); | |
list.set(patterns); | |
cfg.save(); | |
} | |
protected void updatePattern() | |
{ | |
StringBuilder stringBuilder = new StringBuilder();//スレッドセーフじゃないらしい | |
int i = 0;//後で気づいた | |
for(String pattern : patterns) | |
{ | |
stringBuilder.append('('); | |
stringBuilder.append(pattern); | |
if(i == patterns.size() - 1)//matsuo | |
stringBuilder.append(")"); | |
else | |
stringBuilder.append(")|"); | |
i++; | |
} | |
pattern = Pattern.compile(stringBuilder.toString()); | |
} | |
protected void enableIME(String user) | |
{ | |
users.add(user); | |
saveIMEUser(); | |
} | |
protected void disableIME(String user) | |
{ | |
users.remove(user); | |
saveIMEUser(); | |
} | |
protected void saveIMEUser() | |
{ | |
String[] patterns = this.users.toArray(new String[this.users.size()]); | |
Property list = cfg.get("ime", "user", defuser); | |
list.set(patterns); | |
cfg.save(); | |
} | |
public String getMessage() { | |
return message; | |
} | |
public List<String> getPatterns() { | |
return patterns; | |
} | |
public class CommandHage extends CommandBase { | |
@Override | |
public String getCommandName() { | |
return "hage"; | |
} | |
@Override | |
public String getCommandUsage(ICommandSender iCommandSender) { | |
return "message <messsage>, /*pattern <pattern>*/, enable, disable, replace <false|true>, list, add, remove, clear"; | |
} | |
@Override | |
public int getRequiredPermissionLevel() | |
{ | |
return 3;//OP | |
} | |
@Override | |
public void processCommand(ICommandSender var1, String[] var2) { | |
if (var2.length == 1) { | |
if (var2[0].equals("enable")) { | |
HageMod.instance.enableChat(true); | |
return; | |
} | |
if (var2[0].equals("disable")) { | |
HageMod.instance.enableChat(false); | |
return; | |
} | |
if (var2[0].equals("message")) { | |
var1.addChatMessage(new ChatComponentText(HageMod.instance.getMessage())); | |
return; | |
} | |
if (var2[0].equals("enable")) { | |
HageMod.instance.enableChat(true); | |
return; | |
} | |
if (var2[0].equals("clear")) { | |
HageMod.instance.clearPattern(); | |
return; | |
} | |
if (var2[0].equals("list")) { | |
List<String> list = HageMod.instance.getPatterns(); | |
for(String p : list) | |
{ | |
var1.addChatMessage(new ChatComponentText(p)); | |
} | |
return; | |
} | |
} | |
if (var2.length != 2) { | |
throw new WrongUsageException(getCommandUsage(var1)); | |
} | |
/*if (var2[0].equals("pattern")) { | |
HageMod.instance.setPattern(var2[1]); | |
return; | |
}*/ | |
if (var2[0].equals("message")) { | |
HageMod.instance.setMessage(var2[1].replace(' ', ' ')); | |
return; | |
} | |
if (var2[0].equals("replace")) { | |
if (var2[1].equals("true")) { | |
HageMod.instance.setReplace(true); | |
return; | |
} | |
if (var2[1].equals("false")) { | |
HageMod.instance.setReplace(false); | |
return; | |
} | |
throw new WrongUsageException(getCommandUsage(var1)); | |
} | |
if (var2[0].equals("add")) { | |
HageMod.instance.addPattern(var2[1]); | |
return; | |
} | |
if (var2[0].equals("remove")) { | |
HageMod.instance.removePattern(var2[1]); | |
return; | |
} | |
throw new WrongUsageException(getCommandUsage(var1)); | |
} | |
} | |
public class CommandHageIme extends CommandBase { | |
private List aliases; | |
public CommandHageIme() { | |
super(); | |
this.aliases = new ArrayList(); | |
this.aliases.add("hageime"); | |
this.aliases.add("hi"); | |
this.aliases.add("hime"); | |
} | |
@Override | |
public String getCommandName() { | |
return "hageime"; | |
} | |
@Override | |
public List getCommandAliases() | |
{ | |
return aliases; | |
} | |
@Override | |
public String getCommandUsage(ICommandSender iCommandSender) { | |
return "enable, disable, e, d"; | |
} | |
@Override | |
public void processCommand(ICommandSender var1, String[] var2) { | |
if (var2.length == 1) { | |
if ((var2[0].equals("enable") || var2[0].equals("e")) && var1 instanceof EntityPlayer) { | |
HageMod.instance.enableIME(((EntityPlayer) var1).getCommandSenderName()); | |
return; | |
} | |
if ((var2[0].equals("disable") || var2[0].equals("d")) && var1 instanceof EntityPlayer) { | |
HageMod.instance.disableIME(((EntityPlayer) var1).getCommandSenderName()); | |
return; | |
} | |
} | |
throw new WrongUsageException(getCommandUsage(var1)); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment