Skip to content
This repository was archived by the owner on Jan 3, 2020. It is now read-only.

Commit de44bbd

Browse files
committed
updated to 1.8
1 parent c0fe781 commit de44bbd

16 files changed

+316
-243
lines changed

README.MD renamed to README.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22
Using ASM Transformer to hook into Minecraft, hoping to provide a universal solution to Minecraft IME issue.
33
Forge Required.
44

5-
## Known Issues
6-
- Key Event not work properly
7-
- Focus not change on OSX
8-
- Not work with Java 8
9-
- harm to performance
10-
115
## License
126
- GPLv2
137
- USE AT YOUR OWN RISK

build.gradle

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,56 @@ buildscript {
1717

1818
apply plugin: 'forge'
1919

20-
version = "0.3-dev"
20+
version = "0.4-beta"
2121
group= "org.devinprogress.YAIF" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
22-
archivesBaseName = "YetAnotherInputFix"
22+
archivesBaseName = "YetAnotherInputFix-1.8"
2323

2424
minecraft {
25-
version = "1.7.10-10.13.2.1230"
26-
mappings = 'stable_12'
25+
version = "1.8-11.14.1.1328"
2726
runDir = "eclipse"
27+
mappings = 'snapshot_20150221'
2828
}
2929

30-
3130
jar
3231
{
3332
manifest {
34-
attributes 'FMLCorePlugin': 'org.devinprogress.YAIF.Transformer.Loader'
33+
attributes 'FMLCorePlugin': 'org.devinprogress.YAIF.fmlplugin.Loader'
3534
attributes 'FMLCorePluginContainsFMLMod': true
35+
attributes 'FMLAT': 'inputfix_at.cfg'
3636
}
3737
}
3838

39+
dependencies {
40+
// you may put jars on which you depend on in ./libs
41+
// or you may define them like so..
42+
//compile "some.group:artifact:version:classifier"
43+
//compile "some.group:artifact:version"
44+
45+
// real examples
46+
//compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env
47+
//compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env
48+
49+
// for more info...
50+
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
51+
// http://www.gradle.org/docs/current/userguide/dependency_management.html
52+
53+
}
54+
3955
processResources
4056
{
57+
// this will ensure that this task is redone when the versions change.
4158
inputs.property "version", project.version
4259
inputs.property "mcversion", project.minecraft.version
60+
61+
// replace stuff in mcmod.info, nothing else
4362
from(sourceSets.main.resources.srcDirs) {
4463
include 'mcmod.info'
64+
65+
// replace version and mcversion
4566
expand 'version':project.version, 'mcversion':project.minecraft.version
4667
}
68+
69+
// copy everything else, thats not the mcmod.info
4770
from(sourceSets.main.resources.srcDirs) {
4871
exclude 'mcmod.info'
4972
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.devinprogress.YAIF.Bridges;
2+
3+
/**
4+
* Created by recursiveg on 14-12-17.
5+
*/
6+
public class DoNothingBridge extends BaseActionBridge {
7+
@Override
8+
public boolean needShow(){
9+
return false;
10+
}
11+
}

src/main/java/org/devinprogress/YAIF/Bridges/EditSignBridge.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import net.minecraft.client.gui.inventory.GuiEditSign;
44
import net.minecraft.tileentity.TileEntitySign;
5+
import net.minecraft.util.ChatComponentText;
56
import org.devinprogress.YAIF.InputFieldWrapper;
67

78
import javax.swing.*;
@@ -39,7 +40,7 @@ public void actionPerformed(ActionEvent e) {
3940
currentLine=currentLine+1&3;
4041
gui.editLine=currentLine;
4142
textChangedByBridge=true;
42-
wrapper.setText(sign.signText[currentLine]);
43+
wrappersetText(sign.signText[currentLine].getFormattedText());
4344
}
4445
});
4546

@@ -57,7 +58,7 @@ public void actionPerformed(ActionEvent e) {
5758
currentLine=currentLine-1&3;
5859
gui.editLine=currentLine;
5960
textChangedByBridge=true;
60-
wrapper.setText(sign.signText[currentLine]);
61+
wrappersetText(sign.signText[currentLine].getFormattedText());
6162
}
6263
});
6364

