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() {}
}
1.8.3 language input fix