-
Bug
-
Resolution: Duplicate
-
None
-
Minecraft 1.8.1, Minecraft 1.8.3, Minecraft 1.8.4
-
None
-
NO mater what Enviroment
-
Unconfirmed
can't type any language it seems that change some class can fix it
My friend tried to fix axu.class in version 1.8.3 and it works
the code like that
import com.google.common.base.Splitter; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; import java.io.File; import java.lang.reflect.Method; import java.net.URI; import java.net.URISyntaxException; import java.util.Arrays; import java.util.List; import java.util.Set; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import tv.twitch.chat.ChatUserInfo; public abstract class axv extends avq implements awy { private static final Logger a = ; private static final Set<String> f = Sets.newHashSet(new String[] { "http", "https" }); private static final Splitter g = Splitter.on('\n'); protected avf j; protected bji k; public int l; public int m; protected List<avt> n = Lists.newArrayList(); protected List<avz> o = Lists.newArrayList(); public boolean p; protected avo q; private avt h; private int i; private long r; private int s; private URI t; public void a(int \u2603, int \u2603, float \u2603) { for (int \u2603 = 0; \u2603 < n.size(); \u2603++) { ((avt)n.get(\u2603)).a(j, \u2603, \u2603); } for (int \u2603 = 0; \u2603 < o.size(); \u2603++) { ((avz)o.get(\u2603)).a(j, \u2603, \u2603); } } protected void a(char \u2603, int \u2603) { if (\u2603 == 1) { j.a(null); if (j.m == null) { j.n(); } } } public static String o() { try { Transferable \u2603 = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null); if ((\u2603 != null) && (\u2603.isDataFlavorSupported(DataFlavor.stringFlavor))) { return (String)\u2603.getTransferData(DataFlavor.stringFlavor); } } catch (Exception localException) {} return ""; } public static void e(String \u2603) { if (StringUtils.isEmpty(\u2603)) { return; } try { StringSelection \u2603 = new StringSelection(\u2603); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(\u2603, null); } catch (Exception localException) {} } protected void a(zy \u2603, int \u2603, int \u2603) { List<String> \u2603 = \u2603.a(j.h, j.t.x); for (int \u2603 = 0; \u2603 < \u2603.size(); \u2603++) { if (\u2603 == 0) { \u2603.set(\u2603, ue + (String)\u2603.get(\u2603)); } else { \u2603.set(\u2603, a.h + (String)\u2603.get(\u2603)); } } a(\u2603, \u2603, \u2603); } protected void a(String \u2603, int \u2603, int \u2603) { a(Arrays.asList(new String[] { \u2603 }), \u2603, \u2603); } protected void a(List<String> \u2603, int \u2603, int \u2603) { if (\u2603.isEmpty()) { return; } bfm.C(); avd.a(); bfm.f(); bfm.i(); int \u2603 = 0; for (String \u2603 : \u2603) { int \u2603 = q.a(\u2603); if (\u2603 > \u2603) { \u2603 = \u2603; } } int \u2603 = \u2603 + 12; int \u2603 = \u2603 - 12; int \u2603 = \u2603; int \u2603 = 8; if (\u2603.size() > 1) { \u2603 += 2 + (\u2603.size() - 1) * 10; } if (\u2603 + \u2603 > l) { \u2603 -= 28 + \u2603; } if (\u2603 + \u2603 + 6 > m) { \u2603 = m - \u2603 - 6; } e = 300.0F; k.a = 300.0F; int \u2603 = -267386864; a(\u2603 - 3, \u2603 - 4, \u2603 + \u2603 + 3, \u2603 - 3, \u2603, \u2603); a(\u2603 - 3, \u2603 + \u2603 + 3, \u2603 + \u2603 + 3, \u2603 + \u2603 + 4, \u2603, \u2603); a(\u2603 - 3, \u2603 - 3, \u2603 + \u2603 + 3, \u2603 + \u2603 + 3, \u2603, \u2603); a(\u2603 - 4, \u2603 - 3, \u2603 - 3, \u2603 + \u2603 + 3, \u2603, \u2603); a(\u2603 + \u2603 + 3, \u2603 - 3, \u2603 + \u2603 + 4, \u2603 + \u2603 + 3, \u2603, \u2603); int \u2603 = 1347420415; int \u2603 = (\u2603 & 0xFEFEFE) >> 1 | \u2603 & 0xFF000000; a(\u2603 - 3, \u2603 - 3 + 1, \u2603 - 3 + 1, \u2603 + \u2603 + 3 - 1, \u2603, \u2603); a(\u2603 + \u2603 + 2, \u2603 - 3 + 1, \u2603 + \u2603 + 3, \u2603 + \u2603 + 3 - 1, \u2603, \u2603); a(\u2603 - 3, \u2603 - 3, \u2603 + \u2603 + 3, \u2603 - 3 + 1, \u2603, \u2603); a(\u2603 - 3, \u2603 + \u2603 + 2, \u2603 + \u2603 + 3, \u2603 + \u2603 + 3, \u2603, \u2603); for (int \u2603 = 0; \u2603 < \u2603.size(); \u2603++) { String \u2603 = (String)\u2603.get(\u2603); q.a(\u2603, \u2603, \u2603, -1); if (\u2603 == 0) { \u2603 += 2; } \u2603 += 10; } e = 0.0F; k.a = 0.0F; bfm.e(); bfm.j(); avd.b(); bfm.B(); } protected void a(ev \u2603, int \u2603, int \u2603) { if ((\u2603 == null) || (\u2603.b().i() == null)) { return; } ex \u2603 = \u2603.b().i(); if (\u2603.a() == ex.a.c) { zy \u2603 = null; try { ec \u2603 = ee.a(\u2603.b().c()); if ((\u2603 instanceof dp)) { \u2603 = zy.a((dp)\u2603); } } catch (ed localed1) {} if (\u2603 != null) { a(\u2603, \u2603, \u2603); } else { a(a.m + "Invalid Item!", \u2603, \u2603); } } else if (\u2603.a() == ex.a.d) { if (j.t.x) { try { ec \u2603 = ee.a(\u2603.b().c()); if ((\u2603 instanceof dp)) { List<String> \u2603 = Lists.newArrayList(); dp \u2603 = (dp)\u2603; \u2603.add(\u2603.j("name")); if (\u2603.b("type", 8)) { String \u2603 = \u2603.j("type"); \u2603.add("Type: " + \u2603 + " (" + pn.a(\u2603) + ")"); } \u2603.add(\u2603.j("id")); a(\u2603, \u2603, \u2603); } else { a(a.m + "Invalid Entity!", \u2603, \u2603); } } catch (ed \u2603) { a(a.m + "Invalid Entity!", \u2603, \u2603); } } } else if (\u2603.a() == ex.a.a) { a(g.splitToList(\u2603.b().d()), \u2603, \u2603); } else if (\u2603.a() == ex.a.b) { mx \u2603 = nb.a(\u2603.b().c()); if (\u2603 != null) { ev \u2603 = \u2603.e(); ev \u2603 = new fc("stats.tooltip.type." + (\u2603.d() ? "achievement" : "statistic"), new Object[0]); \u2603.b().b(Boolean.valueOf(true)); String \u2603 = (\u2603 instanceof mr) ? ((mr)\u2603).f() : null; List<String> \u2603 = Lists.newArrayList(new String[] { \u2603.d(), \u2603.d() }); if (\u2603 != null) { \u2603.addAll(q.c(\u2603, 150)); } a(\u2603, \u2603, \u2603); } else { a(a.m + "Invalid statistic/achievement!", \u2603, \u2603); } } bfm.f(); } protected boolean a(ev \u2603) { if (\u2603 == null) { return false; } eu \u2603 = \u2603.b().h(); if (r()) { if (\u2603.b().j() != null) { a(\u2603.b().j(), false); } } else if (\u2603 != null) { if (\u2603.a() == eu.a.a) { if (!j.t.n) { return false; } try { URI \u2603 = new URI(\u2603.b()); String \u2603 = \u2603.getScheme(); if (\u2603 == null) { throw new URISyntaxException(\u2603.b(), "Missing protocol"); } if (!f.contains(\u2603.toLowerCase())) { throw new URISyntaxException(\u2603.b(), "Unsupported protocol: " + \u2603.toLowerCase()); } if (j.t.o) { t = \u2603; j.a(new awx(this, \u2603.b(), 31102009, false)); } else { a(\u2603); } } catch (URISyntaxException \u2603) { a.error("Can't open url for " + \u2603, \u2603); } } else if (\u2603.a() == eu.a.b) { URI \u2603 = new File(\u2603.b()).toURI(); a(\u2603); } else if (\u2603.a() == eu.a.e) { a(\u2603.b(), true); } else if (\u2603.a() == eu.a.c) { b(\u2603.b(), false); } else if (\u2603.a() == eu.a.d) { ChatUserInfo \u2603 = j.Y().e(\u2603.b()); if (\u2603 != null) { j.a(new bac(j.Y(), \u2603)); } else { a.error("Tried to handle twitch user but couldn't find them!"); } } else { a.error("Don't know how to handle " + \u2603); } return true; } return false; } public void f(String \u2603) { b(\u2603, true); } public void b(String \u2603, boolean \u2603) { if (\u2603) { j.q.d().a(\u2603); } j.h.e(\u2603); } protected void a(int \u2603, int \u2603, int \u2603) { if (\u2603 == 0) { for (int \u2603 = 0; \u2603 < n.size(); \u2603++) { avt \u2603 = (avt)n.get(\u2603); if (\u2603.c(j, \u2603, \u2603)) { h = \u2603; \u2603.a(j.W()); a(\u2603); } } } } protected void b(int \u2603, int \u2603, int \u2603) { if ((h != null) && (\u2603 == 0)) { h.a(\u2603, \u2603); h = null; } } public void a(avf \u2603, int \u2603, int \u2603) { j = \u2603; k = \u2603.ag(); q = k; l = \u2603; m = \u2603; n.clear(); b(); } public void p() { if (Mouse.isCreated()) { while (Mouse.next()) { k(); } } if (Keyboard.isCreated()) { while (Keyboard.next()) { l(); } } } public void k() { int \u2603 = Mouse.getEventX() * l / j.d; int \u2603 = m - Mouse.getEventY() * m / j.e - 1; int \u2603 = Mouse.getEventButton(); if (Mouse.getEventButtonState()) { if ((j.t.z) && (s++ > 0)) { return; } i = \u2603; r = avf.J(); a(\u2603, \u2603, i); } else if (\u2603 != -1) { if ((j.t.z) && (--s > 0)) { return; } i = -1; b(\u2603, \u2603, \u2603); } else if ((i != -1) && (r > 0L)) { long \u2603 = avf.J() - r; a(\u2603, \u2603, i, \u2603); } } public void c() { b_(0); } public void b_(int \u2603) { if (j.f != null) { a(0, 0, l, m, -1072689136, -804253680); } else { c(\u2603); } } public void c(int \u2603) { bfm.f(); bfm.n(); bfy \u2603 = bfy.a(); bfe \u2603 = \u2603.c(); j.P().a(b); bfm.c(1.0F, 1.0F, 1.0F, 1.0F); float \u2603 = 32.0F; \u2603.a(7, bmt.i); \u2603.b(0.0D, m, 0.0D).a(0.0D, m / 32.0F + \u2603).b(64, 64, 64, 255).d(); \u2603.b(l, m, 0.0D).a(l / 32.0F, m / 32.0F + \u2603).b(64, 64, 64, 255).d(); \u2603.b(l, 0.0D, 0.0D).a(l / 32.0F, \u2603).b(64, 64, 64, 255).d(); \u2603.b(0.0D, 0.0D, 0.0D).a(0.0D, \u2603).b(64, 64, 64, 255).d(); \u2603.b(); } public boolean d() { return true; } public void a(boolean \u2603, int \u2603) { if (\u2603 == 31102009) { if (\u2603) { a(t); } t = null; j.a(this); } } private void a(URI \u2603) { try { Class<?> \u2603 = Class.forName("java.awt.Desktop"); Object \u2603 = \u2603.getMethod("getDesktop", new Class[0]).invoke(null, new Object[0]); \u2603.getMethod("browse", new Class[] { URI.class }).invoke(\u2603, new Object[] { \u2603 }); } catch (Throwable \u2603) { a.error("Couldn't open link", \u2603); } } public static boolean q() { if (avf.a) { return (Keyboard.isKeyDown(219)) || (Keyboard.isKeyDown(220)); } return (Keyboard.isKeyDown(29)) || (Keyboard.isKeyDown(157)); } public static boolean r() { return (Keyboard.isKeyDown(42)) || (Keyboard.isKeyDown(54)); } public static boolean s() { return (Keyboard.isKeyDown(56)) || (Keyboard.isKeyDown(184)); } public static boolean d(int \u2603) { return (\u2603 == 45) && (q()); } public static boolean e(int \u2603) { return (\u2603 == 47) && (q()); } public static boolean f(int \u2603) { return (\u2603 == 46) && (q()); } public static boolean g(int \u2603) { return (\u2603 == 30) && (q()); } public void b(avf \u2603, int \u2603, int \u2603) { a(\u2603, \u2603, \u2603); } public void l() { int k = Keyboard.getEventKey(); char c = Keyboard.getEventCharacter(); if ((Keyboard.getEventKeyState()) || ((k == 0) && (Character.isDefined(c)))) { a(c, k); } j.Z(); } protected void a(String \u2603, boolean \u2603) {} protected void a(int \u2603, int \u2603, int \u2603, long \u2603) {} protected void a(avt \u2603) {} public void b() {} public void e() {} public void m() {} }
- duplicates
-
MC-2781 Chinese, Japanese and Korean (and probably other IME entered languages) characters not working (fixed for Windows)
- Resolved