@@ -67,28 +68,33 @@ public void actionPerformed(ActionEvent e) {
6768
currentLine=currentLine+1&3;
6869
gui.editLine=currentLine;
6970
textChangedByBridge=true;
70-
wrapper.setText(sign.signText[currentLine]);
71+
wrappersetText(sign.signText[currentLine].getFormattedText());
7172
}
7273
});
7374

7475
setListenDocumentEvent(tf);
7576
}
76-
77+
private static final int signLineLimit=24;
7778
@Override
7879
protected void textUpdated(){
7980
//YetAnotherInputFix.log("EditSignBridge textUpdate Invoked");
8081
final String str=wrapper.getText();
81-
if(str.length()>15){
82+
if(str.length()>signLineLimit){
8283
SwingUtilities.invokeLater(new Runnable() {
8384
@Override
8485
public void run() {
8586
textChangedByBridge=true;
86-
wrapper.setText(str.substring(0,15));
87+
wrapper.setText(str.substring(0,signLineLimit));
8788
}
8889
});
89-
sign.signText[currentLine]=str.substring(0,15);
90+
sign.signText[currentLine]=new ChatComponentText(str.substring(0,signLineLimit));
9091
}else {
91-
sign.signText[currentLine]=str;
92+
sign.signText[currentLine]=new ChatComponentText(str);
9293
}
9394
}
95+
96+
private void wrappersetText(String str){
97+
if (str.endsWith("§r")) str=str.substring(0,str.length()-2);
98+
wrapper.setText(str);
99+
}
94100
}

