Skip to content

Instantly share code, notes, and snippets.

@otya128
Last active March 22, 2016 11:23
Show Gist options
  • Save otya128/7158e81d9d55d82dd7ea to your computer and use it in GitHub Desktop.
Save otya128/7158e81d9d55d82dd7ea to your computer and use it in GitHub Desktop.
hagemod
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