src/main/java/org/devinprogress/YAIF/Bridges/GuiChatBridge.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ public void bindKeys(JTextField tf){
3636
@Override
3737
public void actionPerformed(ActionEvent e) {
3838
txt.setText(wrapper.getText());
39-
screen.keyTyped('\n', 28);
39+
try {
40+
screen.keyTyped('\n', 28);
41+
}catch(Exception ex){ex.printStackTrace();}
4042
wrapper.bridgeQuit();
4143
}
4244
});
@@ -55,7 +57,9 @@ public void actionPerformed(ActionEvent e) {
5557
dispatch(new Runnable() {
5658
@Override
5759
public void run() {
58-
screen.keyTyped(' ', 200);
60+
try {
61+
screen.keyTyped(' ', 200);
62+
}catch(Exception ex){ex.printStackTrace();}
5963
SwingUtilities.invokeLater(new Runnable() {
6064
@Override
6165
public void run() {
@@ -74,7 +78,9 @@ public void actionPerformed(ActionEvent e) {
7478
dispatch(new Runnable() {
7579
@Override
7680
public void run() {
81+
try{
7782
screen.keyTyped(' ', 208);
83+
}catch(Exception ex){ex.printStackTrace();}
7884
SwingUtilities.invokeLater(new Runnable() {
7985
@Override
8086
public void run() {
@@ -95,7 +101,9 @@ public void actionPerformed(ActionEvent e) {
95101
@Override
96102
public void run() {
97103
txt.setCursorPosition(cursorPos);
104+
try{
98105
screen.keyTyped('\t',15);
106+
}catch(Exception ex){ex.printStackTrace();}
99107
final String str=txt.getText();
100108
final int pos=txt.getCursorPosition();
101109
SwingUtilities.invokeLater(new Runnable() {

src/main/java/org/devinprogress/YAIF/GuiStateManager.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,8 @@ private BaseActionBridge getNewBridge() {
7979
return new GuiChatBridge(currentTextField,(GuiChat)currentScreen,wrapper);
8080
else if(currentScreen instanceof GuiEditSign)
8181
return new EditSignBridge((GuiEditSign)currentScreen,wrapper);
82-
else if(currentScreen instanceof GuiContainerCreative)
83-
return new CreativeInventoryBridge((GuiContainerCreative)currentScreen,currentTextField,wrapper);
84-
else if(currentScreen instanceof GuiScreenBook)
85-
return new GuiBookBridge((GuiScreenBook)currentScreen,wrapper);
86-
else if(hasGuiTextField(currentScreen))
87-
return new CommonBridgeTextField(currentScreen,currentTextField,wrapper);
88-
else//How could this be possible?!
89-
return new CommonBridgeNoField(currentScreen,wrapper);
82+
else
83+
return new DoNothingBridge();
9084
}
9185

9286
public void onTabCompletePacket(GuiScreen screen) {

src/main/java/org/devinprogress/YAIF/InputFieldWrapper.java

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
package org.devinprogress.YAIF;
22

3-
import cpw.mods.fml.client.FMLClientHandler;
3+
import net.minecraft.client.Minecraft;
44
import net.minecraft.util.Util;
5+
import net.minecraftforge.fml.client.FMLClientHandler;
6+
import net.minecraftforge.fml.common.FMLCommonHandler;
7+
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
8+
import net.minecraftforge.fml.common.gameevent.TickEvent;
9+
import org.apache.logging.log4j.LogManager;
510
import org.devinprogress.YAIF.Bridges.BaseActionBridge;
11+
import org.lwjgl.input.Keyboard;
612
import org.lwjgl.opengl.AWTGLCanvas;
713
import org.lwjgl.opengl.Display;
814

@@ -12,6 +18,9 @@
1218
import java.awt.event.ComponentEvent;
1319
import java.awt.event.WindowAdapter;
1420
import java.awt.event.WindowEvent;
21+
import java.lang.reflect.Field;
22+
import java.lang.reflect.Method;
23+
import java.nio.ByteBuffer;
1524

1625
// Author: Recursive G
1726
// Source released under GPLv2
@@ -29,19 +38,20 @@ public class InputFieldWrapper {
2938
private JTextField textField = null;
3039
private JPanel panel=null;
3140

41+
public static InputFieldWrapper instance;
3242

3343
public InputFieldWrapper(int Width,int Height){ //Should be Called only once
3444
if(hasInitiated)
3545
throw new RuntimeException("Double Initiation for InputFieldWrapper.");
3646
hasInitiated=true;
37-
47+
instance=this;
3848
// Create Instances
3949
try {
4050
canvas = new AWTGLCanvas();
4151
}catch(Exception e){
4252
e.printStackTrace();
4353
}
44-
frame=new JFrame("Minecraft 1.7.10");
54+
frame=new JFrame("Minecraft 1.8");
4555
textField=new JTextField();
4656
panel=new JPanel();
4757

@@ -57,6 +67,7 @@ public InputFieldWrapper(int Width,int Height){ //Should be Called only once
5767
// Setup TextField
5868
textField.setVisible(false);
5969
textField.setFont(new Font("Times New Roman",Font.PLAIN, fontSize));
70+
//textField.enableInputMethods(false);
6071

6172
// Setup Panel
6273
panel.setLayout(new BorderLayout());
@@ -100,12 +111,17 @@ public void windowClosing(WindowEvent e) {
100111

101112
public void setupBridge(BaseActionBridge bridge){
102113
if(!bridge.needShow())return;
103-
if(this.bridge!=null)
104-
throw new RuntimeException("Loading new bridge without releasing previous one");
114+
if(this.bridge!=null) {
115+
LogManager.getLogger("YAIF").warn("Loading new bridge without releasing previous one");
116+
releaseCurrentBridge();
117+
}
105118
this.bridge=bridge;
106119
textField.setText("");
107120
bridge.bindKeys(textField);
108-
_show();
121+
122+
FMLCommonHandler.instance().bus().register(new switchListener());
123+
124+
//_show();
109125
}
110126

111127
public void releaseCurrentBridge(){
@@ -132,15 +148,16 @@ public void bridgeQuit(){
132148
GuiStateManager.getInstance().inputFieldClosed();
133149
}
134150

135-
private void _show(){
151+
public void _show(){
136152
if(!shown) {
137153
shown = true;
138154
canvas.setPreferredSize(canvas.getSize());
139155
textField.setVisible(true);
140-
frame.pack();
141-
frame.validate();
142156
FMLClientHandler.instance().getClient().setIngameNotInFocus();
143157
textField.requestFocus();
158+
textField.getInputMethodRequests();
159+
frame.pack();
160+
frame.validate();
144161
}else {
145162
FMLClientHandler.instance().getClient().setIngameNotInFocus();
146163
textField.requestFocus();

src/main/java/org/devinprogress/YAIF/Transformer/ASMHelper.java

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)