Commit 2a878253b8f7bbae107cef2bcf5f10642b93bf4d
1 parent
48da29aa
initial commit for 1.8
+ All GL moved to GLStateManager + GL Convenience class added + Added EnumerationObserver + CallbackInjectionTransformer is deprecated + PacketTransformer is removed + Added JSON Event Transformer definitions + Event Transformers now support capturing local vars
Showing
63 changed files
with
2313 additions
and
753 deletions
Too many changes to show.
To preserve performance only 63 of 86 files are displayed.
.classpath
@@ -7,17 +7,18 @@ | @@ -7,17 +7,18 @@ | ||
7 | <classpathentry combineaccessrules="false" exported="true" kind="src" path="/Client"/> | 7 | <classpathentry combineaccessrules="false" exported="true" kind="src" path="/Client"/> |
8 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> | 8 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> |
9 | <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar"/> | 9 | <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar"/> |
10 | - <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/com/google/guava/guava/15.0/guava-15.0.jar"/> | 10 | + <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/com/google/guava/guava/17.0/guava-17.0.jar"/> |
11 | <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/commons-io/commons-io/2.4/commons-io-2.4.jar"/> | 11 | <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/commons-io/commons-io/2.4/commons-io-2.4.jar"/> |
12 | <classpathentry exported="true" kind="lib" path="lib/launchwrapper-1.11.jar" sourcepath="externals/launchwrapper/src"/> | 12 | <classpathentry exported="true" kind="lib" path="lib/launchwrapper-1.11.jar" sourcepath="externals/launchwrapper/src"/> |
13 | - <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar"/> | ||
14 | - <classpathentry kind="lib" path="/Client/jars/libraries/net/sf/jopt-simple/jopt-simple/4.5/jopt-simple-4.5.jar"/> | ||
15 | - <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/io/netty/netty-all/4.0.10.Final/netty-all-4.0.10.Final.jar"/> | 13 | + <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar"/> |
14 | + <classpathentry kind="lib" path="/Client/jars/libraries/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar"/> | ||
15 | + <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/io/netty/netty-all/4.0.15.Final/netty-all-4.0.15.Final.jar"/> | ||
16 | <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar"/> | 16 | <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar"/> |
17 | <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar"/> | 17 | <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar"/> |
18 | <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar"/> | 18 | <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar"/> |
19 | - <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/com/mojang/authlib/1.5.16/authlib-1.5.16.jar"/> | 19 | + <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/com/mojang/authlib/1.5.17/authlib-1.5.17.jar"/> |
20 | <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/org/lwjgl/lwjgl/lwjgl/2.9.1/lwjgl-2.9.1.jar"/> | 20 | <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/org/lwjgl/lwjgl/lwjgl/2.9.1/lwjgl-2.9.1.jar"/> |
21 | <classpathentry exported="true" kind="lib" path="lib/asm-debug-all-5.0.3.jar"/> | 21 | <classpathentry exported="true" kind="lib" path="lib/asm-debug-all-5.0.3.jar"/> |
22 | + <classpathentry exported="true" kind="lib" path="/Client/jars/libraries/org/lwjgl/lwjgl/lwjgl_util/2.9.1/lwjgl_util-2.9.1.jar"/> | ||
22 | <classpathentry kind="output" path="bin"/> | 23 | <classpathentry kind="output" path="bin"/> |
23 | </classpath> | 24 | </classpath> |
ant/build_liteloader.xml
@@ -4,8 +4,8 @@ | @@ -4,8 +4,8 @@ | ||
4 | <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="tasks/ant-contrib.jar" /> | 4 | <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="tasks/ant-contrib.jar" /> |
5 | 5 | ||
6 | <!-- Versions !!IMPORTANT --> | 6 | <!-- Versions !!IMPORTANT --> |
7 | - <property name="version" value="1.7.10_04" /> | ||
8 | - <property name="mcversion" value="1.7.10" /> | 7 | + <property name="version" value="1.8.0_00" /> |
8 | + <property name="mcversion" value="1.8.00" /> | ||
9 | <property name="author" value="Mumfrey" /> | 9 | <property name="author" value="Mumfrey" /> |
10 | 10 | ||
11 | <!-- Project definitions and dependencies --> | 11 | <!-- Project definitions and dependencies --> |
debug/obfuscation.properties
1 | field_71424_I=mcProfiler | 1 | field_71424_I=mcProfiler |
2 | field_78729_o=entityRenderMap field_110546_b=reloadListeners | 2 | field_78729_o=entityRenderMap field_110546_b=reloadListeners |
3 | -func_148833_a=processPacket func_71411_J=runGameLoop func_71407_l=runTick func_78480_b=updateCameraAndRender func_78471_a=renderWorld func_73830_a=renderGameOverlay func_76320_a=startSection func_76319_b=endSection func_76318_c=endStartSection | ||
4 | -func_72368_a=respawnPlayer func_72355_a=initializeConnectionToPlayer func_72377_c=playerLoggedIn func_72367_e=playerLoggedOut | 3 | +field_147393_d=networkManager |
4 | +field_82596_a=registryObjects field_148759_a=underlyingIntegerMap #field_148749_a= | ||
5 | +#field_148748_b= field_147559_m=mapSpecialRenderers | ||
6 | +field_145855_i=nameToClassMap | ||
7 | +field_145853_j=classToNameMap func_148833_a=processPacket func_71411_J=runGameLoop func_71407_l=runTick func_78480_b=updateCameraAndRender | ||
8 | +func_78471_a=renderWorld func_175180_a=renderGameOverlay func_76320_a=startSection | ||
9 | +func_76319_b=endSection | ||
10 | +func_76318_c=endStartSection | ||
11 | +func_148545_a=createPlayerForUser | ||
12 | +func_72368_a=recreatePlayerEntity | ||
13 | +func_72355_a=initializeConnectionToPlayer | ||
14 | +func_72377_c=playerLoggedIn | ||
15 | +func_72367_e=playerLoggedOut | ||
5 | func_71384_a=startGame | 16 | func_71384_a=startGame |
6 | func_71197_b=startServer | 17 | func_71197_b=startServer |
7 | func_71256_s=startServerThread | 18 | func_71256_s=startServerThread |
8 | func_71165_d=sendChatMessage | 19 | func_71165_d=sendChatMessage |
9 | -func_148545_a=createPlayerForUser | ||
10 | func_147119_ah=updateFramebufferSize | 20 | func_147119_ah=updateFramebufferSize |
11 | -field_82596_a=registryObjects | ||
12 | -field_148759_a=underlyingIntegerMap | ||
13 | -#field_148749_a= | ||
14 | -#field_148748_b= | ||
15 | -field_147559_m=mapSpecialRenderers | ||
16 | -field_145855_i=nameToClassMap | ||
17 | -field_145853_j=classToNameMap | ||
18 | func_147615_c=framebufferRender | 21 | func_147615_c=framebufferRender |
22 | +func_178038_a=framebufferRenderExt | ||
19 | func_147612_c=bindFramebufferTexture | 23 | func_147612_c=bindFramebufferTexture |
20 | -func_146230_a=drawChat | ||
21 | \ No newline at end of file | 24 | \ No newline at end of file |
25 | +func_146230_a=drawChat | ||
26 | +func_179086_m=clear | ||
27 | +func_175068_a=renderWorldPass | ||
28 | +func_148256_e=getProfile | ||
22 | \ No newline at end of file | 29 | \ No newline at end of file |
java/client/com/mumfrey/liteloader/FrameBufferListener.java
@@ -15,7 +15,7 @@ public interface FrameBufferListener extends LiteMod | @@ -15,7 +15,7 @@ public interface FrameBufferListener extends LiteMod | ||
15 | public abstract void preRenderFBO(Framebuffer fbo); | 15 | public abstract void preRenderFBO(Framebuffer fbo); |
16 | 16 | ||
17 | /** | 17 | /** |
18 | - * Called immediately before the FBO is rendered to the screen, after the appropriate GL modes and matrix transforms | 18 | + * Called immediately before the FBO is rendered to the screen, after the appropriate IGL modes and matrix transforms |
19 | * have been set but before the FBO is actually rendered into the main output buffer. | 19 | * have been set but before the FBO is actually rendered into the main output buffer. |
20 | * | 20 | * |
21 | * @param fbo FBO instance | 21 | * @param fbo FBO instance |
java/client/com/mumfrey/liteloader/client/CallbackProxyClient.java
1 | package com.mumfrey.liteloader.client; | 1 | package com.mumfrey.liteloader.client; |
2 | 2 | ||
3 | +import java.util.UUID; | ||
4 | + | ||
3 | import net.minecraft.client.Minecraft; | 5 | import net.minecraft.client.Minecraft; |
4 | -import net.minecraft.client.entity.EntityClientPlayerMP; | 6 | +import net.minecraft.client.entity.EntityPlayerSP; |
5 | import net.minecraft.client.gui.GuiIngame; | 7 | import net.minecraft.client.gui.GuiIngame; |
6 | import net.minecraft.client.renderer.EntityRenderer; | 8 | import net.minecraft.client.renderer.EntityRenderer; |
7 | import net.minecraft.client.renderer.OpenGlHelper; | 9 | import net.minecraft.client.renderer.OpenGlHelper; |
8 | import net.minecraft.client.shader.Framebuffer; | 10 | import net.minecraft.client.shader.Framebuffer; |
11 | +import net.minecraft.entity.player.EntityPlayer; | ||
9 | import net.minecraft.entity.player.EntityPlayerMP; | 12 | import net.minecraft.entity.player.EntityPlayerMP; |
10 | import net.minecraft.network.NetworkManager; | 13 | import net.minecraft.network.NetworkManager; |
11 | import net.minecraft.server.integrated.IntegratedServer; | 14 | import net.minecraft.server.integrated.IntegratedServer; |
12 | import net.minecraft.server.management.ServerConfigurationManager; | 15 | import net.minecraft.server.management.ServerConfigurationManager; |
16 | +import net.minecraft.util.Session; | ||
13 | import net.minecraft.world.WorldSettings; | 17 | import net.minecraft.world.WorldSettings; |
14 | 18 | ||
15 | import com.mojang.authlib.GameProfile; | 19 | import com.mojang.authlib.GameProfile; |
@@ -30,7 +34,7 @@ public class CallbackProxyClient | @@ -30,7 +34,7 @@ public class CallbackProxyClient | ||
30 | */ | 34 | */ |
31 | private static boolean clock = false; | 35 | private static boolean clock = false; |
32 | 36 | ||
33 | - private static ClientEvents events; | 37 | + private static EventsClient events; |
34 | 38 | ||
35 | private static boolean fboEnabled; | 39 | private static boolean fboEnabled; |
36 | 40 | ||
@@ -38,7 +42,7 @@ public class CallbackProxyClient | @@ -38,7 +42,7 @@ public class CallbackProxyClient | ||
38 | 42 | ||
39 | public static void onStartupComplete(EventInfo<Minecraft> e) | 43 | public static void onStartupComplete(EventInfo<Minecraft> e) |
40 | { | 44 | { |
41 | - CallbackProxyClient.events = ClientEvents.getInstance(); | 45 | + CallbackProxyClient.events = EventsClient.getInstance(); |
42 | 46 | ||
43 | if (CallbackProxyClient.events == null) | 47 | if (CallbackProxyClient.events == null) |
44 | { | 48 | { |
@@ -74,12 +78,12 @@ public class CallbackProxyClient | @@ -74,12 +78,12 @@ public class CallbackProxyClient | ||
74 | CallbackProxyClient.events.preRenderGUI(partialTicks); | 78 | CallbackProxyClient.events.preRenderGUI(partialTicks); |
75 | } | 79 | } |
76 | 80 | ||
77 | - public static void onSetupCameraTransform(EventInfo<EntityRenderer> e, float partialTicks, long timeSlice) | 81 | + public static void onSetupCameraTransform(EventInfo<EntityRenderer> e, int pass, float partialTicks, long timeSlice) |
78 | { | 82 | { |
79 | CallbackProxyClient.events.onSetupCameraTransform(partialTicks, timeSlice); | 83 | CallbackProxyClient.events.onSetupCameraTransform(partialTicks, timeSlice); |
80 | } | 84 | } |
81 | 85 | ||
82 | - public static void postRenderEntities(EventInfo<EntityRenderer> e, float partialTicks, long timeSlice) | 86 | + public static void postRenderEntities(EventInfo<EntityRenderer> e, int pass, float partialTicks, long timeSlice) |
83 | { | 87 | { |
84 | CallbackProxyClient.events.postRenderEntities(partialTicks, timeSlice); | 88 | CallbackProxyClient.events.postRenderEntities(partialTicks, timeSlice); |
85 | } | 89 | } |
@@ -94,14 +98,14 @@ public class CallbackProxyClient | @@ -94,14 +98,14 @@ public class CallbackProxyClient | ||
94 | CallbackProxyClient.events.onRenderHUD(partialTicks); | 98 | CallbackProxyClient.events.onRenderHUD(partialTicks); |
95 | } | 99 | } |
96 | 100 | ||
97 | - public static void onRenderChat(EventInfo<GuiIngame> e, float partialTicks, boolean guiActive, int mouseX, int mouseY) | 101 | + public static void onRenderChat(EventInfo<GuiIngame> e, float partialTicks) |
98 | { | 102 | { |
99 | - CallbackProxyClient.events.onRenderChat(e.getSource().getChatGUI(), partialTicks, guiActive, mouseX, mouseY); | 103 | + CallbackProxyClient.events.onRenderChat(e.getSource().getChatGUI(), partialTicks); |
100 | } | 104 | } |
101 | 105 | ||
102 | - public static void postRenderChat(EventInfo<GuiIngame> e, float partialTicks, boolean guiActive, int mouseX, int mouseY) | 106 | + public static void postRenderChat(EventInfo<GuiIngame> e, float partialTicks) |
103 | { | 107 | { |
104 | - CallbackProxyClient.events.postRenderChat(e.getSource().getChatGUI(), partialTicks, guiActive, mouseX, mouseY); | 108 | + CallbackProxyClient.events.postRenderChat(e.getSource().getChatGUI(), partialTicks); |
105 | } | 109 | } |
106 | 110 | ||
107 | public static void postRenderHUD(EventInfo<EntityRenderer> e, float partialTicks) | 111 | public static void postRenderHUD(EventInfo<EntityRenderer> e, float partialTicks) |
@@ -139,7 +143,7 @@ public class CallbackProxyClient | @@ -139,7 +143,7 @@ public class CallbackProxyClient | ||
139 | CallbackProxyClient.events.onRespawnPlayer(e.getSource(), e.getReturnValue(), oldPlayer, dimension, won); | 143 | CallbackProxyClient.events.onRespawnPlayer(e.getSource(), e.getReturnValue(), oldPlayer, dimension, won); |
140 | } | 144 | } |
141 | 145 | ||
142 | - public static void onOutboundChat(EventInfo<EntityClientPlayerMP> e, String message) | 146 | + public static void onOutboundChat(EventInfo<EntityPlayerSP> e, String message) |
143 | { | 147 | { |
144 | CallbackProxyClient.events.onSendChatMessage(e, message); | 148 | CallbackProxyClient.events.onSendChatMessage(e, message); |
145 | } | 149 | } |
@@ -173,7 +177,7 @@ public class CallbackProxyClient | @@ -173,7 +177,7 @@ public class CallbackProxyClient | ||
173 | } | 177 | } |
174 | } | 178 | } |
175 | 179 | ||
176 | - public static void renderFBO(EventInfo<Framebuffer> e, int width, int height) | 180 | + public static void renderFBO(EventInfo<Framebuffer> e, int width, int height, boolean flag) |
177 | { | 181 | { |
178 | if (CallbackProxyClient.events == null) return; | 182 | if (CallbackProxyClient.events == null) return; |
179 | if (CallbackProxyClient.renderingFBO) | 183 | if (CallbackProxyClient.renderingFBO) |
@@ -188,4 +192,15 @@ public class CallbackProxyClient | @@ -188,4 +192,15 @@ public class CallbackProxyClient | ||
188 | { | 192 | { |
189 | CallbackProxyClient.events.onRenderWorld(partialTicks, timeSlice); | 193 | CallbackProxyClient.events.onRenderWorld(partialTicks, timeSlice); |
190 | } | 194 | } |
195 | + | ||
196 | + /** | ||
197 | + * Compatiblbe behaviour with FML, this method is called to generate a consistent offline UUID between client and server | ||
198 | + * for a given username. | ||
199 | + */ | ||
200 | + public static void generateOfflineUUID(ReturnEventInfo<Session, GameProfile> e) | ||
201 | + { | ||
202 | + Session session = e.getSource(); | ||
203 | + UUID uuid = EntityPlayer.getUUID(new GameProfile((UUID)null, session.getUsername())); | ||
204 | + e.setReturnValue(new GameProfile(uuid, session.getUsername())); | ||
205 | + } | ||
191 | } | 206 | } |
java/client/com/mumfrey/liteloader/client/ClientPluginChannelsClient.java
@@ -4,6 +4,7 @@ import net.minecraft.client.Minecraft; | @@ -4,6 +4,7 @@ import net.minecraft.client.Minecraft; | ||
4 | import net.minecraft.client.network.NetHandlerLoginClient; | 4 | import net.minecraft.client.network.NetHandlerLoginClient; |
5 | import net.minecraft.network.INetHandler; | 5 | import net.minecraft.network.INetHandler; |
6 | import net.minecraft.network.NetworkManager; | 6 | import net.minecraft.network.NetworkManager; |
7 | +import net.minecraft.network.PacketBuffer; | ||
7 | import net.minecraft.network.login.INetHandlerLoginClient; | 8 | import net.minecraft.network.login.INetHandlerLoginClient; |
8 | import net.minecraft.network.login.server.S02PacketLoginSuccess; | 9 | import net.minecraft.network.login.server.S02PacketLoginSuccess; |
9 | import net.minecraft.network.play.INetHandlerPlayClient; | 10 | import net.minecraft.network.play.INetHandlerPlayClient; |
@@ -48,10 +49,10 @@ public class ClientPluginChannelsClient extends ClientPluginChannels | @@ -48,10 +49,10 @@ public class ClientPluginChannelsClient extends ClientPluginChannels | ||
48 | @Override | 49 | @Override |
49 | public void onPluginChannelMessage(S3FPacketCustomPayload customPayload) | 50 | public void onPluginChannelMessage(S3FPacketCustomPayload customPayload) |
50 | { | 51 | { |
51 | - if (customPayload != null && customPayload.func_149169_c() != null) // getChannel | 52 | + if (customPayload != null && customPayload.getChannelName() != null) |
52 | { | 53 | { |
53 | - String channel = customPayload.func_149169_c(); // getChannel | ||
54 | - byte[] data = customPayload.func_149168_d(); // getData | 54 | + String channel = customPayload.getChannelName(); |
55 | + PacketBuffer data = customPayload.getBufferData(); | ||
55 | 56 | ||
56 | this.onPluginChannelMessage(channel, data); | 57 | this.onPluginChannelMessage(channel, data); |
57 | } | 58 | } |
@@ -62,12 +63,12 @@ public class ClientPluginChannelsClient extends ClientPluginChannels | @@ -62,12 +63,12 @@ public class ClientPluginChannelsClient extends ClientPluginChannels | ||
62 | * @param registrationData | 63 | * @param registrationData |
63 | */ | 64 | */ |
64 | @Override | 65 | @Override |
65 | - protected void sendRegistrationData(INetHandler netHandler, byte[] registrationData) | 66 | + protected void sendRegistrationData(INetHandler netHandler, PacketBuffer registrationData) |
66 | { | 67 | { |
67 | if (netHandler instanceof INetHandlerLoginClient) | 68 | if (netHandler instanceof INetHandlerLoginClient) |
68 | { | 69 | { |
69 | NetworkManager networkManager = PrivateFields.netManager.get(((NetHandlerLoginClient)netHandler)); | 70 | NetworkManager networkManager = PrivateFields.netManager.get(((NetHandlerLoginClient)netHandler)); |
70 | - networkManager.scheduleOutboundPacket(new C17PacketCustomPayload(CHANNEL_REGISTER, registrationData)); | 71 | + networkManager.sendPacket(new C17PacketCustomPayload(CHANNEL_REGISTER, registrationData)); |
71 | } | 72 | } |
72 | else if (netHandler instanceof INetHandlerPlayClient) | 73 | else if (netHandler instanceof INetHandlerPlayClient) |
73 | { | 74 | { |
@@ -82,7 +83,7 @@ public class ClientPluginChannelsClient extends ClientPluginChannels | @@ -82,7 +83,7 @@ public class ClientPluginChannelsClient extends ClientPluginChannels | ||
82 | * @param data | 83 | * @param data |
83 | */ | 84 | */ |
84 | @Override | 85 | @Override |
85 | - protected boolean send(String channel, byte[] data, ChannelPolicy policy) | 86 | + protected boolean send(String channel, PacketBuffer data, ChannelPolicy policy) |
86 | { | 87 | { |
87 | if (channel == null || channel.length() > 16 || CHANNEL_REGISTER.equals(channel) || CHANNEL_UNREGISTER.equals(channel)) | 88 | if (channel == null || channel.length() > 16 || CHANNEL_REGISTER.equals(channel) || CHANNEL_UNREGISTER.equals(channel)) |
88 | throw new RuntimeException("Invalid channel name specified"); | 89 | throw new RuntimeException("Invalid channel name specified"); |
java/client/com/mumfrey/liteloader/client/ClientEvents.java renamed to java/client/com/mumfrey/liteloader/client/EventsClient.java
1 | package com.mumfrey.liteloader.client; | 1 | package com.mumfrey.liteloader.client; |
2 | 2 | ||
3 | import net.minecraft.client.Minecraft; | 3 | import net.minecraft.client.Minecraft; |
4 | -import net.minecraft.client.entity.EntityClientPlayerMP; | 4 | +import net.minecraft.client.entity.EntityPlayerSP; |
5 | import net.minecraft.client.gui.GuiNewChat; | 5 | import net.minecraft.client.gui.GuiNewChat; |
6 | import net.minecraft.client.gui.ScaledResolution; | 6 | import net.minecraft.client.gui.ScaledResolution; |
7 | import net.minecraft.client.shader.Framebuffer; | 7 | import net.minecraft.client.shader.Framebuffer; |
8 | +import net.minecraft.entity.Entity; | ||
8 | import net.minecraft.network.play.client.C01PacketChatMessage; | 9 | import net.minecraft.network.play.client.C01PacketChatMessage; |
9 | import net.minecraft.server.integrated.IntegratedServer; | 10 | import net.minecraft.server.integrated.IntegratedServer; |
10 | import net.minecraft.util.Timer; | 11 | import net.minecraft.util.Timer; |
11 | 12 | ||
12 | import org.lwjgl.input.Mouse; | 13 | import org.lwjgl.input.Mouse; |
13 | 14 | ||
14 | -import com.mumfrey.liteloader.*; | 15 | +import com.mumfrey.liteloader.ChatRenderListener; |
16 | +import com.mumfrey.liteloader.FrameBufferListener; | ||
17 | +import com.mumfrey.liteloader.GameLoopListener; | ||
18 | +import com.mumfrey.liteloader.HUDRenderListener; | ||
19 | +import com.mumfrey.liteloader.InitCompleteListener; | ||
20 | +import com.mumfrey.liteloader.OutboundChatFilter; | ||
21 | +import com.mumfrey.liteloader.OutboundChatListener; | ||
22 | +import com.mumfrey.liteloader.PostRenderListener; | ||
23 | +import com.mumfrey.liteloader.RenderListener; | ||
24 | +import com.mumfrey.liteloader.Tickable; | ||
25 | +import com.mumfrey.liteloader.ViewportListener; | ||
15 | import com.mumfrey.liteloader.client.overlays.IMinecraft; | 26 | import com.mumfrey.liteloader.client.overlays.IMinecraft; |
16 | import com.mumfrey.liteloader.common.LoadingProgress; | 27 | import com.mumfrey.liteloader.common.LoadingProgress; |
17 | import com.mumfrey.liteloader.core.Events; | 28 | import com.mumfrey.liteloader.core.Events; |
@@ -24,9 +35,9 @@ import com.mumfrey.liteloader.launch.LoaderProperties; | @@ -24,9 +35,9 @@ import com.mumfrey.liteloader.launch.LoaderProperties; | ||
24 | import com.mumfrey.liteloader.transformers.event.EventInfo; | 35 | import com.mumfrey.liteloader.transformers.event.EventInfo; |
25 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | 36 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
26 | 37 | ||
27 | -public class ClientEvents extends Events<Minecraft, IntegratedServer> | 38 | +public class EventsClient extends Events<Minecraft, IntegratedServer> |
28 | { | 39 | { |
29 | - private static ClientEvents instance; | 40 | + private static EventsClient instance; |
30 | 41 | ||
31 | /** | 42 | /** |
32 | * Reference to the game | 43 | * Reference to the game |
@@ -82,18 +93,18 @@ public class ClientEvents extends Events<Minecraft, IntegratedServer> | @@ -82,18 +93,18 @@ public class ClientEvents extends Events<Minecraft, IntegratedServer> | ||
82 | private FastIterableDeque<OutboundChatFilter> outboundChatFilters = new HandlerList<OutboundChatFilter>(OutboundChatFilter.class, ReturnLogicOp.AND); | 93 | private FastIterableDeque<OutboundChatFilter> outboundChatFilters = new HandlerList<OutboundChatFilter>(OutboundChatFilter.class, ReturnLogicOp.AND); |
83 | 94 | ||
84 | @SuppressWarnings("cast") | 95 | @SuppressWarnings("cast") |
85 | - public ClientEvents(LiteLoader loader, GameEngineClient engine, LoaderProperties properties) | 96 | + public EventsClient(LiteLoader loader, GameEngineClient engine, LoaderProperties properties) |
86 | { | 97 | { |
87 | super(loader, engine, properties); | 98 | super(loader, engine, properties); |
88 | 99 | ||
89 | - ClientEvents.instance = this; | 100 | + EventsClient.instance = this; |
90 | 101 | ||
91 | this.engineClient = (GameEngineClient)engine; | 102 | this.engineClient = (GameEngineClient)engine; |
92 | } | 103 | } |
93 | 104 | ||
94 | - static ClientEvents getInstance() | 105 | + static EventsClient getInstance() |
95 | { | 106 | { |
96 | - return ClientEvents.instance; | 107 | + return EventsClient.instance; |
97 | } | 108 | } |
98 | 109 | ||
99 | /* (non-Javadoc) | 110 | /* (non-Javadoc) |
@@ -330,20 +341,20 @@ public class ClientEvents extends Events<Minecraft, IntegratedServer> | @@ -330,20 +341,20 @@ public class ClientEvents extends Events<Minecraft, IntegratedServer> | ||
330 | * Called immediately before the chat log is rendered | 341 | * Called immediately before the chat log is rendered |
331 | * | 342 | * |
332 | * @param chatGui | 343 | * @param chatGui |
333 | - * @param mouseY | ||
334 | - * @param mouseX | ||
335 | - * @param guiActive | ||
336 | * @param partialTicks | 344 | * @param partialTicks |
337 | */ | 345 | */ |
338 | - void onRenderChat(GuiNewChat chatGui, float partialTicks, boolean guiActive, int mouseX, int mouseY) | 346 | + void onRenderChat(GuiNewChat chatGui, float partialTicks) |
339 | { | 347 | { |
340 | this.chatRenderListeners.all().onPreRenderChat(this.screenWidth, this.screenHeight, chatGui); | 348 | this.chatRenderListeners.all().onPreRenderChat(this.screenWidth, this.screenHeight, chatGui); |
341 | } | 349 | } |
342 | 350 | ||
343 | /** | 351 | /** |
344 | * Called immediately after the chat log is rendered | 352 | * Called immediately after the chat log is rendered |
353 | + * | ||
354 | + * @param chatGui | ||
355 | + * @param partialTicks | ||
345 | */ | 356 | */ |
346 | - void postRenderChat(GuiNewChat chatGui, float partialTicks, boolean guiActive, int mouseX, int mouseY) | 357 | + void postRenderChat(GuiNewChat chatGui, float partialTicks) |
347 | { | 358 | { |
348 | GuiNewChat chat = this.engineClient.getChatGUI(); | 359 | GuiNewChat chat = this.engineClient.getChatGUI(); |
349 | this.chatRenderListeners.all().onPostRenderChat(this.screenWidth, this.screenHeight, chat); | 360 | this.chatRenderListeners.all().onPostRenderChat(this.screenWidth, this.screenHeight, chat); |
@@ -401,7 +412,8 @@ public class ClientEvents extends Events<Minecraft, IntegratedServer> | @@ -401,7 +412,8 @@ public class ClientEvents extends Events<Minecraft, IntegratedServer> | ||
401 | Minecraft minecraft = this.engine.getClient(); | 412 | Minecraft minecraft = this.engine.getClient(); |
402 | 413 | ||
403 | // Flag indicates whether we are in game at the moment | 414 | // Flag indicates whether we are in game at the moment |
404 | - boolean inGame = minecraft.renderViewEntity != null && minecraft.renderViewEntity.worldObj != null; | 415 | + Entity renderViewEntity = minecraft.getRenderViewEntity(); // TODO OBF MCPTEST func_175606_aa - getRenderViewEntity |
416 | + boolean inGame = renderViewEntity != null && renderViewEntity.worldObj != null; | ||
405 | 417 | ||
406 | this.profiler.startSection("loader"); | 418 | this.profiler.startSection("loader"); |
407 | super.onTick(clock, partialTicks, inGame); | 419 | super.onTick(clock, partialTicks, inGame); |
@@ -445,7 +457,7 @@ public class ClientEvents extends Events<Minecraft, IntegratedServer> | @@ -445,7 +457,7 @@ public class ClientEvents extends Events<Minecraft, IntegratedServer> | ||
445 | /** | 457 | /** |
446 | * @param message | 458 | * @param message |
447 | */ | 459 | */ |
448 | - void onSendChatMessage(EventInfo<EntityClientPlayerMP> e, String message) | 460 | + void onSendChatMessage(EventInfo<EntityPlayerSP> e, String message) |
449 | { | 461 | { |
450 | if (!this.outboundChatFilters.all().onSendChatMessage(message)) | 462 | if (!this.outboundChatFilters.all().onSendChatMessage(message)) |
451 | { | 463 | { |
java/client/com/mumfrey/liteloader/client/api/LiteLoaderBrandingProvider.java
@@ -3,10 +3,10 @@ package com.mumfrey.liteloader.client.api; | @@ -3,10 +3,10 @@ package com.mumfrey.liteloader.client.api; | ||
3 | import java.net.URI; | 3 | import java.net.URI; |
4 | 4 | ||
5 | import net.minecraft.client.resources.I18n; | 5 | import net.minecraft.client.resources.I18n; |
6 | -import net.minecraft.util.IIcon; | ||
7 | import net.minecraft.util.ResourceLocation; | 6 | import net.minecraft.util.ResourceLocation; |
8 | 7 | ||
9 | import com.mumfrey.liteloader.api.BrandingProvider; | 8 | import com.mumfrey.liteloader.api.BrandingProvider; |
9 | +import com.mumfrey.liteloader.client.util.render.Icon; | ||
10 | import com.mumfrey.liteloader.client.util.render.IconAbsolute; | 10 | import com.mumfrey.liteloader.client.util.render.IconAbsolute; |
11 | import com.mumfrey.liteloader.core.LiteLoader; | 11 | import com.mumfrey.liteloader.core.LiteLoader; |
12 | 12 | ||
@@ -84,7 +84,7 @@ public class LiteLoaderBrandingProvider implements BrandingProvider | @@ -84,7 +84,7 @@ public class LiteLoaderBrandingProvider implements BrandingProvider | ||
84 | * @see com.mumfrey.liteloader.api.BrandingProvider#getLogoCoords() | 84 | * @see com.mumfrey.liteloader.api.BrandingProvider#getLogoCoords() |
85 | */ | 85 | */ |
86 | @Override | 86 | @Override |
87 | - public IIcon getLogoCoords() | 87 | + public Icon getLogoCoords() |
88 | { | 88 | { |
89 | return LiteLoaderBrandingProvider.LOGO_COORDS; | 89 | return LiteLoaderBrandingProvider.LOGO_COORDS; |
90 | } | 90 | } |
@@ -102,7 +102,7 @@ public class LiteLoaderBrandingProvider implements BrandingProvider | @@ -102,7 +102,7 @@ public class LiteLoaderBrandingProvider implements BrandingProvider | ||
102 | * @see com.mumfrey.liteloader.api.BrandingProvider#getIconCoords() | 102 | * @see com.mumfrey.liteloader.api.BrandingProvider#getIconCoords() |
103 | */ | 103 | */ |
104 | @Override | 104 | @Override |
105 | - public IIcon getIconCoords() | 105 | + public Icon getIconCoords() |
106 | { | 106 | { |
107 | return LiteLoaderBrandingProvider.ICON_COORDS; | 107 | return LiteLoaderBrandingProvider.ICON_COORDS; |
108 | } | 108 | } |
@@ -129,7 +129,7 @@ public class LiteLoaderBrandingProvider implements BrandingProvider | @@ -129,7 +129,7 @@ public class LiteLoaderBrandingProvider implements BrandingProvider | ||
129 | * @see com.mumfrey.liteloader.api.BrandingProvider#getTwitterAvatarCoords() | 129 | * @see com.mumfrey.liteloader.api.BrandingProvider#getTwitterAvatarCoords() |
130 | */ | 130 | */ |
131 | @Override | 131 | @Override |
132 | - public IIcon getTwitterAvatarCoords() | 132 | + public Icon getTwitterAvatarCoords() |
133 | { | 133 | { |
134 | return LiteLoaderBrandingProvider.TWITTER_AVATAR_COORDS; | 134 | return LiteLoaderBrandingProvider.TWITTER_AVATAR_COORDS; |
135 | } | 135 | } |
java/client/com/mumfrey/liteloader/client/api/LiteLoaderCoreAPIClient.java
@@ -15,6 +15,7 @@ import com.mumfrey.liteloader.core.LiteLoader; | @@ -15,6 +15,7 @@ import com.mumfrey.liteloader.core.LiteLoader; | ||
15 | import com.mumfrey.liteloader.core.api.LiteLoaderCoreAPI; | 15 | import com.mumfrey.liteloader.core.api.LiteLoaderCoreAPI; |
16 | import com.mumfrey.liteloader.interfaces.ObjectFactory; | 16 | import com.mumfrey.liteloader.interfaces.ObjectFactory; |
17 | import com.mumfrey.liteloader.messaging.MessageBus; | 17 | import com.mumfrey.liteloader.messaging.MessageBus; |
18 | +import com.mumfrey.liteloader.transformers.event.json.ModEvents; | ||
18 | 19 | ||
19 | /** | 20 | /** |
20 | * Client side of the core API | 21 | * Client side of the core API |
@@ -34,11 +35,10 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | @@ -34,11 +35,10 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | ||
34 | private static final String[] requiredDownstreamTransformers = { | 35 | private static final String[] requiredDownstreamTransformers = { |
35 | LiteLoaderCoreAPI.PKG_LITELOADER_COMMON + ".transformers.LiteLoaderPacketTransformer", | 36 | LiteLoaderCoreAPI.PKG_LITELOADER_COMMON + ".transformers.LiteLoaderPacketTransformer", |
36 | LiteLoaderCoreAPIClient.PKG_LITELOADER_CLIENT + ".transformers.LiteLoaderEventInjectionTransformer", | 37 | LiteLoaderCoreAPIClient.PKG_LITELOADER_CLIENT + ".transformers.LiteLoaderEventInjectionTransformer", |
37 | - LiteLoaderCoreAPIClient.PKG_LITELOADER_CLIENT + ".transformers.MinecraftOverlayTransformer" | 38 | + LiteLoaderCoreAPIClient.PKG_LITELOADER_CLIENT + ".transformers.MinecraftOverlayTransformer", |
39 | + LiteLoaderCoreAPI.PKG_LITELOADER + ".transformers.event.json.ModEventInjectionTransformer" | ||
38 | }; | 40 | }; |
39 | 41 | ||
40 | - private static final String[] defaultPacketTransformers = {}; | ||
41 | - | ||
42 | private ObjectFactory<Minecraft, IntegratedServer> objectFactory; | 42 | private ObjectFactory<Minecraft, IntegratedServer> objectFactory; |
43 | 43 | ||
44 | /* (non-Javadoc) | 44 | /* (non-Javadoc) |
@@ -60,15 +60,6 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | @@ -60,15 +60,6 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | ||
60 | } | 60 | } |
61 | 61 | ||
62 | /* (non-Javadoc) | 62 | /* (non-Javadoc) |
63 | - * @see com.mumfrey.liteloader.api.LiteAPI#getPacketTransformers() | ||
64 | - */ | ||
65 | - @Override | ||
66 | - public String[] getPacketTransformers() | ||
67 | - { | ||
68 | - return LiteLoaderCoreAPIClient.defaultPacketTransformers; | ||
69 | - } | ||
70 | - | ||
71 | - /* (non-Javadoc) | ||
72 | * @see com.mumfrey.liteloader.api.LiteAPI#getCustomisationProviders() | 63 | * @see com.mumfrey.liteloader.api.LiteAPI#getCustomisationProviders() |
73 | */ | 64 | */ |
74 | @Override | 65 | @Override |
@@ -114,6 +105,18 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | @@ -114,6 +105,18 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | ||
114 | } | 105 | } |
115 | 106 | ||
116 | /* (non-Javadoc) | 107 | /* (non-Javadoc) |
108 | + * @see com.mumfrey.liteloader.api.LiteAPI#getPreInitObservers() | ||
109 | + */ | ||
110 | + @Override | ||
111 | + public List<Observer> getPreInitObservers() | ||
112 | + { | ||
113 | + return ImmutableList.<Observer>of | ||
114 | + ( | ||
115 | + new ModEvents() | ||
116 | + ); | ||
117 | + } | ||
118 | + | ||
119 | + /* (non-Javadoc) | ||
117 | * @see com.mumfrey.liteloader.api.LiteAPI#getObservers() | 120 | * @see com.mumfrey.liteloader.api.LiteAPI#getObservers() |
118 | */ | 121 | */ |
119 | @Override | 122 | @Override |
java/client/com/mumfrey/liteloader/client/api/ObjectFactoryClient.java
@@ -4,7 +4,7 @@ import net.minecraft.client.Minecraft; | @@ -4,7 +4,7 @@ import net.minecraft.client.Minecraft; | ||
4 | import net.minecraft.client.gui.GuiScreen; | 4 | import net.minecraft.client.gui.GuiScreen; |
5 | import net.minecraft.server.integrated.IntegratedServer; | 5 | import net.minecraft.server.integrated.IntegratedServer; |
6 | 6 | ||
7 | -import com.mumfrey.liteloader.client.ClientEvents; | 7 | +import com.mumfrey.liteloader.client.EventsClient; |
8 | import com.mumfrey.liteloader.client.ClientPluginChannelsClient; | 8 | import com.mumfrey.liteloader.client.ClientPluginChannelsClient; |
9 | import com.mumfrey.liteloader.client.GameEngineClient; | 9 | import com.mumfrey.liteloader.client.GameEngineClient; |
10 | import com.mumfrey.liteloader.client.LiteLoaderPanelManager; | 10 | import com.mumfrey.liteloader.client.LiteLoaderPanelManager; |
@@ -34,7 +34,7 @@ class ObjectFactoryClient implements ObjectFactory<Minecraft, IntegratedServer> | @@ -34,7 +34,7 @@ class ObjectFactoryClient implements ObjectFactory<Minecraft, IntegratedServer> | ||
34 | 34 | ||
35 | private LoaderProperties properties; | 35 | private LoaderProperties properties; |
36 | 36 | ||
37 | - private ClientEvents clientEvents; | 37 | + private EventsClient clientEvents; |
38 | 38 | ||
39 | private PacketEventsClient clientPacketEvents; | 39 | private PacketEventsClient clientPacketEvents; |
40 | 40 | ||
@@ -57,7 +57,7 @@ class ObjectFactoryClient implements ObjectFactory<Minecraft, IntegratedServer> | @@ -57,7 +57,7 @@ class ObjectFactoryClient implements ObjectFactory<Minecraft, IntegratedServer> | ||
57 | { | 57 | { |
58 | if (this.clientEvents == null) | 58 | if (this.clientEvents == null) |
59 | { | 59 | { |
60 | - this.clientEvents = new ClientEvents(LiteLoader.getInstance(), (GameEngineClient)this.getGameEngine(), this.properties); | 60 | + this.clientEvents = new EventsClient(LiteLoader.getInstance(), (GameEngineClient)this.getGameEngine(), this.properties); |
61 | } | 61 | } |
62 | 62 | ||
63 | return this.clientEvents; | 63 | return this.clientEvents; |
java/client/com/mumfrey/liteloader/client/gui/GuiCheckbox.java
1 | package com.mumfrey.liteloader.client.gui; | 1 | package com.mumfrey.liteloader.client.gui; |
2 | 2 | ||
3 | -import static org.lwjgl.opengl.GL11.*; | ||
4 | - | ||
5 | -import com.mumfrey.liteloader.client.api.LiteLoaderBrandingProvider; | ||
6 | - | 3 | +import static com.mumfrey.liteloader.client.util.GL.*; |
7 | import net.minecraft.client.Minecraft; | 4 | import net.minecraft.client.Minecraft; |
8 | import net.minecraft.client.gui.GuiButton; | 5 | import net.minecraft.client.gui.GuiButton; |
9 | 6 | ||
7 | +import com.mumfrey.liteloader.client.api.LiteLoaderBrandingProvider; | ||
8 | + | ||
10 | /** | 9 | /** |
11 | * Super-simple implementation of a checkbox control | 10 | * Super-simple implementation of a checkbox control |
12 | * | 11 | * |
java/client/com/mumfrey/liteloader/client/gui/GuiLiteLoaderPanel.java
1 | package com.mumfrey.liteloader.client.gui; | 1 | package com.mumfrey.liteloader.client.gui; |
2 | 2 | ||
3 | -import static org.lwjgl.opengl.GL11.*; | 3 | +import static com.mumfrey.liteloader.client.util.GL.*; |
4 | 4 | ||
5 | +import java.io.IOException; | ||
5 | import java.util.ArrayList; | 6 | import java.util.ArrayList; |
6 | import java.util.List; | 7 | import java.util.List; |
7 | 8 | ||
@@ -11,21 +12,22 @@ import net.minecraft.client.gui.GuiButton; | @@ -11,21 +12,22 @@ import net.minecraft.client.gui.GuiButton; | ||
11 | import net.minecraft.client.gui.GuiMainMenu; | 12 | import net.minecraft.client.gui.GuiMainMenu; |
12 | import net.minecraft.client.gui.GuiScreen; | 13 | import net.minecraft.client.gui.GuiScreen; |
13 | import net.minecraft.client.renderer.Tessellator; | 14 | import net.minecraft.client.renderer.Tessellator; |
15 | +import net.minecraft.client.renderer.WorldRenderer; | ||
14 | import net.minecraft.client.resources.I18n; | 16 | import net.minecraft.client.resources.I18n; |
15 | -import net.minecraft.util.IIcon; | ||
16 | import net.minecraft.util.ResourceLocation; | 17 | import net.minecraft.util.ResourceLocation; |
17 | 18 | ||
18 | import org.lwjgl.input.Keyboard; | 19 | import org.lwjgl.input.Keyboard; |
19 | import org.lwjgl.input.Mouse; | 20 | import org.lwjgl.input.Mouse; |
20 | 21 | ||
21 | import com.mumfrey.liteloader.LiteMod; | 22 | import com.mumfrey.liteloader.LiteMod; |
22 | -import com.mumfrey.liteloader.api.LiteAPI; | ||
23 | import com.mumfrey.liteloader.api.BrandingProvider; | 23 | import com.mumfrey.liteloader.api.BrandingProvider; |
24 | +import com.mumfrey.liteloader.api.LiteAPI; | ||
24 | import com.mumfrey.liteloader.api.ModInfoDecorator; | 25 | import com.mumfrey.liteloader.api.ModInfoDecorator; |
25 | import com.mumfrey.liteloader.client.api.LiteLoaderBrandingProvider; | 26 | import com.mumfrey.liteloader.client.api.LiteLoaderBrandingProvider; |
27 | +import com.mumfrey.liteloader.client.util.render.Icon; | ||
26 | import com.mumfrey.liteloader.core.LiteLoader; | 28 | import com.mumfrey.liteloader.core.LiteLoader; |
27 | -import com.mumfrey.liteloader.core.LiteLoaderVersion; | ||
28 | import com.mumfrey.liteloader.core.LiteLoaderMods; | 29 | import com.mumfrey.liteloader.core.LiteLoaderMods; |
30 | +import com.mumfrey.liteloader.core.LiteLoaderVersion; | ||
29 | import com.mumfrey.liteloader.core.ModInfo; | 31 | import com.mumfrey.liteloader.core.ModInfo; |
30 | import com.mumfrey.liteloader.core.api.LiteLoaderCoreAPI; | 32 | import com.mumfrey.liteloader.core.api.LiteLoaderCoreAPI; |
31 | import com.mumfrey.liteloader.launch.LoaderEnvironment; | 33 | import com.mumfrey.liteloader.launch.LoaderEnvironment; |
@@ -109,10 +111,10 @@ public class GuiLiteLoaderPanel extends GuiScreen | @@ -109,10 +111,10 @@ public class GuiLiteLoaderPanel extends GuiScreen | ||
109 | private int brandColour = LiteLoaderBrandingProvider.BRANDING_COLOUR; | 111 | private int brandColour = LiteLoaderBrandingProvider.BRANDING_COLOUR; |
110 | 112 | ||
111 | private ResourceLocation logoResource = LiteLoaderBrandingProvider.ABOUT_TEXTURE; | 113 | private ResourceLocation logoResource = LiteLoaderBrandingProvider.ABOUT_TEXTURE; |
112 | - private IIcon logoCoords = LiteLoaderBrandingProvider.LOGO_COORDS; | 114 | + private Icon logoCoords = LiteLoaderBrandingProvider.LOGO_COORDS; |
113 | 115 | ||
114 | private ResourceLocation iconResource = LiteLoaderBrandingProvider.ABOUT_TEXTURE; | 116 | private ResourceLocation iconResource = LiteLoaderBrandingProvider.ABOUT_TEXTURE; |
115 | - private IIcon iconCoords = LiteLoaderBrandingProvider.ICON_COORDS; | 117 | + private Icon iconCoords = LiteLoaderBrandingProvider.ICON_COORDS; |
116 | 118 | ||
117 | private List<ModInfoDecorator> modInfoDecorators = new ArrayList<ModInfoDecorator>(); | 119 | private List<ModInfoDecorator> modInfoDecorators = new ArrayList<ModInfoDecorator>(); |
118 | 120 | ||
@@ -174,7 +176,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | @@ -174,7 +176,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | ||
174 | } | 176 | } |
175 | 177 | ||
176 | ResourceLocation logoResource = brandingProvider.getLogoResource(); | 178 | ResourceLocation logoResource = brandingProvider.getLogoResource(); |
177 | - IIcon logoCoords = brandingProvider.getLogoCoords(); | 179 | + Icon logoCoords = brandingProvider.getLogoCoords(); |
178 | if (logoResource != null && logoCoords != null && brandingProvider.getPriority() > logoProviderPriority) | 180 | if (logoResource != null && logoCoords != null && brandingProvider.getPriority() > logoProviderPriority) |
179 | { | 181 | { |
180 | logoProvider = api; | 182 | logoProvider = api; |
@@ -184,7 +186,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | @@ -184,7 +186,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | ||
184 | } | 186 | } |
185 | 187 | ||
186 | ResourceLocation iconResource = brandingProvider.getIconResource(); | 188 | ResourceLocation iconResource = brandingProvider.getIconResource(); |
187 | - IIcon iconCoords = brandingProvider.getIconCoords(); | 189 | + Icon iconCoords = brandingProvider.getIconCoords(); |
188 | if (iconResource != null && iconCoords != null && brandingProvider.getPriority() > iconProviderPriority) | 190 | if (iconResource != null && iconCoords != null && brandingProvider.getPriority() > iconProviderPriority) |
189 | { | 191 | { |
190 | iconProviderPriority = brandingProvider.getPriority(); | 192 | iconProviderPriority = brandingProvider.getPriority(); |
@@ -551,7 +553,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | @@ -551,7 +553,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | ||
551 | * @see net.minecraft.client.gui.GuiScreen#mouseClicked(int, int, int) | 553 | * @see net.minecraft.client.gui.GuiScreen#mouseClicked(int, int, int) |
552 | */ | 554 | */ |
553 | @Override | 555 | @Override |
554 | - protected void mouseClicked(int mouseX, int mouseY, int button) | 556 | + protected void mouseClicked(int mouseX, int mouseY, int button) throws IOException |
555 | { | 557 | { |
556 | this.currentPanel.mousePressed(mouseX - LEFT_EDGE, mouseY, button); | 558 | this.currentPanel.mousePressed(mouseX - LEFT_EDGE, mouseY, button); |
557 | 559 | ||
@@ -587,7 +589,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | @@ -587,7 +589,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | ||
587 | * @see net.minecraft.client.gui.GuiScreen#handleMouseInput() | 589 | * @see net.minecraft.client.gui.GuiScreen#handleMouseInput() |
588 | */ | 590 | */ |
589 | @Override | 591 | @Override |
590 | - public void handleMouseInput() | 592 | + public void handleMouseInput() throws IOException |
591 | { | 593 | { |
592 | int mouseWheelDelta = Mouse.getEventDWheel(); | 594 | int mouseWheelDelta = Mouse.getEventDWheel(); |
593 | if (mouseWheelDelta != 0) | 595 | if (mouseWheelDelta != 0) |
@@ -699,7 +701,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | @@ -699,7 +701,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | ||
699 | mouseX = Math.max(0, Math.min(screenWidth - 4, mouseX - 4)); | 701 | mouseX = Math.max(0, Math.min(screenWidth - 4, mouseX - 4)); |
700 | mouseY = Math.max(0, Math.min(screenHeight - 16, mouseY)); | 702 | mouseY = Math.max(0, Math.min(screenHeight - 16, mouseY)); |
701 | drawRect(mouseX - textSize - 2, mouseY, mouseX + 2, mouseY + 12, backgroundColour); | 703 | drawRect(mouseX - textSize - 2, mouseY, mouseX + 2, mouseY + 12, backgroundColour); |
702 | - fontRenderer.drawStringWithShadow(tooltipText, mouseX - textSize, mouseY + 2, colour); | 704 | + fontRenderer.drawStringWithShadow(tooltipText, mouseX - textSize, mouseY + 2, colour); // TODO OBF MCPTEST drawStringWithShadow - func_175063_a |
703 | } | 705 | } |
704 | 706 | ||
705 | 707 | ||
@@ -733,21 +735,22 @@ public class GuiLiteLoaderPanel extends GuiScreen | @@ -733,21 +735,22 @@ public class GuiLiteLoaderPanel extends GuiScreen | ||
733 | */ | 735 | */ |
734 | static void glDrawTexturedRect(int x, int y, int width, int height, float u, float v, float u2, float v2, float alpha) | 736 | static void glDrawTexturedRect(int x, int y, int width, int height, float u, float v, float u2, float v2, float alpha) |
735 | { | 737 | { |
736 | - glDisable(GL_LIGHTING); | ||
737 | - glEnable(GL_BLEND); | 738 | + glDisableLighting(); |
739 | + glEnableBlend(); | ||
738 | glAlphaFunc(GL_GREATER, 0.0F); | 740 | glAlphaFunc(GL_GREATER, 0.0F); |
739 | - glEnable(GL_TEXTURE_2D); | 741 | + glEnableTexture2D(); |
740 | glColor4f(1.0F, 1.0F, 1.0F, alpha); | 742 | glColor4f(1.0F, 1.0F, 1.0F, alpha); |
741 | 743 | ||
742 | - Tessellator tessellator = Tessellator.instance; | ||
743 | - tessellator.startDrawingQuads(); | ||
744 | - tessellator.addVertexWithUV(x + 0, y + height, 0, u , v2); | ||
745 | - tessellator.addVertexWithUV(x + width, y + height, 0, u2, v2); | ||
746 | - tessellator.addVertexWithUV(x + width, y + 0, 0, u2, v ); | ||
747 | - tessellator.addVertexWithUV(x + 0, y + 0, 0, u , v ); | 744 | + Tessellator tessellator = Tessellator.getInstance(); |
745 | + WorldRenderer worldRenderer = tessellator.getWorldRenderer(); | ||
746 | + worldRenderer.startDrawingQuads(); | ||
747 | + worldRenderer.addVertexWithUV(x + 0, y + height, 0, u , v2); | ||
748 | + worldRenderer.addVertexWithUV(x + width, y + height, 0, u2, v2); | ||
749 | + worldRenderer.addVertexWithUV(x + width, y + 0, 0, u2, v ); | ||
750 | + worldRenderer.addVertexWithUV(x + 0, y + 0, 0, u , v ); | ||
748 | tessellator.draw(); | 751 | tessellator.draw(); |
749 | 752 | ||
750 | - glDisable(GL_BLEND); | 753 | + glEnableBlend(); |
751 | glAlphaFunc(GL_GREATER, 0.01F); | 754 | glAlphaFunc(GL_GREATER, 0.01F); |
752 | } | 755 | } |
753 | 756 | ||
@@ -757,7 +760,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | @@ -757,7 +760,7 @@ public class GuiLiteLoaderPanel extends GuiScreen | ||
757 | * @param y | 760 | * @param y |
758 | * @param icon | 761 | * @param icon |
759 | */ | 762 | */ |
760 | - static void glDrawTexturedRect(int x, int y, IIcon icon, float alpha) | 763 | + static void glDrawTexturedRect(int x, int y, Icon icon, float alpha) |
761 | { | 764 | { |
762 | glDrawTexturedRect(x, y, icon.getIconWidth(), icon.getIconHeight(), icon.getMinU(), icon.getMinV(), icon.getMaxU(), icon.getMaxV(), alpha); | 765 | glDrawTexturedRect(x, y, icon.getIconWidth(), icon.getIconHeight(), icon.getMinU(), icon.getMinV(), icon.getMaxU(), icon.getMaxV(), alpha); |
763 | } | 766 | } |
java/client/com/mumfrey/liteloader/client/gui/GuiModListPanel.java
1 | package com.mumfrey.liteloader.client.gui; | 1 | package com.mumfrey.liteloader.client.gui; |
2 | 2 | ||
3 | +import static com.mumfrey.liteloader.client.util.GL.*; | ||
3 | import static com.mumfrey.liteloader.client.util.GLClippingPlanes.*; | 4 | import static com.mumfrey.liteloader.client.util.GLClippingPlanes.*; |
4 | -import static org.lwjgl.opengl.GL11.*; | ||
5 | 5 | ||
6 | import java.util.ArrayList; | 6 | import java.util.ArrayList; |
7 | import java.util.List; | 7 | import java.util.List; |
@@ -142,10 +142,10 @@ public class GuiModListPanel extends Gui | @@ -142,10 +142,10 @@ public class GuiModListPanel extends Gui | ||
142 | glColor4f(1.0F, 1.0F, 1.0F, 1.0F); | 142 | glColor4f(1.0F, 1.0F, 1.0F, 1.0F); |
143 | Minecraft.getMinecraft().getTextureManager().bindTexture(icon.getTextureResource()); | 143 | Minecraft.getMinecraft().getTextureManager().bindTexture(icon.getTextureResource()); |
144 | 144 | ||
145 | - glEnable(GL_BLEND); | 145 | + glEnableBlend(); |
146 | this.drawTexturedModalRect(xPosition, yPosition, icon.getUPos(), icon.getVPos(), icon.getIconWidth(), icon.getIconHeight()); | 146 | this.drawTexturedModalRect(xPosition, yPosition, icon.getUPos(), icon.getVPos(), icon.getIconWidth(), icon.getIconHeight()); |
147 | - glDisable(GL_BLEND); | ||
148 | - | 147 | + glDisableBlend(); |
148 | + | ||
149 | if (mouseX >= xPosition && mouseX <= xPosition + 12 && mouseY >= yPosition && mouseY <= yPosition + 12) | 149 | if (mouseX >= xPosition && mouseX <= xPosition + 12 && mouseY >= yPosition && mouseY <= yPosition + 12) |
150 | { | 150 | { |
151 | String tooltipText = icon.getDisplayText(); | 151 | String tooltipText = icon.getDisplayText(); |
java/client/com/mumfrey/liteloader/client/gui/GuiPanel.java
1 | package com.mumfrey.liteloader.client.gui; | 1 | package com.mumfrey.liteloader.client.gui; |
2 | 2 | ||
3 | -import static org.lwjgl.opengl.GL11.*; | 3 | +import static com.mumfrey.liteloader.client.util.GL.*; |
4 | 4 | ||
5 | import java.util.LinkedList; | 5 | import java.util.LinkedList; |
6 | import java.util.List; | 6 | import java.util.List; |
@@ -200,11 +200,11 @@ public abstract class GuiPanel extends Gui | @@ -200,11 +200,11 @@ public abstract class GuiPanel extends Gui | ||
200 | */ | 200 | */ |
201 | protected void drawThrobber(int x, int y, int frame) | 201 | protected void drawThrobber(int x, int y, int frame) |
202 | { | 202 | { |
203 | - glEnable(GL_BLEND); | 203 | + glEnableBlend(); |
204 | glAlphaFunc(GL_GREATER, 0.0F); | 204 | glAlphaFunc(GL_GREATER, 0.0F); |
205 | this.mc.getTextureManager().bindTexture(LiteLoaderBrandingProvider.ABOUT_TEXTURE); | 205 | this.mc.getTextureManager().bindTexture(LiteLoaderBrandingProvider.ABOUT_TEXTURE); |
206 | drawTexturedModalRect(x, y, (frame % 4) * 16, 171 + (((frame / 4) % 3) * 16), 16, 16); | 206 | drawTexturedModalRect(x, y, (frame % 4) * 16, 171 + (((frame / 4) % 3) * 16), 16, 16); |
207 | glAlphaFunc(GL_GREATER, 0.1F); | 207 | glAlphaFunc(GL_GREATER, 0.1F); |
208 | - glDisable(GL_BLEND); | 208 | + glDisableBlend(); |
209 | } | 209 | } |
210 | } | 210 | } |
211 | \ No newline at end of file | 211 | \ No newline at end of file |
java/client/com/mumfrey/liteloader/client/gui/GuiPanelAbout.java
@@ -10,7 +10,6 @@ import net.minecraft.client.Minecraft; | @@ -10,7 +10,6 @@ import net.minecraft.client.Minecraft; | ||
10 | import net.minecraft.client.gui.FontRenderer; | 10 | import net.minecraft.client.gui.FontRenderer; |
11 | import net.minecraft.client.gui.GuiButton; | 11 | import net.minecraft.client.gui.GuiButton; |
12 | import net.minecraft.client.resources.I18n; | 12 | import net.minecraft.client.resources.I18n; |
13 | -import net.minecraft.util.IIcon; | ||
14 | import net.minecraft.util.ResourceLocation; | 13 | import net.minecraft.util.ResourceLocation; |
15 | 14 | ||
16 | import org.lwjgl.input.Keyboard; | 15 | import org.lwjgl.input.Keyboard; |
@@ -18,6 +17,7 @@ import org.lwjgl.input.Keyboard; | @@ -18,6 +17,7 @@ import org.lwjgl.input.Keyboard; | ||
18 | import com.mumfrey.liteloader.api.BrandingProvider; | 17 | import com.mumfrey.liteloader.api.BrandingProvider; |
19 | import com.mumfrey.liteloader.api.LiteAPI; | 18 | import com.mumfrey.liteloader.api.LiteAPI; |
20 | import com.mumfrey.liteloader.client.api.LiteLoaderBrandingProvider; | 19 | import com.mumfrey.liteloader.client.api.LiteLoaderBrandingProvider; |
20 | +import com.mumfrey.liteloader.client.util.render.Icon; | ||
21 | import com.mumfrey.liteloader.client.util.render.IconAbsolute; | 21 | import com.mumfrey.liteloader.client.util.render.IconAbsolute; |
22 | import com.mumfrey.liteloader.core.LiteLoader; | 22 | import com.mumfrey.liteloader.core.LiteLoader; |
23 | import com.mumfrey.liteloader.util.SortableValue; | 23 | import com.mumfrey.liteloader.util.SortableValue; |
@@ -124,7 +124,7 @@ class GuiPanelAbout extends GuiPanel implements ScrollPanelContent | @@ -124,7 +124,7 @@ class GuiPanelAbout extends GuiPanel implements ScrollPanelContent | ||
124 | for (BrandingProvider branding : this.brandings) | 124 | for (BrandingProvider branding : this.brandings) |
125 | { | 125 | { |
126 | ResourceLocation twitterAvatarResource = branding.getTwitterAvatarResource(); | 126 | ResourceLocation twitterAvatarResource = branding.getTwitterAvatarResource(); |
127 | - IIcon twitterAvatarCoords = branding.getTwitterAvatarCoords(); | 127 | + Icon twitterAvatarCoords = branding.getTwitterAvatarCoords(); |
128 | 128 | ||
129 | this.mc.getTextureManager().bindTexture(twitterAvatarResource != null ? twitterAvatarResource : LiteLoaderBrandingProvider.ABOUT_TEXTURE); | 129 | this.mc.getTextureManager().bindTexture(twitterAvatarResource != null ? twitterAvatarResource : LiteLoaderBrandingProvider.ABOUT_TEXTURE); |
130 | GuiLiteLoaderPanel.glDrawTexturedRect(0, yPos, twitterAvatarCoords != null ? twitterAvatarCoords : GuiPanelAbout.apiIconCoords, 1.0F); | 130 | GuiLiteLoaderPanel.glDrawTexturedRect(0, yPos, twitterAvatarCoords != null ? twitterAvatarCoords : GuiPanelAbout.apiIconCoords, 1.0F); |
java/client/com/mumfrey/liteloader/client/gui/GuiPanelConfigContainer.java
1 | package com.mumfrey.liteloader.client.gui; | 1 | package com.mumfrey.liteloader.client.gui; |
2 | 2 | ||
3 | +import static com.mumfrey.liteloader.client.util.GL.*; | ||
3 | import static com.mumfrey.liteloader.client.util.GLClippingPlanes.*; | 4 | import static com.mumfrey.liteloader.client.util.GLClippingPlanes.*; |
4 | -import static org.lwjgl.opengl.GL11.*; | ||
5 | import net.minecraft.client.Minecraft; | 5 | import net.minecraft.client.Minecraft; |
6 | import net.minecraft.client.gui.GuiButton; | 6 | import net.minecraft.client.gui.GuiButton; |
7 | import net.minecraft.client.resources.I18n; | 7 | import net.minecraft.client.resources.I18n; |
java/client/com/mumfrey/liteloader/client/gui/GuiPanelLiteLoaderLog.java
1 | package com.mumfrey.liteloader.client.gui; | 1 | package com.mumfrey.liteloader.client.gui; |
2 | 2 | ||
3 | -import static org.lwjgl.opengl.GL11.*; | 3 | +import static com.mumfrey.liteloader.client.util.GL.*; |
4 | 4 | ||
5 | import java.net.URI; | 5 | import java.net.URI; |
6 | import java.util.ArrayList; | 6 | import java.util.ArrayList; |
@@ -14,6 +14,7 @@ import net.minecraft.util.Session; | @@ -14,6 +14,7 @@ import net.minecraft.util.Session; | ||
14 | 14 | ||
15 | import org.lwjgl.input.Keyboard; | 15 | import org.lwjgl.input.Keyboard; |
16 | 16 | ||
17 | +import com.mumfrey.liteloader.core.LiteLoader; | ||
17 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | 18 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
18 | import com.mumfrey.liteloader.util.net.LiteLoaderLogUpload; | 19 | import com.mumfrey.liteloader.util.net.LiteLoaderLogUpload; |
19 | 20 | ||
@@ -50,6 +51,8 @@ class GuiPanelLiteLoaderLog extends GuiPanel implements ScrollPanelContent | @@ -50,6 +51,8 @@ class GuiPanelLiteLoaderLog extends GuiPanel implements ScrollPanelContent | ||
50 | 51 | ||
51 | private GuiLiteLoaderPanel parent; | 52 | private GuiLiteLoaderPanel parent; |
52 | 53 | ||
54 | + private int debugInfoTimer = 0; | ||
55 | + | ||
53 | /** | 56 | /** |
54 | * @param parent | 57 | * @param parent |
55 | * @param minecraft | 58 | * @param minecraft |
@@ -157,6 +160,19 @@ class GuiPanelLiteLoaderLog extends GuiPanel implements ScrollPanelContent | @@ -157,6 +160,19 @@ class GuiPanelLiteLoaderLog extends GuiPanel implements ScrollPanelContent | ||
157 | this.logURL = null; | 160 | this.logURL = null; |
158 | this.setSize(this.width, this.height); | 161 | this.setSize(this.width, this.height); |
159 | } | 162 | } |
163 | + | ||
164 | + if (Keyboard.isKeyDown(Keyboard.KEY_F3)) | ||
165 | + { | ||
166 | + this.debugInfoTimer++; | ||
167 | + if (this.debugInfoTimer == 60) | ||
168 | + { | ||
169 | + LiteLoader.dumpDebugInfo(); | ||
170 | + } | ||
171 | + } | ||
172 | + else | ||
173 | + { | ||
174 | + this.debugInfoTimer = 0; | ||
175 | + } | ||
160 | } | 176 | } |
161 | 177 | ||
162 | /** | 178 | /** |
java/client/com/mumfrey/liteloader/client/gui/GuiPanelMods.java
1 | package com.mumfrey.liteloader.client.gui; | 1 | package com.mumfrey.liteloader.client.gui; |
2 | 2 | ||
3 | +import static com.mumfrey.liteloader.client.util.GL.*; | ||
3 | import static com.mumfrey.liteloader.client.util.GLClippingPlanes.*; | 4 | import static com.mumfrey.liteloader.client.util.GLClippingPlanes.*; |
4 | -import static org.lwjgl.opengl.GL11.*; | ||
5 | 5 | ||
6 | import java.util.ArrayList; | 6 | import java.util.ArrayList; |
7 | import java.util.List; | 7 | import java.util.List; |
java/client/com/mumfrey/liteloader/client/gui/GuiScrollPanel.java
1 | package com.mumfrey.liteloader.client.gui; | 1 | package com.mumfrey.liteloader.client.gui; |
2 | 2 | ||
3 | +import static com.mumfrey.liteloader.client.util.GL.*; | ||
3 | import static com.mumfrey.liteloader.client.util.GLClippingPlanes.*; | 4 | import static com.mumfrey.liteloader.client.util.GLClippingPlanes.*; |
4 | -import static org.lwjgl.opengl.GL11.*; | ||
5 | import net.minecraft.client.Minecraft; | 5 | import net.minecraft.client.Minecraft; |
6 | import net.minecraft.client.gui.GuiButton; | 6 | import net.minecraft.client.gui.GuiButton; |
7 | 7 |
java/client/com/mumfrey/liteloader/client/gui/startup/LoadingBar.java
1 | package com.mumfrey.liteloader.client.gui.startup; | 1 | package com.mumfrey.liteloader.client.gui.startup; |
2 | 2 | ||
3 | -import static org.lwjgl.opengl.GL11.*; | 3 | +import static com.mumfrey.liteloader.client.util.GL.*; |
4 | 4 | ||
5 | import java.awt.image.BufferedImage; | 5 | import java.awt.image.BufferedImage; |
6 | import java.io.IOException; | 6 | import java.io.IOException; |
@@ -14,6 +14,7 @@ import net.minecraft.client.Minecraft; | @@ -14,6 +14,7 @@ import net.minecraft.client.Minecraft; | ||
14 | import net.minecraft.client.gui.FontRenderer; | 14 | import net.minecraft.client.gui.FontRenderer; |
15 | import net.minecraft.client.gui.ScaledResolution; | 15 | import net.minecraft.client.gui.ScaledResolution; |
16 | import net.minecraft.client.renderer.Tessellator; | 16 | import net.minecraft.client.renderer.Tessellator; |
17 | +import net.minecraft.client.renderer.WorldRenderer; | ||
17 | import net.minecraft.client.renderer.texture.DynamicTexture; | 18 | import net.minecraft.client.renderer.texture.DynamicTexture; |
18 | import net.minecraft.client.renderer.texture.ITextureObject; | 19 | import net.minecraft.client.renderer.texture.ITextureObject; |
19 | import net.minecraft.client.renderer.texture.TextureManager; | 20 | import net.minecraft.client.renderer.texture.TextureManager; |
@@ -245,19 +246,20 @@ public class LoadingBar extends LoadingProgress | @@ -245,19 +246,20 @@ public class LoadingBar extends LoadingProgress | ||
245 | 246 | ||
246 | glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); | 247 | glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); |
247 | 248 | ||
248 | - glDisable(GL_LIGHTING); | ||
249 | - glDisable(GL_FOG); | ||
250 | - glDisable(GL_DEPTH_TEST); | ||
251 | - glEnable(GL_TEXTURE_2D); | 249 | + glDisableLighting(); |
250 | + glDisableFog(); | ||
251 | + glDisableDepth(); | ||
252 | + glEnableTexture2D(); | ||
252 | 253 | ||
253 | this.textureManager.bindTexture(this.textureLocation); | 254 | this.textureManager.bindTexture(this.textureLocation); |
254 | - Tessellator tessellator = Tessellator.instance; | ||
255 | - tessellator.startDrawingQuads(); | ||
256 | - tessellator.setColorOpaque_I(0xFFFFFFFF); | ||
257 | - tessellator.addVertexWithUV(0.0D, scaledHeight, 0.0D, 0.0D, 0.0D); | ||
258 | - tessellator.addVertexWithUV(scaledWidth, scaledHeight, 0.0D, 0.0D, 0.0D); | ||
259 | - tessellator.addVertexWithUV(scaledWidth, 0.0D, 0.0D, 0.0D, 0.0D); | ||
260 | - tessellator.addVertexWithUV(0.0D, 0.0D, 0.0D, 0.0D, 0.0D); | 255 | + Tessellator tessellator = Tessellator.getInstance(); |
256 | + WorldRenderer worldRenderer = tessellator.getWorldRenderer(); | ||
257 | + worldRenderer.startDrawingQuads(); | ||
258 | + worldRenderer.setColorOpaque_I(0xFFFFFFFF); // TODO OBF MCPTEST func_178991_c - setColorOpaque_I | ||
259 | + worldRenderer.addVertexWithUV(0.0D, scaledHeight, 0.0D, 0.0D, 0.0D); | ||
260 | + worldRenderer.addVertexWithUV(scaledWidth, scaledHeight, 0.0D, 0.0D, 0.0D); | ||
261 | + worldRenderer.addVertexWithUV(scaledWidth, 0.0D, 0.0D, 0.0D, 0.0D); | ||
262 | + worldRenderer.addVertexWithUV(0.0D, 0.0D, 0.0D, 0.0D, 0.0D); | ||
261 | tessellator.draw(); | 263 | tessellator.draw(); |
262 | 264 | ||
263 | glColor4f(1.0F, 1.0F, 1.0F, 1.0F); | 265 | glColor4f(1.0F, 1.0F, 1.0F, 1.0F); |
@@ -270,16 +272,17 @@ public class LoadingBar extends LoadingProgress | @@ -270,16 +272,17 @@ public class LoadingBar extends LoadingProgress | ||
270 | int v2 = 256; | 272 | int v2 = 256; |
271 | 273 | ||
272 | float texMapScale = 0.00390625F; | 274 | float texMapScale = 0.00390625F; |
273 | - tessellator.startDrawingQuads(); | ||
274 | - tessellator.setColorOpaque_I(0xFFFFFFFF); | ||
275 | - tessellator.addVertexWithUV(left + 0, top + v2, 0.0D, (u1 + 0) * texMapScale, (v1 + v2) * texMapScale); | ||
276 | - tessellator.addVertexWithUV(left + u2, top + v2, 0.0D, (u1 + u2) * texMapScale, (v1 + v2) * texMapScale); | ||
277 | - tessellator.addVertexWithUV(left + u2, top + 0, 0.0D, (u1 + u2) * texMapScale, (v1 + 0) * texMapScale); | ||
278 | - tessellator.addVertexWithUV(left + 0, top + 0, 0.0D, (u1 + 0) * texMapScale, (v1 + 0) * texMapScale); | 275 | + worldRenderer.startDrawingQuads(); |
276 | + worldRenderer.setColorOpaque_I(0xFFFFFFFF); // TODO OBF MCPTEST func_178991_c - setColorOpaque_I | ||
277 | + worldRenderer.addVertexWithUV(left + 0, top + v2, 0.0D, (u1 + 0) * texMapScale, (v1 + v2) * texMapScale); | ||
278 | + worldRenderer.addVertexWithUV(left + u2, top + v2, 0.0D, (u1 + u2) * texMapScale, (v1 + v2) * texMapScale); | ||
279 | + worldRenderer.addVertexWithUV(left + u2, top + 0, 0.0D, (u1 + u2) * texMapScale, (v1 + 0) * texMapScale); | ||
280 | + worldRenderer.addVertexWithUV(left + 0, top + 0, 0.0D, (u1 + 0) * texMapScale, (v1 + 0) * texMapScale); | ||
279 | tessellator.draw(); | 281 | tessellator.draw(); |
280 | 282 | ||
281 | - glEnable(GL_COLOR_LOGIC_OP); | ||
282 | - glLogicOp(GL_OR_REVERSE); | 283 | + glEnableTexture2D(); |
284 | + glEnableColorLogic(); | ||
285 | + glColorLogicOp(GL_OR_REVERSE); | ||
283 | this.fontRenderer.drawString(this.message, 1, scaledHeight - 19, 0xFF000000); | 286 | this.fontRenderer.drawString(this.message, 1, scaledHeight - 19, 0xFF000000); |
284 | 287 | ||
285 | if (LiteLoaderLogger.DEBUG) | 288 | if (LiteLoaderLogger.DEBUG) |
@@ -292,16 +295,16 @@ public class LoadingBar extends LoadingProgress | @@ -292,16 +295,16 @@ public class LoadingBar extends LoadingProgress | ||
292 | glPopMatrix(); | 295 | glPopMatrix(); |
293 | } | 296 | } |
294 | 297 | ||
295 | - glDisable(GL_COLOR_LOGIC_OP); | ||
296 | - glEnable(GL_TEXTURE_2D); | 298 | + glDisableColorLogic(); |
299 | + glEnableTexture2D(); | ||
297 | 300 | ||
298 | double barHeight = 10.0D; | 301 | double barHeight = 10.0D; |
299 | 302 | ||
300 | double barWidth = scaledResolution.getScaledWidth_double() - 2.0D; | 303 | double barWidth = scaledResolution.getScaledWidth_double() - 2.0D; |
301 | 304 | ||
302 | - glDisable(GL_TEXTURE_2D); | ||
303 | - glEnable(GL_BLEND); | ||
304 | - glEnable(GL_ALPHA_TEST); | 305 | + glDisableTexture2D(); |
306 | + glEnableBlend(); | ||
307 | + glEnableAlpha(); | ||
305 | glAlphaFunc(GL_GREATER, 0.0F); | 308 | glAlphaFunc(GL_GREATER, 0.0F); |
306 | glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 309 | glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
307 | 310 | ||
@@ -315,37 +318,37 @@ public class LoadingBar extends LoadingProgress | @@ -315,37 +318,37 @@ public class LoadingBar extends LoadingProgress | ||
315 | // tessellator.addVertex(0.0D, scaledHeight - (scaledHeight / 3), 0.0D); | 318 | // tessellator.addVertex(0.0D, scaledHeight - (scaledHeight / 3), 0.0D); |
316 | // tessellator.draw(); | 319 | // tessellator.draw(); |
317 | 320 | ||
318 | - tessellator.startDrawingQuads(); | ||
319 | - tessellator.setColorRGBA(this.barLuma, this.barLuma, this.barLuma, 128); | ||
320 | - tessellator.addVertex(0.0D, scaledHeight, 0.0D); | ||
321 | - tessellator.addVertex(0.0D + scaledWidth, scaledHeight, 0.0D); | ||
322 | - tessellator.addVertex(0.0D + scaledWidth, scaledHeight - barHeight, 0.0D); | ||
323 | - tessellator.addVertex(0.0D, scaledHeight - barHeight, 0.0D); | 321 | + worldRenderer.startDrawingQuads(); |
322 | + worldRenderer.func_178961_b(this.barLuma, this.barLuma, this.barLuma, 128); | ||
323 | + worldRenderer.addVertex(0.0D, scaledHeight, 0.0D); | ||
324 | + worldRenderer.addVertex(0.0D + scaledWidth, scaledHeight, 0.0D); | ||
325 | + worldRenderer.addVertex(0.0D + scaledWidth, scaledHeight - barHeight, 0.0D); | ||
326 | + worldRenderer.addVertex(0.0D, scaledHeight - barHeight, 0.0D); | ||
324 | tessellator.draw(); | 327 | tessellator.draw(); |
325 | 328 | ||
326 | barHeight -= 1; | 329 | barHeight -= 1; |
327 | 330 | ||
328 | - tessellator.startDrawingQuads(); | ||
329 | - tessellator.setColorRGBA(this.r2, this.g2, this.b2, 255); | ||
330 | - tessellator.addVertex(1.0D + barWidth * progress, scaledHeight - 1, 1.0D); | ||
331 | - tessellator.addVertex(1.0D + barWidth * progress, scaledHeight - barHeight, 1.0D); | ||
332 | - tessellator.setColorRGBA(0, 0, 0, 255); | ||
333 | - tessellator.addVertex(1.0D, scaledHeight - barHeight, 1.0D); | ||
334 | - tessellator.addVertex(1.0D, scaledHeight - 1, 1.0D); | 331 | + worldRenderer.startDrawingQuads(); |
332 | + worldRenderer.func_178961_b(this.r2, this.g2, this.b2, 255); | ||
333 | + worldRenderer.addVertex(1.0D + barWidth * progress, scaledHeight - 1, 1.0D); | ||
334 | + worldRenderer.addVertex(1.0D + barWidth * progress, scaledHeight - barHeight, 1.0D); | ||
335 | + worldRenderer.func_178961_b(0, 0, 0, 255); | ||
336 | + worldRenderer.addVertex(1.0D, scaledHeight - barHeight, 1.0D); | ||
337 | + worldRenderer.addVertex(1.0D, scaledHeight - 1, 1.0D); | ||
335 | tessellator.draw(); | 338 | tessellator.draw(); |
336 | 339 | ||
337 | glAlphaFunc(GL_GREATER, 0.1F); | 340 | glAlphaFunc(GL_GREATER, 0.1F); |
338 | - glDisable(GL_LIGHTING); | ||
339 | - glDisable(GL_FOG); | 341 | + glDisableLighting(); |
342 | + glDisableFog(); | ||
340 | this.fbo.unbindFramebuffer(); | 343 | this.fbo.unbindFramebuffer(); |
341 | 344 | ||
342 | this.fbo.framebufferRender(fboWidth, fboHeight); | 345 | this.fbo.framebufferRender(fboWidth, fboHeight); |
343 | 346 | ||
344 | - glEnable(GL_ALPHA_TEST); | 347 | + glEnableAlpha(); |
345 | glAlphaFunc(GL_GREATER, 0.1F); | 348 | glAlphaFunc(GL_GREATER, 0.1F); |
346 | - glFlush(); | 349 | +// glFlush(); |
347 | 350 | ||
348 | - this.minecraft.resetSize(); | 351 | + this.minecraft.updateDisplay(); // TODO OBF MCPTEST updateDisplay - func_175601_h |
349 | } | 352 | } |
350 | 353 | ||
351 | private void renderLogTail(int yPos) | 354 | private void renderLogTail(int yPos) |
java/client/com/mumfrey/liteloader/client/overlays/MinecraftOverlay.java
@@ -25,14 +25,14 @@ public abstract class MinecraftOverlay implements IMinecraft | @@ -25,14 +25,14 @@ public abstract class MinecraftOverlay implements IMinecraft | ||
25 | @SuppressWarnings("unused") | 25 | @SuppressWarnings("unused") |
26 | private static Minecraft __TARGET; | 26 | private static Minecraft __TARGET; |
27 | 27 | ||
28 | - // TODO Obfuscation 1.7.10 | 28 | + // TODO Obfuscation 1.8 |
29 | // Fields | 29 | // Fields |
30 | - @Obfuscated({"field_71428_T", "Q"}) private Timer timer; | ||
31 | - @Obfuscated({"field_71424_I", "z"}) private Profiler mcProfiler; | ||
32 | - @Obfuscated({"field_71425_J", "A"}) private boolean running; | ||
33 | - @Obfuscated({"field_110449_ao", "ap"}) private List<?> defaultResourcePacks = Lists.newArrayList(); | ||
34 | - @Obfuscated({"field_71475_ae", "af"}) private String serverName; | ||
35 | - @Obfuscated({"field_71477_af", "ag"}) private int serverPort; | 30 | + @Obfuscated({"field_71428_T", "U"}) private Timer timer; |
31 | + @Obfuscated({"field_71424_I", "y"}) private Profiler mcProfiler; | ||
32 | + @Obfuscated({"field_71425_J", "z"}) private boolean running; | ||
33 | + @Obfuscated({"field_110449_ao", "aw"}) private List<?> defaultResourcePacks = Lists.newArrayList(); | ||
34 | + @Obfuscated({"field_71475_ae", "am"}) private String serverName; | ||
35 | + @Obfuscated({"field_71477_af", "an"}) private int serverPort; | ||
36 | 36 | ||
37 | // Methods | 37 | // Methods |
38 | @Obfuscated({"func_71370_a", "a"}) @Stub abstract void resize(int width, int height); | 38 | @Obfuscated({"func_71370_a", "a"}) @Stub abstract void resize(int width, int height); |
java/client/com/mumfrey/liteloader/client/transformers/LiteLoaderEventInjectionTransformer.java
@@ -9,15 +9,22 @@ import com.mumfrey.liteloader.transformers.event.EventInjectionTransformer; | @@ -9,15 +9,22 @@ import com.mumfrey.liteloader.transformers.event.EventInjectionTransformer; | ||
9 | import com.mumfrey.liteloader.transformers.event.InjectionPoint; | 9 | import com.mumfrey.liteloader.transformers.event.InjectionPoint; |
10 | import com.mumfrey.liteloader.transformers.event.MethodInfo; | 10 | import com.mumfrey.liteloader.transformers.event.MethodInfo; |
11 | import com.mumfrey.liteloader.transformers.event.inject.BeforeInvoke; | 11 | import com.mumfrey.liteloader.transformers.event.inject.BeforeInvoke; |
12 | +import com.mumfrey.liteloader.transformers.event.inject.BeforeNew; | ||
12 | import com.mumfrey.liteloader.transformers.event.inject.BeforeReturn; | 13 | import com.mumfrey.liteloader.transformers.event.inject.BeforeReturn; |
13 | import com.mumfrey.liteloader.transformers.event.inject.BeforeStringInvoke; | 14 | import com.mumfrey.liteloader.transformers.event.inject.BeforeStringInvoke; |
14 | import com.mumfrey.liteloader.transformers.event.inject.MethodHead; | 15 | import com.mumfrey.liteloader.transformers.event.inject.MethodHead; |
15 | 16 | ||
17 | +/** | ||
18 | + * Injector for LiteLoader's main events | ||
19 | + * | ||
20 | + * @author Adam Mummery-Smith | ||
21 | + */ | ||
16 | public class LiteLoaderEventInjectionTransformer extends EventInjectionTransformer | 22 | public class LiteLoaderEventInjectionTransformer extends EventInjectionTransformer |
17 | { | 23 | { |
18 | @Override | 24 | @Override |
19 | protected void addEvents() | 25 | protected void addEvents() |
20 | { | 26 | { |
27 | + // Event declaraions | ||
21 | Event onOutboundChat = Event.getOrCreate("onOutboundChat", true); | 28 | Event onOutboundChat = Event.getOrCreate("onOutboundChat", true); |
22 | Event onResize = Event.getOrCreate("updateFramebufferSize", false); | 29 | Event onResize = Event.getOrCreate("updateFramebufferSize", false); |
23 | Event preRenderFBO = Event.getOrCreate("preRenderFBO", false); | 30 | Event preRenderFBO = Event.getOrCreate("preRenderFBO", false); |
@@ -43,7 +50,9 @@ public class LiteLoaderEventInjectionTransformer extends EventInjectionTransform | @@ -43,7 +50,9 @@ public class LiteLoaderEventInjectionTransformer extends EventInjectionTransform | ||
43 | Event onSpawnPlayer = Event.getOrCreate("onSpawnPlayer", false); | 50 | Event onSpawnPlayer = Event.getOrCreate("onSpawnPlayer", false); |
44 | Event onRespawnPlayer = Event.getOrCreate("onRespawnPlayer", false); | 51 | Event onRespawnPlayer = Event.getOrCreate("onRespawnPlayer", false); |
45 | Event onStartupComplete = Event.getOrCreate("onStartupComplete", false); | 52 | Event onStartupComplete = Event.getOrCreate("onStartupComplete", false); |
53 | + Event onSessionProfileBad = Event.getOrCreate("onSessionProfileBad", true); | ||
46 | 54 | ||
55 | + // Injection Points | ||
47 | InjectionPoint methodHead = new MethodHead(); | 56 | InjectionPoint methodHead = new MethodHead(); |
48 | InjectionPoint methodReturn = new BeforeReturn(); | 57 | InjectionPoint methodReturn = new BeforeReturn(); |
49 | InjectionPoint beforeGlClear = new BeforeInvoke(glClear); | 58 | InjectionPoint beforeGlClear = new BeforeInvoke(glClear); |
@@ -54,17 +63,19 @@ public class LiteLoaderEventInjectionTransformer extends EventInjectionTransform | @@ -54,17 +63,19 @@ public class LiteLoaderEventInjectionTransformer extends EventInjectionTransform | ||
54 | InjectionPoint beforeDrawChat = new BeforeInvoke(drawChat); | 63 | InjectionPoint beforeDrawChat = new BeforeInvoke(drawChat); |
55 | InjectionPoint beforeEndProfiler = new BeforeInvoke(endSection); | 64 | InjectionPoint beforeEndProfiler = new BeforeInvoke(endSection); |
56 | InjectionPoint beforeTickProfiler = new BeforeStringInvoke("tick", startSection); | 65 | InjectionPoint beforeTickProfiler = new BeforeStringInvoke("tick", startSection); |
57 | - InjectionPoint beforePickProfiler = new BeforeStringInvoke("pick", endStartSection); | 66 | + InjectionPoint beforeCenterProfiler = new BeforeStringInvoke("center", startSection); |
58 | InjectionPoint beforeRenderProfiler = new BeforeStringInvoke("gameRenderer", endStartSection); | 67 | InjectionPoint beforeRenderProfiler = new BeforeStringInvoke("gameRenderer", endStartSection); |
59 | - InjectionPoint beforeFrustumProfiler = new BeforeStringInvoke("frustrum", endStartSection); | 68 | + InjectionPoint beforeFrustumProfiler = new BeforeStringInvoke("frustum", endStartSection); |
60 | InjectionPoint beforeParticlesProfiler = new BeforeStringInvoke("litParticles", endStartSection); | 69 | InjectionPoint beforeParticlesProfiler = new BeforeStringInvoke("litParticles", endStartSection); |
70 | + InjectionPoint beforeNewGameProfile = new BeforeNew(1, Obf.GameProfile); | ||
61 | 71 | ||
72 | + // Hooks | ||
62 | this.add(onOutboundChat, sendChatMessage, (methodHead), "onOutboundChat"); | 73 | this.add(onOutboundChat, sendChatMessage, (methodHead), "onOutboundChat"); |
63 | this.add(onResize, updateFramebufferSize, (methodHead), "onResize"); | 74 | this.add(onResize, updateFramebufferSize, (methodHead), "onResize"); |
64 | this.add(preRenderFBO, runGameLoop, (beforeFBORender), "preRenderFBO"); | 75 | this.add(preRenderFBO, runGameLoop, (beforeFBORender), "preRenderFBO"); |
65 | - this.add(renderFBO, framebufferRender, (beforeBindFBOTex), "renderFBO"); | 76 | + this.add(renderFBO, framebufferRenderExt, (beforeBindFBOTex), "renderFBO"); |
66 | this.add(postRenderFBO, runGameLoop, after(beforeFBORender), "postRenderFBO"); | 77 | this.add(postRenderFBO, runGameLoop, after(beforeFBORender), "postRenderFBO"); |
67 | - this.add(onRenderWorld, renderWorld, (beforePickProfiler), "onRenderWorld"); | 78 | + this.add(onRenderWorld, renderWorld, (beforeCenterProfiler), "onRenderWorld"); |
68 | this.add(onTimerUpdate, runGameLoop, (beforeTickProfiler), "onTimerUpdate"); | 79 | this.add(onTimerUpdate, runGameLoop, (beforeTickProfiler), "onTimerUpdate"); |
69 | this.add(onRender, runGameLoop, (beforeRenderProfiler), "onRender"); | 80 | this.add(onRender, runGameLoop, (beforeRenderProfiler), "onRender"); |
70 | this.add(newTick, runTick, (methodHead), "newTick"); | 81 | this.add(newTick, runTick, (methodHead), "newTick"); |
@@ -72,8 +83,8 @@ public class LiteLoaderEventInjectionTransformer extends EventInjectionTransform | @@ -72,8 +83,8 @@ public class LiteLoaderEventInjectionTransformer extends EventInjectionTransform | ||
72 | this.add(preRenderGUI, updateCameraAndRender, after(beforeGlClear), "preRenderGUI"); | 83 | this.add(preRenderGUI, updateCameraAndRender, after(beforeGlClear), "preRenderGUI"); |
73 | this.add(onRenderHUD, updateCameraAndRender, (beforeRenderHUD), "onRenderHUD"); | 84 | this.add(onRenderHUD, updateCameraAndRender, (beforeRenderHUD), "onRenderHUD"); |
74 | this.add(postRenderHUD, updateCameraAndRender, after(beforeRenderHUD), "postRenderHUD"); | 85 | this.add(postRenderHUD, updateCameraAndRender, after(beforeRenderHUD), "postRenderHUD"); |
75 | - this.add(onSetupCameraTransform, renderWorld, (beforeFrustumProfiler), "onSetupCameraTransform"); | ||
76 | - this.add(postRenderEntities, renderWorld, (beforeParticlesProfiler), "postRenderEntities"); | 86 | + this.add(onSetupCameraTransform, renderWorldPass, (beforeFrustumProfiler), "onSetupCameraTransform"); |
87 | + this.add(postRenderEntities, renderWorldPass, (beforeParticlesProfiler), "postRenderEntities"); | ||
77 | this.add(postRender, renderWorld, (beforeEndProfiler), "postRender"); | 88 | this.add(postRender, renderWorld, (beforeEndProfiler), "postRender"); |
78 | this.add(onRenderChat, renderGameOverlay, (beforeDrawChat), "onRenderChat"); | 89 | this.add(onRenderChat, renderGameOverlay, (beforeDrawChat), "onRenderChat"); |
79 | this.add(postRenderChat, renderGameOverlay, after(beforeDrawChat), "postRenderChat"); | 90 | this.add(postRenderChat, renderGameOverlay, after(beforeDrawChat), "postRenderChat"); |
@@ -84,6 +95,9 @@ public class LiteLoaderEventInjectionTransformer extends EventInjectionTransform | @@ -84,6 +95,9 @@ public class LiteLoaderEventInjectionTransformer extends EventInjectionTransform | ||
84 | this.add(onSpawnPlayer, spawnPlayer, (methodReturn), "onSpawnPlayer"); | 95 | this.add(onSpawnPlayer, spawnPlayer, (methodReturn), "onSpawnPlayer"); |
85 | this.add(onRespawnPlayer, respawnPlayer, (methodReturn), "onRespawnPlayer"); | 96 | this.add(onRespawnPlayer, respawnPlayer, (methodReturn), "onRespawnPlayer"); |
86 | this.add(onStartupComplete, startGame, (methodReturn), "onStartupComplete"); | 97 | this.add(onStartupComplete, startGame, (methodReturn), "onStartupComplete"); |
98 | + | ||
99 | + // Compatibility handlers | ||
100 | + this.add(onSessionProfileBad, getProfile, (beforeNewGameProfile), "generateOfflineUUID"); | ||
87 | } | 101 | } |
88 | 102 | ||
89 | protected final Event add(Event event, MethodInfo targetMethod, InjectionPoint injectionPoint, String callback) | 103 | protected final Event add(Event event, MethodInfo targetMethod, InjectionPoint injectionPoint, String callback) |
java/client/com/mumfrey/liteloader/client/util/GL.java
0 โ 100644
1 | +package com.mumfrey.liteloader.client.util; | ||
2 | + | ||
3 | +import java.nio.FloatBuffer; | ||
4 | + | ||
5 | +import net.minecraft.client.renderer.GlStateManager; | ||
6 | +import net.minecraft.client.renderer.GlStateManager.TexGen; | ||
7 | + | ||
8 | +/** | ||
9 | + * Convenience class for working with Mojang's GLStateManager: | ||
10 | + * | ||
11 | + * It would be pretty tolerable to work with GLStateManager as a static import were it not for the fact that you still need to | ||
12 | + * import the GL namespaces themselves from LWJGL in order to get the constants, and also have to deal with the fact that | ||
13 | + * GLStateManager's methods don't have "gl-style" names, making it annoying to work with. This class is designed to function as | ||
14 | + * an adapter to allow changeover to be more painless. Using this class means that the following code: | ||
15 | + * | ||
16 | + * glEnable(GL_BLEND); | ||
17 | + * glAlphaFunc(GL_GREATER, 0.0F); | ||
18 | + * | ||
19 | + * becomes: | ||
20 | + * | ||
21 | + * glEnableBlend(); | ||
22 | + * glAlphaFunc(GL_GREATER, 0.0F); | ||
23 | + * | ||
24 | + * Notice that the glAlphaFunc invokation remains unchanged, and the glEnable call simply gets replaced with a logical equivalent | ||
25 | + * which invokes the GLStateManager method behind the scenes. | ||
26 | + * | ||
27 | + * To use this class, simply replace existing static imports in your classes with this single static import, then change glEnable | ||
28 | + * and glDisable calls accordingly. | ||
29 | + * | ||
30 | + * @author Adam Mummery-Smith | ||
31 | + */ | ||
32 | +public class GL | ||
33 | +{ | ||
34 | + // GL11 | ||
35 | + public static final int GL_ACCUM = 0x100; | ||
36 | + public static final int GL_LOAD = 0x101; | ||
37 | + public static final int GL_RETURN = 0x102; | ||
38 | + public static final int GL_MULT = 0x103; | ||
39 | + public static final int GL_ADD = 0x104; | ||
40 | + public static final int GL_NEVER = 0x200; | ||
41 | + public static final int GL_LESS = 0x201; | ||
42 | + public static final int GL_EQUAL = 0x202; | ||
43 | + public static final int GL_LEQUAL = 0x203; | ||
44 | + public static final int GL_GREATER = 0x204; | ||
45 | + public static final int GL_NOTEQUAL = 0x205; | ||
46 | + public static final int GL_GEQUAL = 0x206; | ||
47 | + public static final int GL_ALWAYS = 0x207; | ||
48 | + public static final int GL_CURRENT_BIT = 0x1; | ||
49 | + public static final int GL_POINT_BIT = 0x2; | ||
50 | + public static final int GL_LINE_BIT = 0x4; | ||
51 | + public static final int GL_POLYGON_BIT = 0x8; | ||
52 | + public static final int GL_POLYGON_STIPPLE_BIT = 0x10; | ||
53 | + public static final int GL_PIXEL_MODE_BIT = 0x20; | ||
54 | + public static final int GL_LIGHTING_BIT = 0x40; | ||
55 | + public static final int GL_FOG_BIT = 0x80; | ||
56 | + public static final int GL_DEPTH_BUFFER_BIT = 0x100; | ||
57 | + public static final int GL_ACCUM_BUFFER_BIT = 0x200; | ||
58 | + public static final int GL_STENCIL_BUFFER_BIT = 0x400; | ||
59 | + public static final int GL_VIEWPORT_BIT = 0x800; | ||
60 | + public static final int GL_TRANSFORM_BIT = 0x1000; | ||
61 | + public static final int GL_ENABLE_BIT = 0x2000; | ||
62 | + public static final int GL_COLOR_BUFFER_BIT = 0x4000; | ||
63 | + public static final int GL_HINT_BIT = 0x8000; | ||
64 | + public static final int GL_EVAL_BIT = 0x10000; | ||
65 | + public static final int GL_LIST_BIT = 0x20000; | ||
66 | + public static final int GL_TEXTURE_BIT = 0x40000; | ||
67 | + public static final int GL_SCISSOR_BIT = 0x80000; | ||
68 | + public static final int GL_ALL_ATTRIB_BITS = 0xfffff; | ||
69 | + public static final int GL_POINTS = 0x0; | ||
70 | + public static final int GL_LINES = 0x1; | ||
71 | + public static final int GL_LINE_LOOP = 0x2; | ||
72 | + public static final int GL_LINE_STRIP = 0x3; | ||
73 | + public static final int GL_TRIANGLES = 0x4; | ||
74 | + public static final int GL_TRIANGLE_STRIP = 0x5; | ||
75 | + public static final int GL_TRIANGLE_FAN = 0x6; | ||
76 | + public static final int GL_QUADS = 0x7; | ||
77 | + public static final int GL_QUAD_STRIP = 0x8; | ||
78 | + public static final int GL_POLYGON = 0x9; | ||
79 | + public static final int GL_ZERO = 0x0; | ||
80 | + public static final int GL_ONE = 0x1; | ||
81 | + public static final int GL_SRC_COLOR = 0x300; | ||
82 | + public static final int GL_ONE_MINUS_SRC_COLOR = 0x301; | ||
83 | + public static final int GL_SRC_ALPHA = 0x302; | ||
84 | + public static final int GL_ONE_MINUS_SRC_ALPHA = 0x303; | ||
85 | + public static final int GL_DST_ALPHA = 0x304; | ||
86 | + public static final int GL_ONE_MINUS_DST_ALPHA = 0x305; | ||
87 | + public static final int GL_DST_COLOR = 0x306; | ||
88 | + public static final int GL_ONE_MINUS_DST_COLOR = 0x307; | ||
89 | + public static final int GL_SRC_ALPHA_SATURATE = 0x308; | ||
90 | + public static final int GL_CONSTANT_COLOR = 0x8001; | ||
91 | + public static final int GL_ONE_MINUS_CONSTANT_COLOR = 0x8002; | ||
92 | + public static final int GL_CONSTANT_ALPHA = 0x8003; | ||
93 | + public static final int GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004; | ||
94 | + public static final int GL_TRUE = 0x1; | ||
95 | + public static final int GL_FALSE = 0x0; | ||
96 | + public static final int GL_CLIP_PLANE0 = 0x3000; | ||
97 | + public static final int GL_CLIP_PLANE1 = 0x3001; | ||
98 | + public static final int GL_CLIP_PLANE2 = 0x3002; | ||
99 | + public static final int GL_CLIP_PLANE3 = 0x3003; | ||
100 | + public static final int GL_CLIP_PLANE4 = 0x3004; | ||
101 | + public static final int GL_CLIP_PLANE5 = 0x3005; | ||
102 | + public static final int GL_BYTE = 0x1400; | ||
103 | + public static final int GL_UNSIGNED_BYTE = 0x1401; | ||
104 | + public static final int GL_SHORT = 0x1402; | ||
105 | + public static final int GL_UNSIGNED_SHORT = 0x1403; | ||
106 | + public static final int GL_INT = 0x1404; | ||
107 | + public static final int GL_UNSIGNED_INT = 0x1405; | ||
108 | + public static final int GL_FLOAT = 0x1406; | ||
109 | + public static final int GL_2_BYTES = 0x1407; | ||
110 | + public static final int GL_3_BYTES = 0x1408; | ||
111 | + public static final int GL_4_BYTES = 0x1409; | ||
112 | + public static final int GL_DOUBLE = 0x140a; | ||
113 | + public static final int GL_NONE = 0x0; | ||
114 | + public static final int GL_FRONT_LEFT = 0x400; | ||
115 | + public static final int GL_FRONT_RIGHT = 0x401; | ||
116 | + public static final int GL_BACK_LEFT = 0x402; | ||
117 | + public static final int GL_BACK_RIGHT = 0x403; | ||
118 | + public static final int GL_FRONT = 0x404; | ||
119 | + public static final int GL_BACK = 0x405; | ||
120 | + public static final int GL_LEFT = 0x406; | ||
121 | + public static final int GL_RIGHT = 0x407; | ||
122 | + public static final int GL_FRONT_AND_BACK = 0x408; | ||
123 | + public static final int GL_AUX0 = 0x409; | ||
124 | + public static final int GL_AUX1 = 0x40a; | ||
125 | + public static final int GL_AUX2 = 0x40b; | ||
126 | + public static final int GL_AUX3 = 0x40c; | ||
127 | + public static final int GL_NO_ERROR = 0x0; | ||
128 | + public static final int GL_INVALID_ENUM = 0x500; | ||
129 | + public static final int GL_INVALID_VALUE = 0x501; | ||
130 | + public static final int GL_INVALID_OPERATION = 0x502; | ||
131 | + public static final int GL_STACK_OVERFLOW = 0x503; | ||
132 | + public static final int GL_STACK_UNDERFLOW = 0x504; | ||
133 | + public static final int GL_OUT_OF_MEMORY = 0x505; | ||
134 | + public static final int GL_2D = 0x600; | ||
135 | + public static final int GL_3D = 0x601; | ||
136 | + public static final int GL_3D_COLOR = 0x602; | ||
137 | + public static final int GL_3D_COLOR_TEXTURE = 0x603; | ||
138 | + public static final int GL_4D_COLOR_TEXTURE = 0x604; | ||
139 | + public static final int GL_PASS_THROUGH_TOKEN = 0x700; | ||
140 | + public static final int GL_POINT_TOKEN = 0x701; | ||
141 | + public static final int GL_LINE_TOKEN = 0x702; | ||
142 | + public static final int GL_POLYGON_TOKEN = 0x703; | ||
143 | + public static final int GL_BITMAP_TOKEN = 0x704; | ||
144 | + public static final int GL_DRAW_PIXEL_TOKEN = 0x705; | ||
145 | + public static final int GL_COPY_PIXEL_TOKEN = 0x706; | ||
146 | + public static final int GL_LINE_RESET_TOKEN = 0x707; | ||
147 | + public static final int GL_EXP = 0x800; | ||
148 | + public static final int GL_EXP2 = 0x801; | ||
149 | + public static final int GL_CW = 0x900; | ||
150 | + public static final int GL_CCW = 0x901; | ||
151 | + public static final int GL_COEFF = 0xa00; | ||
152 | + public static final int GL_ORDER = 0xa01; | ||
153 | + public static final int GL_DOMAIN = 0xa02; | ||
154 | + public static final int GL_CURRENT_COLOR = 0xb00; | ||
155 | + public static final int GL_CURRENT_INDEX = 0xb01; | ||
156 | + public static final int GL_CURRENT_NORMAL = 0xb02; | ||
157 | + public static final int GL_CURRENT_TEXTURE_COORDS = 0xb03; | ||
158 | + public static final int GL_CURRENT_RASTER_COLOR = 0xb04; | ||
159 | + public static final int GL_CURRENT_RASTER_INDEX = 0xb05; | ||
160 | + public static final int GL_CURRENT_RASTER_TEXTURE_COORDS = 0xb06; | ||
161 | + public static final int GL_CURRENT_RASTER_POSITION = 0xb07; | ||
162 | + public static final int GL_CURRENT_RASTER_POSITION_VALID = 0xb08; | ||
163 | + public static final int GL_CURRENT_RASTER_DISTANCE = 0xb09; | ||
164 | + public static final int GL_POINT_SMOOTH = 0xb10; | ||
165 | + public static final int GL_POINT_SIZE = 0xb11; | ||
166 | + public static final int GL_POINT_SIZE_RANGE = 0xb12; | ||
167 | + public static final int GL_POINT_SIZE_GRANULARITY = 0xb13; | ||
168 | + public static final int GL_LINE_SMOOTH = 0xb20; | ||
169 | + public static final int GL_LINE_WIDTH = 0xb21; | ||
170 | + public static final int GL_LINE_WIDTH_RANGE = 0xb22; | ||
171 | + public static final int GL_LINE_WIDTH_GRANULARITY = 0xb23; | ||
172 | + public static final int GL_LINE_STIPPLE = 0xb24; | ||
173 | + public static final int GL_LINE_STIPPLE_PATTERN = 0xb25; | ||
174 | + public static final int GL_LINE_STIPPLE_REPEAT = 0xb26; | ||
175 | + public static final int GL_LIST_MODE = 0xb30; | ||
176 | + public static final int GL_MAX_LIST_NESTING = 0xb31; | ||
177 | + public static final int GL_LIST_BASE = 0xb32; | ||
178 | + public static final int GL_LIST_INDEX = 0xb33; | ||
179 | + public static final int GL_POLYGON_MODE = 0xb40; | ||
180 | + public static final int GL_POLYGON_SMOOTH = 0xb41; | ||
181 | + public static final int GL_POLYGON_STIPPLE = 0xb42; | ||
182 | + public static final int GL_EDGE_FLAG = 0xb43; | ||
183 | + public static final int GL_CULL_FACE = 0xb44; | ||
184 | + public static final int GL_CULL_FACE_MODE = 0xb45; | ||
185 | + public static final int GL_FRONT_FACE = 0xb46; | ||
186 | + public static final int GL_LIGHTING = 0xb50; | ||
187 | + public static final int GL_LIGHT_MODEL_LOCAL_VIEWER = 0xb51; | ||
188 | + public static final int GL_LIGHT_MODEL_TWO_SIDE = 0xb52; | ||
189 | + public static final int GL_LIGHT_MODEL_AMBIENT = 0xb53; | ||
190 | + public static final int GL_SHADE_MODEL = 0xb54; | ||
191 | + public static final int GL_COLOR_MATERIAL_FACE = 0xb55; | ||
192 | + public static final int GL_COLOR_MATERIAL_PARAMETER = 0xb56; | ||
193 | + public static final int GL_COLOR_MATERIAL = 0xb57; | ||
194 | + public static final int GL_FOG = 0xb60; | ||
195 | + public static final int GL_FOG_INDEX = 0xb61; | ||
196 | + public static final int GL_FOG_DENSITY = 0xb62; | ||
197 | + public static final int GL_FOG_START = 0xb63; | ||
198 | + public static final int GL_FOG_END = 0xb64; | ||
199 | + public static final int GL_FOG_MODE = 0xb65; | ||
200 | + public static final int GL_FOG_COLOR = 0xb66; | ||
201 | + public static final int GL_DEPTH_RANGE = 0xb70; | ||
202 | + public static final int GL_DEPTH_TEST = 0xb71; | ||
203 | + public static final int GL_DEPTH_WRITEMASK = 0xb72; | ||
204 | + public static final int GL_DEPTH_CLEAR_VALUE = 0xb73; | ||
205 | + public static final int GL_DEPTH_FUNC = 0xb74; | ||
206 | + public static final int GL_ACCUM_CLEAR_VALUE = 0xb80; | ||
207 | + public static final int GL_STENCIL_TEST = 0xb90; | ||
208 | + public static final int GL_STENCIL_CLEAR_VALUE = 0xb91; | ||
209 | + public static final int GL_STENCIL_FUNC = 0xb92; | ||
210 | + public static final int GL_STENCIL_VALUE_MASK = 0xb93; | ||
211 | + public static final int GL_STENCIL_FAIL = 0xb94; | ||
212 | + public static final int GL_STENCIL_PASS_DEPTH_FAIL = 0xb95; | ||
213 | + public static final int GL_STENCIL_PASS_DEPTH_PASS = 0xb96; | ||
214 | + public static final int GL_STENCIL_REF = 0xb97; | ||
215 | + public static final int GL_STENCIL_WRITEMASK = 0xb98; | ||
216 | + public static final int GL_MATRIX_MODE = 0xba0; | ||
217 | + public static final int GL_NORMALIZE = 0xba1; | ||
218 | + public static final int GL_VIEWPORT = 0xba2; | ||
219 | + public static final int GL_MODELVIEW_STACK_DEPTH = 0xba3; | ||
220 | + public static final int GL_PROJECTION_STACK_DEPTH = 0xba4; | ||
221 | + public static final int GL_TEXTURE_STACK_DEPTH = 0xba5; | ||
222 | + public static final int GL_MODELVIEW_MATRIX = 0xba6; | ||
223 | + public static final int GL_PROJECTION_MATRIX = 0xba7; | ||
224 | + public static final int GL_TEXTURE_MATRIX = 0xba8; | ||
225 | + public static final int GL_ATTRIB_STACK_DEPTH = 0xbb0; | ||
226 | + public static final int GL_CLIENT_ATTRIB_STACK_DEPTH = 0xbb1; | ||
227 | + public static final int GL_ALPHA_TEST = 0xbc0; | ||
228 | + public static final int GL_ALPHA_TEST_FUNC = 0xbc1; | ||
229 | + public static final int GL_ALPHA_TEST_REF = 0xbc2; | ||
230 | + public static final int GL_DITHER = 0xbd0; | ||
231 | + public static final int GL_BLEND_DST = 0xbe0; | ||
232 | + public static final int GL_BLEND_SRC = 0xbe1; | ||
233 | + public static final int GL_BLEND = 0xbe2; | ||
234 | + public static final int GL_LOGIC_OP_MODE = 0xbf0; | ||
235 | + public static final int GL_INDEX_LOGIC_OP = 0xbf1; | ||
236 | + public static final int GL_COLOR_LOGIC_OP = 0xbf2; | ||
237 | + public static final int GL_AUX_BUFFERS = 0xc00; | ||
238 | + public static final int GL_DRAW_BUFFER = 0xc01; | ||
239 | + public static final int GL_READ_BUFFER = 0xc02; | ||
240 | + public static final int GL_SCISSOR_BOX = 0xc10; | ||
241 | + public static final int GL_SCISSOR_TEST = 0xc11; | ||
242 | + public static final int GL_INDEX_CLEAR_VALUE = 0xc20; | ||
243 | + public static final int GL_INDEX_WRITEMASK = 0xc21; | ||
244 | + public static final int GL_COLOR_CLEAR_VALUE = 0xc22; | ||
245 | + public static final int GL_COLOR_WRITEMASK = 0xc23; | ||
246 | + public static final int GL_INDEX_MODE = 0xc30; | ||
247 | + public static final int GL_RGBA_MODE = 0xc31; | ||
248 | + public static final int GL_DOUBLEBUFFER = 0xc32; | ||
249 | + public static final int GL_STEREO = 0xc33; | ||
250 | + public static final int GL_RENDER_MODE = 0xc40; | ||
251 | + public static final int GL_PERSPECTIVE_CORRECTION_HINT = 0xc50; | ||
252 | + public static final int GL_POINT_SMOOTH_HINT = 0xc51; | ||
253 | + public static final int GL_LINE_SMOOTH_HINT = 0xc52; | ||
254 | + public static final int GL_POLYGON_SMOOTH_HINT = 0xc53; | ||
255 | + public static final int GL_FOG_HINT = 0xc54; | ||
256 | + public static final int GL_TEXTURE_GEN_S = 0xc60; | ||
257 | + public static final int GL_TEXTURE_GEN_T = 0xc61; | ||
258 | + public static final int GL_TEXTURE_GEN_R = 0xc62; | ||
259 | + public static final int GL_TEXTURE_GEN_Q = 0xc63; | ||
260 | + public static final int GL_PIXEL_MAP_I_TO_I = 0xc70; | ||
261 | + public static final int GL_PIXEL_MAP_S_TO_S = 0xc71; | ||
262 | + public static final int GL_PIXEL_MAP_I_TO_R = 0xc72; | ||
263 | + public static final int GL_PIXEL_MAP_I_TO_G = 0xc73; | ||
264 | + public static final int GL_PIXEL_MAP_I_TO_B = 0xc74; | ||
265 | + public static final int GL_PIXEL_MAP_I_TO_A = 0xc75; | ||
266 | + public static final int GL_PIXEL_MAP_R_TO_R = 0xc76; | ||
267 | + public static final int GL_PIXEL_MAP_G_TO_G = 0xc77; | ||
268 | + public static final int GL_PIXEL_MAP_B_TO_B = 0xc78; | ||
269 | + public static final int GL_PIXEL_MAP_A_TO_A = 0xc79; | ||
270 | + public static final int GL_PIXEL_MAP_I_TO_I_SIZE = 0xcb0; | ||
271 | + public static final int GL_PIXEL_MAP_S_TO_S_SIZE = 0xcb1; | ||
272 | + public static final int GL_PIXEL_MAP_I_TO_R_SIZE = 0xcb2; | ||
273 | + public static final int GL_PIXEL_MAP_I_TO_G_SIZE = 0xcb3; | ||
274 | + public static final int GL_PIXEL_MAP_I_TO_B_SIZE = 0xcb4; | ||
275 | + public static final int GL_PIXEL_MAP_I_TO_A_SIZE = 0xcb5; | ||
276 | + public static final int GL_PIXEL_MAP_R_TO_R_SIZE = 0xcb6; | ||
277 | + public static final int GL_PIXEL_MAP_G_TO_G_SIZE = 0xcb7; | ||
278 | + public static final int GL_PIXEL_MAP_B_TO_B_SIZE = 0xcb8; | ||
279 | + public static final int GL_PIXEL_MAP_A_TO_A_SIZE = 0xcb9; | ||
280 | + public static final int GL_UNPACK_SWAP_BYTES = 0xcf0; | ||
281 | + public static final int GL_UNPACK_LSB_FIRST = 0xcf1; | ||
282 | + public static final int GL_UNPACK_ROW_LENGTH = 0xcf2; | ||
283 | + public static final int GL_UNPACK_SKIP_ROWS = 0xcf3; | ||
284 | + public static final int GL_UNPACK_SKIP_PIXELS = 0xcf4; | ||
285 | + public static final int GL_UNPACK_ALIGNMENT = 0xcf5; | ||
286 | + public static final int GL_PACK_SWAP_BYTES = 0xd00; | ||
287 | + public static final int GL_PACK_LSB_FIRST = 0xd01; | ||
288 | + public static final int GL_PACK_ROW_LENGTH = 0xd02; | ||
289 | + public static final int GL_PACK_SKIP_ROWS = 0xd03; | ||
290 | + public static final int GL_PACK_SKIP_PIXELS = 0xd04; | ||
291 | + public static final int GL_PACK_ALIGNMENT = 0xd05; | ||
292 | + public static final int GL_MAP_COLOR = 0xd10; | ||
293 | + public static final int GL_MAP_STENCIL = 0xd11; | ||
294 | + public static final int GL_INDEX_SHIFT = 0xd12; | ||
295 | + public static final int GL_INDEX_OFFSET = 0xd13; | ||
296 | + public static final int GL_RED_SCALE = 0xd14; | ||
297 | + public static final int GL_RED_BIAS = 0xd15; | ||
298 | + public static final int GL_ZOOM_X = 0xd16; | ||
299 | + public static final int GL_ZOOM_Y = 0xd17; | ||
300 | + public static final int GL_GREEN_SCALE = 0xd18; | ||
301 | + public static final int GL_GREEN_BIAS = 0xd19; | ||
302 | + public static final int GL_BLUE_SCALE = 0xd1a; | ||
303 | + public static final int GL_BLUE_BIAS = 0xd1b; | ||
304 | + public static final int GL_ALPHA_SCALE = 0xd1c; | ||
305 | + public static final int GL_ALPHA_BIAS = 0xd1d; | ||
306 | + public static final int GL_DEPTH_SCALE = 0xd1e; | ||
307 | + public static final int GL_DEPTH_BIAS = 0xd1f; | ||
308 | + public static final int GL_MAX_EVAL_ORDER = 0xd30; | ||
309 | + public static final int GL_MAX_LIGHTS = 0xd31; | ||
310 | + public static final int GL_MAX_CLIP_PLANES = 0xd32; | ||
311 | + public static final int GL_MAX_TEXTURE_SIZE = 0xd33; | ||
312 | + public static final int GL_MAX_PIXEL_MAP_TABLE = 0xd34; | ||
313 | + public static final int GL_MAX_ATTRIB_STACK_DEPTH = 0xd35; | ||
314 | + public static final int GL_MAX_MODELVIEW_STACK_DEPTH = 0xd36; | ||
315 | + public static final int GL_MAX_NAME_STACK_DEPTH = 0xd37; | ||
316 | + public static final int GL_MAX_PROJECTION_STACK_DEPTH = 0xd38; | ||
317 | + public static final int GL_MAX_TEXTURE_STACK_DEPTH = 0xd39; | ||
318 | + public static final int GL_MAX_VIEWPORT_DIMS = 0xd3a; | ||
319 | + public static final int GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0xd3b; | ||
320 | + public static final int GL_SUBPIXEL_BITS = 0xd50; | ||
321 | + public static final int GL_INDEX_BITS = 0xd51; | ||
322 | + public static final int GL_RED_BITS = 0xd52; | ||
323 | + public static final int GL_GREEN_BITS = 0xd53; | ||
324 | + public static final int GL_BLUE_BITS = 0xd54; | ||
325 | + public static final int GL_ALPHA_BITS = 0xd55; | ||
326 | + public static final int GL_DEPTH_BITS = 0xd56; | ||
327 | + public static final int GL_STENCIL_BITS = 0xd57; | ||
328 | + public static final int GL_ACCUM_RED_BITS = 0xd58; | ||
329 | + public static final int GL_ACCUM_GREEN_BITS = 0xd59; | ||
330 | + public static final int GL_ACCUM_BLUE_BITS = 0xd5a; | ||
331 | + public static final int GL_ACCUM_ALPHA_BITS = 0xd5b; | ||
332 | + public static final int GL_NAME_STACK_DEPTH = 0xd70; | ||
333 | + public static final int GL_AUTO_NORMAL = 0xd80; | ||
334 | + public static final int GL_MAP1_COLOR_4 = 0xd90; | ||
335 | + public static final int GL_MAP1_INDEX = 0xd91; | ||
336 | + public static final int GL_MAP1_NORMAL = 0xd92; | ||
337 | + public static final int GL_MAP1_TEXTURE_COORD_1 = 0xd93; | ||
338 | + public static final int GL_MAP1_TEXTURE_COORD_2 = 0xd94; | ||
339 | + public static final int GL_MAP1_TEXTURE_COORD_3 = 0xd95; | ||
340 | + public static final int GL_MAP1_TEXTURE_COORD_4 = 0xd96; | ||
341 | + public static final int GL_MAP1_VERTEX_3 = 0xd97; | ||
342 | + public static final int GL_MAP1_VERTEX_4 = 0xd98; | ||
343 | + public static final int GL_MAP2_COLOR_4 = 0xdb0; | ||
344 | + public static final int GL_MAP2_INDEX = 0xdb1; | ||
345 | + public static final int GL_MAP2_NORMAL = 0xdb2; | ||
346 | + public static final int GL_MAP2_TEXTURE_COORD_1 = 0xdb3; | ||
347 | + public static final int GL_MAP2_TEXTURE_COORD_2 = 0xdb4; | ||
348 | + public static final int GL_MAP2_TEXTURE_COORD_3 = 0xdb5; | ||
349 | + public static final int GL_MAP2_TEXTURE_COORD_4 = 0xdb6; | ||
350 | + public static final int GL_MAP2_VERTEX_3 = 0xdb7; | ||
351 | + public static final int GL_MAP2_VERTEX_4 = 0xdb8; | ||
352 | + public static final int GL_MAP1_GRID_DOMAIN = 0xdd0; | ||
353 | + public static final int GL_MAP1_GRID_SEGMENTS = 0xdd1; | ||
354 | + public static final int GL_MAP2_GRID_DOMAIN = 0xdd2; | ||
355 | + public static final int GL_MAP2_GRID_SEGMENTS = 0xdd3; | ||
356 | + public static final int GL_TEXTURE_1D = 0xde0; | ||
357 | + public static final int GL_TEXTURE_2D = 0xde1; | ||
358 | + public static final int GL_FEEDBACK_BUFFER_POINTER = 0xdf0; | ||
359 | + public static final int GL_FEEDBACK_BUFFER_SIZE = 0xdf1; | ||
360 | + public static final int GL_FEEDBACK_BUFFER_TYPE = 0xdf2; | ||
361 | + public static final int GL_SELECTION_BUFFER_POINTER = 0xdf3; | ||
362 | + public static final int GL_SELECTION_BUFFER_SIZE = 0xdf4; | ||
363 | + public static final int GL_TEXTURE_WIDTH = 0x1000; | ||
364 | + public static final int GL_TEXTURE_HEIGHT = 0x1001; | ||
365 | + public static final int GL_TEXTURE_INTERNAL_FORMAT = 0x1003; | ||
366 | + public static final int GL_TEXTURE_BORDER_COLOR = 0x1004; | ||
367 | + public static final int GL_TEXTURE_BORDER = 0x1005; | ||
368 | + public static final int GL_DONT_CARE = 0x1100; | ||
369 | + public static final int GL_FASTEST = 0x1101; | ||
370 | + public static final int GL_NICEST = 0x1102; | ||
371 | + public static final int GL_LIGHT0 = 0x4000; | ||
372 | + public static final int GL_LIGHT1 = 0x4001; | ||
373 | + public static final int GL_LIGHT2 = 0x4002; | ||
374 | + public static final int GL_LIGHT3 = 0x4003; | ||
375 | + public static final int GL_LIGHT4 = 0x4004; | ||
376 | + public static final int GL_LIGHT5 = 0x4005; | ||
377 | + public static final int GL_LIGHT6 = 0x4006; | ||
378 | + public static final int GL_LIGHT7 = 0x4007; | ||
379 | + public static final int GL_AMBIENT = 0x1200; | ||
380 | + public static final int GL_DIFFUSE = 0x1201; | ||
381 | + public static final int GL_SPECULAR = 0x1202; | ||
382 | + public static final int GL_POSITION = 0x1203; | ||
383 | + public static final int GL_SPOT_DIRECTION = 0x1204; | ||
384 | + public static final int GL_SPOT_EXPONENT = 0x1205; | ||
385 | + public static final int GL_SPOT_CUTOFF = 0x1206; | ||
386 | + public static final int GL_CONSTANT_ATTENUATION = 0x1207; | ||
387 | + public static final int GL_LINEAR_ATTENUATION = 0x1208; | ||
388 | + public static final int GL_QUADRATIC_ATTENUATION = 0x1209; | ||
389 | + public static final int GL_COMPILE = 0x1300; | ||
390 | + public static final int GL_COMPILE_AND_EXECUTE = 0x1301; | ||
391 | + public static final int GL_CLEAR = 0x1500; | ||
392 | + public static final int GL_AND = 0x1501; | ||
393 | + public static final int GL_AND_REVERSE = 0x1502; | ||
394 | + public static final int GL_COPY = 0x1503; | ||
395 | + public static final int GL_AND_INVERTED = 0x1504; | ||
396 | + public static final int GL_NOOP = 0x1505; | ||
397 | + public static final int GL_XOR = 0x1506; | ||
398 | + public static final int GL_OR = 0x1507; | ||
399 | + public static final int GL_NOR = 0x1508; | ||
400 | + public static final int GL_EQUIV = 0x1509; | ||
401 | + public static final int GL_INVERT = 0x150a; | ||
402 | + public static final int GL_OR_REVERSE = 0x150b; | ||
403 | + public static final int GL_COPY_INVERTED = 0x150c; | ||
404 | + public static final int GL_OR_INVERTED = 0x150d; | ||
405 | + public static final int GL_NAND = 0x150e; | ||
406 | + public static final int GL_SET = 0x150f; | ||
407 | + public static final int GL_EMISSION = 0x1600; | ||
408 | + public static final int GL_SHININESS = 0x1601; | ||
409 | + public static final int GL_AMBIENT_AND_DIFFUSE = 0x1602; | ||
410 | + public static final int GL_COLOR_INDEXES = 0x1603; | ||
411 | + public static final int GL_MODELVIEW = 0x1700; | ||
412 | + public static final int GL_PROJECTION = 0x1701; | ||
413 | + public static final int GL_TEXTURE = 0x1702; | ||
414 | + public static final int GL_COLOR = 0x1800; | ||
415 | + public static final int GL_DEPTH = 0x1801; | ||
416 | + public static final int GL_STENCIL = 0x1802; | ||
417 | + public static final int GL_COLOR_INDEX = 0x1900; | ||
418 | + public static final int GL_STENCIL_INDEX = 0x1901; | ||
419 | + public static final int GL_DEPTH_COMPONENT = 0x1902; | ||
420 | + public static final int GL_RED = 0x1903; | ||
421 | + public static final int GL_GREEN = 0x1904; | ||
422 | + public static final int GL_BLUE = 0x1905; | ||
423 | + public static final int GL_ALPHA = 0x1906; | ||
424 | + public static final int GL_RGB = 0x1907; | ||
425 | + public static final int GL_RGBA = 0x1908; | ||
426 | + public static final int GL_LUMINANCE = 0x1909; | ||
427 | + public static final int GL_LUMINANCE_ALPHA = 0x190a; | ||
428 | + public static final int GL_BITMAP = 0x1a00; | ||
429 | + public static final int GL_POINT = 0x1b00; | ||
430 | + public static final int GL_LINE = 0x1b01; | ||
431 | + public static final int GL_FILL = 0x1b02; | ||
432 | + public static final int GL_RENDER = 0x1c00; | ||
433 | + public static final int GL_FEEDBACK = 0x1c01; | ||
434 | + public static final int GL_SELECT = 0x1c02; | ||
435 | + public static final int GL_FLAT = 0x1d00; | ||
436 | + public static final int GL_SMOOTH = 0x1d01; | ||
437 | + public static final int GL_KEEP = 0x1e00; | ||
438 | + public static final int GL_REPLACE = 0x1e01; | ||
439 | + public static final int GL_INCR = 0x1e02; | ||
440 | + public static final int GL_DECR = 0x1e03; | ||
441 | + public static final int GL_VENDOR = 0x1f00; | ||
442 | + public static final int GL_RENDERER = 0x1f01; | ||
443 | + public static final int GL_VERSION = 0x1f02; | ||
444 | + public static final int GL_EXTENSIONS = 0x1f03; | ||
445 | + public static final int GL_S = 0x2000; | ||
446 | + public static final int GL_T = 0x2001; | ||
447 | + public static final int GL_R = 0x2002; | ||
448 | + public static final int GL_Q = 0x2003; | ||
449 | + public static final int GL_MODULATE = 0x2100; | ||
450 | + public static final int GL_DECAL = 0x2101; | ||
451 | + public static final int GL_TEXTURE_ENV_MODE = 0x2200; | ||
452 | + public static final int GL_TEXTURE_ENV_COLOR = 0x2201; | ||
453 | + public static final int GL_TEXTURE_ENV = 0x2300; | ||
454 | + public static final int GL_EYE_LINEAR = 0x2400; | ||
455 | + public static final int GL_OBJECT_LINEAR = 0x2401; | ||
456 | + public static final int GL_SPHERE_MAP = 0x2402; | ||
457 | + public static final int GL_TEXTURE_GEN_MODE = 0x2500; | ||
458 | + public static final int GL_OBJECT_PLANE = 0x2501; | ||
459 | + public static final int GL_EYE_PLANE = 0x2502; | ||
460 | + public static final int GL_NEAREST = 0x2600; | ||
461 | + public static final int GL_LINEAR = 0x2601; | ||
462 | + public static final int GL_NEAREST_MIPMAP_NEAREST = 0x2700; | ||
463 | + public static final int GL_LINEAR_MIPMAP_NEAREST = 0x2701; | ||
464 | + public static final int GL_NEAREST_MIPMAP_LINEAR = 0x2702; | ||
465 | + public static final int GL_LINEAR_MIPMAP_LINEAR = 0x2703; | ||
466 | + public static final int GL_TEXTURE_MAG_FILTER = 0x2800; | ||
467 | + public static final int GL_TEXTURE_MIN_FILTER = 0x2801; | ||
468 | + public static final int GL_TEXTURE_WRAP_S = 0x2802; | ||
469 | + public static final int GL_TEXTURE_WRAP_T = 0x2803; | ||
470 | + public static final int GL_CLAMP = 0x2900; | ||
471 | + public static final int GL_REPEAT = 0x2901; | ||
472 | + public static final int GL_CLIENT_PIXEL_STORE_BIT = 0x1; | ||
473 | + public static final int GL_CLIENT_VERTEX_ARRAY_BIT = 0x2; | ||
474 | + public static final int GL_ALL_CLIENT_ATTRIB_BITS = 0xffffffff; | ||
475 | + public static final int GL_POLYGON_OFFSET_FACTOR = 0x8038; | ||
476 | + public static final int GL_POLYGON_OFFSET_UNITS = 0x2a00; | ||
477 | + public static final int GL_POLYGON_OFFSET_POINT = 0x2a01; | ||
478 | + public static final int GL_POLYGON_OFFSET_LINE = 0x2a02; | ||
479 | + public static final int GL_POLYGON_OFFSET_FILL = 0x8037; | ||
480 | + public static final int GL_ALPHA4 = 0x803b; | ||
481 | + public static final int GL_ALPHA8 = 0x803c; | ||
482 | + public static final int GL_ALPHA12 = 0x803d; | ||
483 | + public static final int GL_ALPHA16 = 0x803e; | ||
484 | + public static final int GL_LUMINANCE4 = 0x803f; | ||
485 | + public static final int GL_LUMINANCE8 = 0x8040; | ||
486 | + public static final int GL_LUMINANCE12 = 0x8041; | ||
487 | + public static final int GL_LUMINANCE16 = 0x8042; | ||
488 | + public static final int GL_LUMINANCE4_ALPHA4 = 0x8043; | ||
489 | + public static final int GL_LUMINANCE6_ALPHA2 = 0x8044; | ||
490 | + public static final int GL_LUMINANCE8_ALPHA8 = 0x8045; | ||
491 | + public static final int GL_LUMINANCE12_ALPHA4 = 0x8046; | ||
492 | + public static final int GL_LUMINANCE12_ALPHA12 = 0x8047; | ||
493 | + public static final int GL_LUMINANCE16_ALPHA16 = 0x8048; | ||
494 | + public static final int GL_INTENSITY = 0x8049; | ||
495 | + public static final int GL_INTENSITY4 = 0x804a; | ||
496 | + public static final int GL_INTENSITY8 = 0x804b; | ||
497 | + public static final int GL_INTENSITY12 = 0x804c; | ||
498 | + public static final int GL_INTENSITY16 = 0x804d; | ||
499 | + public static final int GL_R3_G3_B2 = 0x2a10; | ||
500 | + public static final int GL_RGB4 = 0x804f; | ||
501 | + public static final int GL_RGB5 = 0x8050; | ||
502 | + public static final int GL_RGB8 = 0x8051; | ||
503 | + public static final int GL_RGB10 = 0x8052; | ||
504 | + public static final int GL_RGB12 = 0x8053; | ||
505 | + public static final int GL_RGB16 = 0x8054; | ||
506 | + public static final int GL_RGBA2 = 0x8055; | ||
507 | + public static final int GL_RGBA4 = 0x8056; | ||
508 | + public static final int GL_RGB5_A1 = 0x8057; | ||
509 | + public static final int GL_RGBA8 = 0x8058; | ||
510 | + public static final int GL_RGB10_A2 = 0x8059; | ||
511 | + public static final int GL_RGBA12 = 0x805a; | ||
512 | + public static final int GL_RGBA16 = 0x805b; | ||
513 | + public static final int GL_TEXTURE_RED_SIZE = 0x805c; | ||
514 | + public static final int GL_TEXTURE_GREEN_SIZE = 0x805d; | ||
515 | + public static final int GL_TEXTURE_BLUE_SIZE = 0x805e; | ||
516 | + public static final int GL_TEXTURE_ALPHA_SIZE = 0x805f; | ||
517 | + public static final int GL_TEXTURE_LUMINANCE_SIZE = 0x8060; | ||
518 | + public static final int GL_TEXTURE_INTENSITY_SIZE = 0x8061; | ||
519 | + public static final int GL_PROXY_TEXTURE_1D = 0x8063; | ||
520 | + public static final int GL_PROXY_TEXTURE_2D = 0x8064; | ||
521 | + public static final int GL_TEXTURE_PRIORITY = 0x8066; | ||
522 | + public static final int GL_TEXTURE_RESIDENT = 0x8067; | ||
523 | + public static final int GL_TEXTURE_BINDING_1D = 0x8068; | ||
524 | + public static final int GL_TEXTURE_BINDING_2D = 0x8069; | ||
525 | + public static final int GL_VERTEX_ARRAY = 0x8074; | ||
526 | + public static final int GL_NORMAL_ARRAY = 0x8075; | ||
527 | + public static final int GL_COLOR_ARRAY = 0x8076; | ||
528 | + public static final int GL_INDEX_ARRAY = 0x8077; | ||
529 | + public static final int GL_TEXTURE_COORD_ARRAY = 0x8078; | ||
530 | + public static final int GL_EDGE_FLAG_ARRAY = 0x8079; | ||
531 | + public static final int GL_VERTEX_ARRAY_SIZE = 0x807a; | ||
532 | + public static final int GL_VERTEX_ARRAY_TYPE = 0x807b; | ||
533 | + public static final int GL_VERTEX_ARRAY_STRIDE = 0x807c; | ||
534 | + public static final int GL_NORMAL_ARRAY_TYPE = 0x807e; | ||
535 | + public static final int GL_NORMAL_ARRAY_STRIDE = 0x807f; | ||
536 | + public static final int GL_COLOR_ARRAY_SIZE = 0x8081; | ||
537 | + public static final int GL_COLOR_ARRAY_TYPE = 0x8082; | ||
538 | + public static final int GL_COLOR_ARRAY_STRIDE = 0x8083; | ||
539 | + public static final int GL_INDEX_ARRAY_TYPE = 0x8085; | ||
540 | + public static final int GL_INDEX_ARRAY_STRIDE = 0x8086; | ||
541 | + public static final int GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088; | ||
542 | + public static final int GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089; | ||
543 | + public static final int GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808a; | ||
544 | + public static final int GL_EDGE_FLAG_ARRAY_STRIDE = 0x808c; | ||
545 | + public static final int GL_VERTEX_ARRAY_POINTER = 0x808e; | ||
546 | + public static final int GL_NORMAL_ARRAY_POINTER = 0x808f; | ||
547 | + public static final int GL_COLOR_ARRAY_POINTER = 0x8090; | ||
548 | + public static final int GL_INDEX_ARRAY_POINTER = 0x8091; | ||
549 | + public static final int GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092; | ||
550 | + public static final int GL_EDGE_FLAG_ARRAY_POINTER = 0x8093; | ||
551 | + public static final int GL_V2F = 0x2a20; | ||
552 | + public static final int GL_V3F = 0x2a21; | ||
553 | + public static final int GL_C4UB_V2F = 0x2a22; | ||
554 | + public static final int GL_C4UB_V3F = 0x2a23; | ||
555 | + public static final int GL_C3F_V3F = 0x2a24; | ||
556 | + public static final int GL_N3F_V3F = 0x2a25; | ||
557 | + public static final int GL_C4F_N3F_V3F = 0x2a26; | ||
558 | + public static final int GL_T2F_V3F = 0x2a27; | ||
559 | + public static final int GL_T4F_V4F = 0x2a28; | ||
560 | + public static final int GL_T2F_C4UB_V3F = 0x2a29; | ||
561 | + public static final int GL_T2F_C3F_V3F = 0x2a2a; | ||
562 | + public static final int GL_T2F_N3F_V3F = 0x2a2b; | ||
563 | + public static final int GL_T2F_C4F_N3F_V3F = 0x2a2c; | ||
564 | + public static final int GL_T4F_C4F_N3F_V4F = 0x2a2d; | ||
565 | + public static final int GL_LOGIC_OP = 0xbf1; | ||
566 | + public static final int GL_TEXTURE_COMPONENTS = 0x1003; | ||
567 | + | ||
568 | + // GL12 | ||
569 | + public static final int GL_TEXTURE_BINDING_3D = 0x806a; | ||
570 | + public static final int GL_PACK_SKIP_IMAGES = 0x806b; | ||
571 | + public static final int GL_PACK_IMAGE_HEIGHT = 0x806c; | ||
572 | + public static final int GL_UNPACK_SKIP_IMAGES = 0x806d; | ||
573 | + public static final int GL_UNPACK_IMAGE_HEIGHT = 0x806e; | ||
574 | + public static final int GL_TEXTURE_3D = 0x806f; | ||
575 | + public static final int GL_PROXY_TEXTURE_3D = 0x8070; | ||
576 | + public static final int GL_TEXTURE_DEPTH = 0x8071; | ||
577 | + public static final int GL_TEXTURE_WRAP_R = 0x8072; | ||
578 | + public static final int GL_MAX_3D_TEXTURE_SIZE = 0x8073; | ||
579 | + public static final int GL_BGR = 0x80e0; | ||
580 | + public static final int GL_BGRA = 0x80e1; | ||
581 | + public static final int GL_UNSIGNED_BYTE_3_3_2 = 0x8032; | ||
582 | + public static final int GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362; | ||
583 | + public static final int GL_UNSIGNED_SHORT_5_6_5 = 0x8363; | ||
584 | + public static final int GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364; | ||
585 | + public static final int GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033; | ||
586 | + public static final int GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365; | ||
587 | + public static final int GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034; | ||
588 | + public static final int GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366; | ||
589 | + public static final int GL_UNSIGNED_INT_8_8_8_8 = 0x8035; | ||
590 | + public static final int GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367; | ||
591 | + public static final int GL_UNSIGNED_INT_10_10_10_2 = 0x8036; | ||
592 | + public static final int GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368; | ||
593 | + public static final int GL_RESCALE_NORMAL = 0x803a; | ||
594 | + public static final int GL_LIGHT_MODEL_COLOR_CONTROL = 0x81f8; | ||
595 | + public static final int GL_SINGLE_COLOR = 0x81f9; | ||
596 | + public static final int GL_SEPARATE_SPECULAR_COLOR = 0x81fa; | ||
597 | + public static final int GL_CLAMP_TO_EDGE = 0x812f; | ||
598 | + public static final int GL_TEXTURE_MIN_LOD = 0x813a; | ||
599 | + public static final int GL_TEXTURE_MAX_LOD = 0x813b; | ||
600 | + public static final int GL_TEXTURE_BASE_LEVEL = 0x813c; | ||
601 | + public static final int GL_TEXTURE_MAX_LEVEL = 0x813d; | ||
602 | + public static final int GL_MAX_ELEMENTS_VERTICES = 0x80e8; | ||
603 | + public static final int GL_MAX_ELEMENTS_INDICES = 0x80e9; | ||
604 | + public static final int GL_ALIASED_POINT_SIZE_RANGE = 0x846d; | ||
605 | + public static final int GL_ALIASED_LINE_WIDTH_RANGE = 0x846e; | ||
606 | + public static final int GL_SMOOTH_POINT_SIZE_RANGE = 0xb12; | ||
607 | + public static final int GL_SMOOTH_POINT_SIZE_GRANULARITY = 0xb13; | ||
608 | + public static final int GL_SMOOTH_LINE_WIDTH_RANGE = 0xb22; | ||
609 | + public static final int GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0xb23; | ||
610 | + | ||
611 | + // GL13 | ||
612 | + public static final int GL_TEXTURE0 = 0x84c0; | ||
613 | + public static final int GL_TEXTURE1 = 0x84c1; | ||
614 | + public static final int GL_TEXTURE2 = 0x84c2; | ||
615 | + public static final int GL_TEXTURE3 = 0x84c3; | ||
616 | + public static final int GL_TEXTURE4 = 0x84c4; | ||
617 | + public static final int GL_TEXTURE5 = 0x84c5; | ||
618 | + public static final int GL_TEXTURE6 = 0x84c6; | ||
619 | + public static final int GL_TEXTURE7 = 0x84c7; | ||
620 | + public static final int GL_TEXTURE8 = 0x84c8; | ||
621 | + public static final int GL_TEXTURE9 = 0x84c9; | ||
622 | + public static final int GL_TEXTURE10 = 0x84ca; | ||
623 | + public static final int GL_TEXTURE11 = 0x84cb; | ||
624 | + public static final int GL_TEXTURE12 = 0x84cc; | ||
625 | + public static final int GL_TEXTURE13 = 0x84cd; | ||
626 | + public static final int GL_TEXTURE14 = 0x84ce; | ||
627 | + public static final int GL_TEXTURE15 = 0x84cf; | ||
628 | + public static final int GL_TEXTURE16 = 0x84d0; | ||
629 | + public static final int GL_TEXTURE17 = 0x84d1; | ||
630 | + public static final int GL_TEXTURE18 = 0x84d2; | ||
631 | + public static final int GL_TEXTURE19 = 0x84d3; | ||
632 | + public static final int GL_TEXTURE20 = 0x84d4; | ||
633 | + public static final int GL_TEXTURE21 = 0x84d5; | ||
634 | + public static final int GL_TEXTURE22 = 0x84d6; | ||
635 | + public static final int GL_TEXTURE23 = 0x84d7; | ||
636 | + public static final int GL_TEXTURE24 = 0x84d8; | ||
637 | + public static final int GL_TEXTURE25 = 0x84d9; | ||
638 | + public static final int GL_TEXTURE26 = 0x84da; | ||
639 | + public static final int GL_TEXTURE27 = 0x84db; | ||
640 | + public static final int GL_TEXTURE28 = 0x84dc; | ||
641 | + public static final int GL_TEXTURE29 = 0x84dd; | ||
642 | + public static final int GL_TEXTURE30 = 0x84de; | ||
643 | + public static final int GL_TEXTURE31 = 0x84df; | ||
644 | + public static final int GL_ACTIVE_TEXTURE = 0x84e0; | ||
645 | + public static final int GL_CLIENT_ACTIVE_TEXTURE = 0x84e1; | ||
646 | + public static final int GL_MAX_TEXTURE_UNITS = 0x84e2; | ||
647 | + public static final int GL_NORMAL_MAP = 0x8511; | ||
648 | + public static final int GL_REFLECTION_MAP = 0x8512; | ||
649 | + public static final int GL_TEXTURE_CUBE_MAP = 0x8513; | ||
650 | + public static final int GL_TEXTURE_BINDING_CUBE_MAP = 0x8514; | ||
651 | + public static final int GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515; | ||
652 | + public static final int GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516; | ||
653 | + public static final int GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517; | ||
654 | + public static final int GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518; | ||
655 | + public static final int GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519; | ||
656 | + public static final int GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851a; | ||
657 | + public static final int GL_PROXY_TEXTURE_CUBE_MAP = 0x851b; | ||
658 | + public static final int GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851c; | ||
659 | + public static final int GL_COMPRESSED_ALPHA = 0x84e9; | ||
660 | + public static final int GL_COMPRESSED_LUMINANCE = 0x84ea; | ||
661 | + public static final int GL_COMPRESSED_LUMINANCE_ALPHA = 0x84eb; | ||
662 | + public static final int GL_COMPRESSED_INTENSITY = 0x84ec; | ||
663 | + public static final int GL_COMPRESSED_RGB = 0x84ed; | ||
664 | + public static final int GL_COMPRESSED_RGBA = 0x84ee; | ||
665 | + public static final int GL_TEXTURE_COMPRESSION_HINT = 0x84ef; | ||
666 | + public static final int GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86a0; | ||
667 | + public static final int GL_TEXTURE_COMPRESSED = 0x86a1; | ||
668 | + public static final int GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86a2; | ||
669 | + public static final int GL_COMPRESSED_TEXTURE_FORMATS = 0x86a3; | ||
670 | + public static final int GL_MULTISAMPLE = 0x809d; | ||
671 | + public static final int GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809e; | ||
672 | + public static final int GL_SAMPLE_ALPHA_TO_ONE = 0x809f; | ||
673 | + public static final int GL_SAMPLE_COVERAGE = 0x80a0; | ||
674 | + public static final int GL_SAMPLE_BUFFERS = 0x80a8; | ||
675 | + public static final int GL_SAMPLES = 0x80a9; | ||
676 | + public static final int GL_SAMPLE_COVERAGE_VALUE = 0x80aa; | ||
677 | + public static final int GL_SAMPLE_COVERAGE_INVERT = 0x80ab; | ||
678 | + public static final int GL_MULTISAMPLE_BIT = 0x20000000; | ||
679 | + public static final int GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84e3; | ||
680 | + public static final int GL_TRANSPOSE_PROJECTION_MATRIX = 0x84e4; | ||
681 | + public static final int GL_TRANSPOSE_TEXTURE_MATRIX = 0x84e5; | ||
682 | + public static final int GL_TRANSPOSE_COLOR_MATRIX = 0x84e6; | ||
683 | + public static final int GL_COMBINE = 0x8570; | ||
684 | + public static final int GL_COMBINE_RGB = 0x8571; | ||
685 | + public static final int GL_COMBINE_ALPHA = 0x8572; | ||
686 | + public static final int GL_SOURCE0_RGB = 0x8580; | ||
687 | + public static final int GL_SOURCE1_RGB = 0x8581; | ||
688 | + public static final int GL_SOURCE2_RGB = 0x8582; | ||
689 | + public static final int GL_SOURCE0_ALPHA = 0x8588; | ||
690 | + public static final int GL_SOURCE1_ALPHA = 0x8589; | ||
691 | + public static final int GL_SOURCE2_ALPHA = 0x858a; | ||
692 | + public static final int GL_OPERAND0_RGB = 0x8590; | ||
693 | + public static final int GL_OPERAND1_RGB = 0x8591; | ||
694 | + public static final int GL_OPERAND2_RGB = 0x8592; | ||
695 | + public static final int GL_OPERAND0_ALPHA = 0x8598; | ||
696 | + public static final int GL_OPERAND1_ALPHA = 0x8599; | ||
697 | + public static final int GL_OPERAND2_ALPHA = 0x859a; | ||
698 | + public static final int GL_RGB_SCALE = 0x8573; | ||
699 | + public static final int GL_ADD_SIGNED = 0x8574; | ||
700 | + public static final int GL_INTERPOLATE = 0x8575; | ||
701 | + public static final int GL_SUBTRACT = 0x84e7; | ||
702 | + public static final int GL_CONSTANT = 0x8576; | ||
703 | + public static final int GL_PRIMARY_COLOR = 0x8577; | ||
704 | + public static final int GL_PREVIOUS = 0x8578; | ||
705 | + public static final int GL_DOT3_RGB = 0x86ae; | ||
706 | + public static final int GL_DOT3_RGBA = 0x86af; | ||
707 | + public static final int GL_CLAMP_TO_BORDER = 0x812d; | ||
708 | + | ||
709 | + // GL14 | ||
710 | + public static final int GL_GENERATE_MIPMAP = 0x8191; | ||
711 | + public static final int GL_GENERATE_MIPMAP_HINT = 0x8192; | ||
712 | + public static final int GL_DEPTH_COMPONENT16 = 0x81a5; | ||
713 | + public static final int GL_DEPTH_COMPONENT24 = 0x81a6; | ||
714 | + public static final int GL_DEPTH_COMPONENT32 = 0x81a7; | ||
715 | + public static final int GL_TEXTURE_DEPTH_SIZE = 0x884a; | ||
716 | + public static final int GL_DEPTH_TEXTURE_MODE = 0x884b; | ||
717 | + public static final int GL_TEXTURE_COMPARE_MODE = 0x884c; | ||
718 | + public static final int GL_TEXTURE_COMPARE_FUNC = 0x884d; | ||
719 | + public static final int GL_COMPARE_R_TO_TEXTURE = 0x884e; | ||
720 | + public static final int GL_FOG_COORDINATE_SOURCE = 0x8450; | ||
721 | + public static final int GL_FOG_COORDINATE = 0x8451; | ||
722 | + public static final int GL_FRAGMENT_DEPTH = 0x8452; | ||
723 | + public static final int GL_CURRENT_FOG_COORDINATE = 0x8453; | ||
724 | + public static final int GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454; | ||
725 | + public static final int GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455; | ||
726 | + public static final int GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456; | ||
727 | + public static final int GL_FOG_COORDINATE_ARRAY = 0x8457; | ||
728 | + public static final int GL_POINT_SIZE_MIN = 0x8126; | ||
729 | + public static final int GL_POINT_SIZE_MAX = 0x8127; | ||
730 | + public static final int GL_POINT_FADE_THRESHOLD_SIZE = 0x8128; | ||
731 | + public static final int GL_POINT_DISTANCE_ATTENUATION = 0x8129; | ||
732 | + public static final int GL_COLOR_SUM = 0x8458; | ||
733 | + public static final int GL_CURRENT_SECONDARY_COLOR = 0x8459; | ||
734 | + public static final int GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845a; | ||
735 | + public static final int GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845b; | ||
736 | + public static final int GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845c; | ||
737 | + public static final int GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845d; | ||
738 | + public static final int GL_SECONDARY_COLOR_ARRAY = 0x845e; | ||
739 | + public static final int GL_BLEND_DST_RGB = 0x80c8; | ||
740 | + public static final int GL_BLEND_SRC_RGB = 0x80c9; | ||
741 | + public static final int GL_BLEND_DST_ALPHA = 0x80ca; | ||
742 | + public static final int GL_BLEND_SRC_ALPHA = 0x80cb; | ||
743 | + public static final int GL_INCR_WRAP = 0x8507; | ||
744 | + public static final int GL_DECR_WRAP = 0x8508; | ||
745 | + public static final int GL_TEXTURE_FILTER_CONTROL = 0x8500; | ||
746 | + public static final int GL_TEXTURE_LOD_BIAS = 0x8501; | ||
747 | + public static final int GL_MAX_TEXTURE_LOD_BIAS = 0x84fd; | ||
748 | + public static final int GL_MIRRORED_REPEAT = 0x8370; | ||
749 | + public static final int GL_BLEND_COLOR = 0x8005; | ||
750 | + public static final int GL_BLEND_EQUATION = 0x8009; | ||
751 | + public static final int GL_FUNC_ADD = 0x8006; | ||
752 | + public static final int GL_FUNC_SUBTRACT = 0x800a; | ||
753 | + public static final int GL_FUNC_REVERSE_SUBTRACT = 0x800b; | ||
754 | + public static final int GL_MIN = 0x8007; | ||
755 | + public static final int GL_MAX = 0x8008; | ||
756 | + | ||
757 | + // GL15 | ||
758 | + public static final int GL_ARRAY_BUFFER = 0x8892; | ||
759 | + public static final int GL_ELEMENT_ARRAY_BUFFER = 0x8893; | ||
760 | + public static final int GL_ARRAY_BUFFER_BINDING = 0x8894; | ||
761 | + public static final int GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895; | ||
762 | + public static final int GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896; | ||
763 | + public static final int GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897; | ||
764 | + public static final int GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898; | ||
765 | + public static final int GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899; | ||
766 | + public static final int GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889a; | ||
767 | + public static final int GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889b; | ||
768 | + public static final int GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889c; | ||
769 | + public static final int GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889d; | ||
770 | + public static final int GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889e; | ||
771 | + public static final int GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889f; | ||
772 | + public static final int GL_STREAM_DRAW = 0x88e0; | ||
773 | + public static final int GL_STREAM_READ = 0x88e1; | ||
774 | + public static final int GL_STREAM_COPY = 0x88e2; | ||
775 | + public static final int GL_STATIC_DRAW = 0x88e4; | ||
776 | + public static final int GL_STATIC_READ = 0x88e5; | ||
777 | + public static final int GL_STATIC_COPY = 0x88e6; | ||
778 | + public static final int GL_DYNAMIC_DRAW = 0x88e8; | ||
779 | + public static final int GL_DYNAMIC_READ = 0x88e9; | ||
780 | + public static final int GL_DYNAMIC_COPY = 0x88ea; | ||
781 | + public static final int GL_READ_ONLY = 0x88b8; | ||
782 | + public static final int GL_WRITE_ONLY = 0x88b9; | ||
783 | + public static final int GL_READ_WRITE = 0x88ba; | ||
784 | + public static final int GL_BUFFER_SIZE = 0x8764; | ||
785 | + public static final int GL_BUFFER_USAGE = 0x8765; | ||
786 | + public static final int GL_BUFFER_ACCESS = 0x88bb; | ||
787 | + public static final int GL_BUFFER_MAPPED = 0x88bc; | ||
788 | + public static final int GL_BUFFER_MAP_POINTER = 0x88bd; | ||
789 | + public static final int FOG_COORD_SRC = 0x8450; | ||
790 | + public static final int GL_FOG_COORD = 0x8451; | ||
791 | + public static final int GL_CURRENT_FOG_COORD = 0x8453; | ||
792 | + public static final int GL_FOG_COORD_ARRAY_TYPE = 0x8454; | ||
793 | + public static final int GL_FOG_COORD_ARRAY_STRIDE = 0x8455; | ||
794 | + public static final int GL_FOG_COORD_ARRAY_POINTER = 0x8456; | ||
795 | + public static final int GL_FOG_COORD_ARRAY = 0x8457; | ||
796 | + public static final int GL_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889d; | ||
797 | + public static final int GL_SRC0_RGB = 0x8580; | ||
798 | + public static final int GL_SRC1_RGB = 0x8581; | ||
799 | + public static final int GL_SRC2_RGB = 0x8582; | ||
800 | + public static final int GL_SRC0_ALPHA = 0x8588; | ||
801 | + public static final int GL_SRC1_ALPHA = 0x8589; | ||
802 | + public static final int GL_SRC2_ALPHA = 0x858a; | ||
803 | + | ||
804 | + public static void glPushAttrib() | ||
805 | + { | ||
806 | + GlStateManager.pushAttrib(); | ||
807 | + } | ||
808 | + | ||
809 | + public static void glPopAttrib() | ||
810 | + { | ||
811 | + GlStateManager.popAttrib(); | ||
812 | + } | ||
813 | + | ||
814 | + public static void glDisableAlpha() | ||
815 | + { | ||
816 | + GlStateManager.disableAlpha(); | ||
817 | + } | ||
818 | + | ||
819 | + public static void glEnableAlpha() | ||
820 | + { | ||
821 | + GlStateManager.enableAlpha(); | ||
822 | + } | ||
823 | + | ||
824 | + public static void glAlphaFunc(int func, float ref) | ||
825 | + { | ||
826 | + GlStateManager.alphaFunc(func, ref); | ||
827 | + } | ||
828 | + | ||
829 | + public static void glEnableLighting() | ||
830 | + { | ||
831 | + GlStateManager.enableLighting(); | ||
832 | + } | ||
833 | + | ||
834 | + public static void glDisableLighting() | ||
835 | + { | ||
836 | + GlStateManager.disableLighting(); | ||
837 | + } | ||
838 | + | ||
839 | + public static void glEnableLight(int light) | ||
840 | + { | ||
841 | + GlStateManager.enableLight(light); // TODO OBF MCPTEST enableBooleanStateAt - enableLight | ||
842 | + } | ||
843 | + | ||
844 | + public static void glDisableLight(int light) | ||
845 | + { | ||
846 | + GlStateManager.disableLight(light); // TODO OBF MCPTEST disableBooleanStateAt - disableLight | ||
847 | + } | ||
848 | + | ||
849 | + public static void glEnableColorMaterial() | ||
850 | + { | ||
851 | + GlStateManager.enableColorMaterial(); | ||
852 | + } | ||
853 | + | ||
854 | + public static void glDisableColorMaterial() | ||
855 | + { | ||
856 | + GlStateManager.disableColorMaterial(); | ||
857 | + } | ||
858 | + | ||
859 | + public static void glColorMaterial(int face, int mode) | ||
860 | + { | ||
861 | + GlStateManager.colorMaterial(face, mode); | ||
862 | + } | ||
863 | + | ||
864 | + public static void glDisableDepth() | ||
865 | + { | ||
866 | + GlStateManager.disableDepth(); | ||
867 | + } | ||
868 | + | ||
869 | + public static void glEnableDepth() | ||
870 | + { | ||
871 | + GlStateManager.enableDepth(); | ||
872 | + } | ||
873 | + | ||
874 | + public static void glDepthFunc(int func) | ||
875 | + { | ||
876 | + GlStateManager.depthFunc(func); | ||
877 | + } | ||
878 | + | ||
879 | + public static void glDepthMask(boolean flag) | ||
880 | + { | ||
881 | + GlStateManager.depthMask(flag); | ||
882 | + } | ||
883 | + | ||
884 | + public static void glDisableBlend() | ||
885 | + { | ||
886 | + GlStateManager.disableBlend(); | ||
887 | + } | ||
888 | + | ||
889 | + public static void glEnableBlend() | ||
890 | + { | ||
891 | + GlStateManager.enableBlend(); | ||
892 | + } | ||
893 | + | ||
894 | + public static void glBlendFunc(int sfactor, int dfactor) | ||
895 | + { | ||
896 | + GlStateManager.blendFunc(sfactor, dfactor); | ||
897 | + } | ||
898 | + | ||
899 | + public static void glBlendFuncSeparate(int sfactorRGB, int dfactorRGB, int sfactorAlpha, int dfactorAlpha) | ||
900 | + { | ||
901 | + GlStateManager.tryBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha); | ||
902 | + } | ||
903 | + | ||
904 | + public static void glEnableFog() | ||
905 | + { | ||
906 | + GlStateManager.enableFog(); | ||
907 | + } | ||
908 | + | ||
909 | + public static void glDisableFog() | ||
910 | + { | ||
911 | + GlStateManager.disableFog(); | ||
912 | + } | ||
913 | + | ||
914 | + public static void glSetFogMode(int mode) | ||
915 | + { | ||
916 | + GlStateManager.setFog(mode); | ||
917 | + } | ||
918 | + | ||
919 | + public static void glSetFogDensity(float density) | ||
920 | + { | ||
921 | + GlStateManager.setFogDensity(density); | ||
922 | + } | ||
923 | + | ||
924 | + public static void glSetFogStart(float start) | ||
925 | + { | ||
926 | + GlStateManager.setFogStart(start); | ||
927 | + } | ||
928 | + | ||
929 | + public static void glSetFogEnd(float end) | ||
930 | + { | ||
931 | + GlStateManager.setFogEnd(end); | ||
932 | + } | ||
933 | + | ||
934 | + public static void glEnableCulling() | ||
935 | + { | ||
936 | + GlStateManager.enableCull(); | ||
937 | + } | ||
938 | + | ||
939 | + public static void glDisableCulling() | ||
940 | + { | ||
941 | + GlStateManager.disableCull(); | ||
942 | + } | ||
943 | + | ||
944 | + public static void glCullFace(int mode) | ||
945 | + { | ||
946 | + GlStateManager.cullFace(mode); | ||
947 | + } | ||
948 | + | ||
949 | + public static void glEnablePolygonOffset() | ||
950 | + { | ||
951 | + GlStateManager.enablePolygonOffset(); | ||
952 | + } | ||
953 | + | ||
954 | + public static void glDisablePolygonOffset() | ||
955 | + { | ||
956 | + GlStateManager.disablePolygonOffset(); | ||
957 | + } | ||
958 | + | ||
959 | + public static void glPolygonOffset(float factor, float units) | ||
960 | + { | ||
961 | + GlStateManager.doPolygonOffset(factor, units); | ||
962 | + } | ||
963 | + | ||
964 | + public static void glEnableColorLogic() | ||
965 | + { | ||
966 | + GlStateManager.enableColorLogic(); | ||
967 | + } | ||
968 | + | ||
969 | + public static void glDisableColorLogic() | ||
970 | + { | ||
971 | + GlStateManager.disableColorLogic(); | ||
972 | + } | ||
973 | + | ||
974 | + public static void glColorLogicOp(int opcode) | ||
975 | + { | ||
976 | + GlStateManager.colorLogicOp(opcode); | ||
977 | + } | ||
978 | + | ||
979 | + public static void glEnableTexGenCoord(TexGen tex) | ||
980 | + { | ||
981 | + GlStateManager.enableTexGenCoord(tex); | ||
982 | + } | ||
983 | + | ||
984 | + public static void glDisableTexGenCoord(TexGen tex) | ||
985 | + { | ||
986 | + GlStateManager.disableTexGenCoord(tex); | ||
987 | + } | ||
988 | + | ||
989 | + public static void glTexGeni(TexGen tex, int mode) | ||
990 | + { | ||
991 | + GlStateManager.texGen(tex, mode); | ||
992 | + } | ||
993 | + | ||
994 | + public static void glTexGen(TexGen tex, int pname, FloatBuffer params) | ||
995 | + { | ||
996 | + GlStateManager.func_179105_a(tex, pname, params); | ||
997 | + } | ||
998 | + | ||
999 | + public static void glSetActiveTextureUnit(int texture) | ||
1000 | + { | ||
1001 | + GlStateManager.setActiveTexture(texture); | ||
1002 | + } | ||
1003 | + | ||
1004 | + public static void glEnableTexture2D() | ||
1005 | + { | ||
1006 | + GlStateManager.enableTexture2D(); // TODO OBF MCPTEST func_179098_w - enableTexture2D | ||
1007 | + } | ||
1008 | + | ||
1009 | + public static void glDisableTexture2D() | ||
1010 | + { | ||
1011 | + GlStateManager.disableTexture2D(); // TODO OBF MCPTEST func_179090_x - disableTexture2D | ||
1012 | + } | ||
1013 | + | ||
1014 | + public static int glGenTextures() | ||
1015 | + { | ||
1016 | + return GlStateManager.generateTexture(); // TODO OBF MCPTEST func_179146_y - generateTexture | ||
1017 | + } | ||
1018 | + | ||
1019 | + public static void glDeleteTexture(int textureName) | ||
1020 | + { | ||
1021 | + GlStateManager.deleteTexture(textureName); // TODO OBF MCPTEST func_179150_h - deleteTexture | ||
1022 | + } | ||
1023 | + | ||
1024 | + public static void glBindTexture(int textureName) | ||
1025 | + { | ||
1026 | + GlStateManager.bindTexture(textureName); // TODO OBF MCPTEST func_179144_i - bindTexture | ||
1027 | + } | ||
1028 | + | ||
1029 | + public static void glEnableNormalize() | ||
1030 | + { | ||
1031 | + GlStateManager.enableNormalize(); | ||
1032 | + } | ||
1033 | + | ||
1034 | + public static void glDisableNormalize() | ||
1035 | + { | ||
1036 | + GlStateManager.disableNormalize(); | ||
1037 | + } | ||
1038 | + | ||
1039 | + public static void glShadeModel(int mode) | ||
1040 | + { | ||
1041 | + GlStateManager.shadeModel(mode); | ||
1042 | + } | ||
1043 | + | ||
1044 | + public static void glEnableRescaleNormal() | ||
1045 | + { | ||
1046 | + GlStateManager.enableRescaleNormal(); | ||
1047 | + } | ||
1048 | + | ||
1049 | + public static void glDisableRescaleNormal() | ||
1050 | + { | ||
1051 | + GlStateManager.disableRescaleNormal(); | ||
1052 | + } | ||
1053 | + | ||
1054 | + public static void glViewport(int x, int y, int width, int height) | ||
1055 | + { | ||
1056 | + GlStateManager.viewport(x, y, width, height); | ||
1057 | + } | ||
1058 | + | ||
1059 | + public static void glColorMask(boolean red, boolean green, boolean blue, boolean alpha) | ||
1060 | + { | ||
1061 | + GlStateManager.colorMask(red, green, blue, alpha); | ||
1062 | + } | ||
1063 | + | ||
1064 | + public static void glClearDepth(double depth) | ||
1065 | + { | ||
1066 | + GlStateManager.clearDepth(depth); | ||
1067 | + } | ||
1068 | + | ||
1069 | + public static void glClearColor(float red, float green, float blue, float alpha) | ||
1070 | + { | ||
1071 | + GlStateManager.clearColor(red, green, blue, alpha); | ||
1072 | + } | ||
1073 | + | ||
1074 | + public static void glClear(int mask) | ||
1075 | + { | ||
1076 | + GlStateManager.clear(mask); | ||
1077 | + } | ||
1078 | + | ||
1079 | + public static void glMatrixMode(int mode) | ||
1080 | + { | ||
1081 | + GlStateManager.matrixMode(mode); | ||
1082 | + } | ||
1083 | + | ||
1084 | + public static void glLoadIdentity() | ||
1085 | + { | ||
1086 | + GlStateManager.loadIdentity(); | ||
1087 | + } | ||
1088 | + | ||
1089 | + public static void glPushMatrix() | ||
1090 | + { | ||
1091 | + GlStateManager.pushMatrix(); | ||
1092 | + } | ||
1093 | + | ||
1094 | + public static void glPopMatrix() | ||
1095 | + { | ||
1096 | + GlStateManager.popMatrix(); | ||
1097 | + } | ||
1098 | + | ||
1099 | + public static void glGetFloat(int pname, FloatBuffer params) | ||
1100 | + { | ||
1101 | + GlStateManager.getFloat(pname, params); | ||
1102 | + } | ||
1103 | + | ||
1104 | + public static void glOrtho(double left, double right, double bottom, double top, double zNear, double zFar) | ||
1105 | + { | ||
1106 | + GlStateManager.ortho(left, right, bottom, top, zNear, zFar); | ||
1107 | + } | ||
1108 | + | ||
1109 | + public static void glRotatef(float angle, float x, float y, float z) | ||
1110 | + { | ||
1111 | + GlStateManager.rotate(angle, x, y, z); | ||
1112 | + } | ||
1113 | + | ||
1114 | + public static void glScalef(float x, float y, float z) | ||
1115 | + { | ||
1116 | + GlStateManager.scale(x, y, z); | ||
1117 | + } | ||
1118 | + | ||
1119 | + public static void glScaled(double x, double y, double z) | ||
1120 | + { | ||
1121 | + GlStateManager.scale(x, y, z); | ||
1122 | + } | ||
1123 | + | ||
1124 | + public static void glTranslatef(float x, float y, float z) | ||
1125 | + { | ||
1126 | + GlStateManager.translate(x, y, z); | ||
1127 | + } | ||
1128 | + | ||
1129 | + public static void glTranslated(double x, double y, double z) | ||
1130 | + { | ||
1131 | + GlStateManager.translate(x, y, z); | ||
1132 | + } | ||
1133 | + | ||
1134 | + public static void glMultMatrix(FloatBuffer m) | ||
1135 | + { | ||
1136 | + GlStateManager.multMatrix(m); | ||
1137 | + } | ||
1138 | + | ||
1139 | + public static void glColor4f(float red, float green, float blue, float alpha) | ||
1140 | + { | ||
1141 | + GlStateManager.color(red, green, blue, alpha); | ||
1142 | + } | ||
1143 | + | ||
1144 | + public static void glColor3f(float red, float green, float blue) | ||
1145 | + { | ||
1146 | + GlStateManager.color(red, green, blue, 1.0F); | ||
1147 | + } | ||
1148 | + | ||
1149 | + public static void glResetColor() | ||
1150 | + { | ||
1151 | + GlStateManager.func_179117_G(); | ||
1152 | + } | ||
1153 | + | ||
1154 | + public static void glCallList(int list) | ||
1155 | + { | ||
1156 | + GlStateManager.callList(list); | ||
1157 | + } | ||
1158 | +} |
java/client/com/mumfrey/liteloader/client/util/PrivateFields.java
@@ -139,7 +139,7 @@ public class PrivateFields<P, T> | @@ -139,7 +139,7 @@ public class PrivateFields<P, T> | ||
139 | } | 139 | } |
140 | 140 | ||
141 | public static final PrivateFields<RenderManager, Map> entityRenderMap = new PrivateFields<RenderManager, Map> (RenderManager.class, Obf.entityRenderMap); | 141 | public static final PrivateFields<RenderManager, Map> entityRenderMap = new PrivateFields<RenderManager, Map> (RenderManager.class, Obf.entityRenderMap); |
142 | - public static final PrivateFields<NetHandlerLoginClient, NetworkManager> netManager = new PrivateFields<NetHandlerLoginClient, NetworkManager> (NetHandlerLoginClient.class, Obf.netManager); | 142 | + public static final PrivateFields<NetHandlerLoginClient, NetworkManager> netManager = new PrivateFields<NetHandlerLoginClient, NetworkManager> (NetHandlerLoginClient.class, Obf.networkManager); |
143 | public static final PrivateFields<RegistrySimple, Map> registryObjects = new PrivateFields<RegistrySimple, Map> (RegistrySimple.class, Obf.registryObjects); | 143 | public static final PrivateFields<RegistrySimple, Map> registryObjects = new PrivateFields<RegistrySimple, Map> (RegistrySimple.class, Obf.registryObjects); |
144 | public static final PrivateFields<RegistryNamespaced, ObjectIntIdentityMap> underlyingIntegerMap = new PrivateFields<RegistryNamespaced, ObjectIntIdentityMap>(RegistryNamespaced.class, Obf.underlyingIntegerMap); | 144 | public static final PrivateFields<RegistryNamespaced, ObjectIntIdentityMap> underlyingIntegerMap = new PrivateFields<RegistryNamespaced, ObjectIntIdentityMap>(RegistryNamespaced.class, Obf.underlyingIntegerMap); |
145 | public static final PrivateFields<ObjectIntIdentityMap, IdentityHashMap> identityMap = new PrivateFields<ObjectIntIdentityMap, IdentityHashMap> (ObjectIntIdentityMap.class, Obf.identityMap); | 145 | public static final PrivateFields<ObjectIntIdentityMap, IdentityHashMap> identityMap = new PrivateFields<ObjectIntIdentityMap, IdentityHashMap> (ObjectIntIdentityMap.class, Obf.identityMap); |
java/client/com/mumfrey/liteloader/client/util/render/Icon.java
0 โ 100644
1 | +package com.mumfrey.liteloader.client.util.render; | ||
2 | + | ||
3 | +public interface Icon | ||
4 | +{ | ||
5 | + public abstract int getIconWidth(); | ||
6 | + public abstract int getIconHeight(); | ||
7 | + public abstract float getMinU(); | ||
8 | + public abstract float getMaxU(); | ||
9 | + public abstract float getInterpolatedU(double p_94214_1_); | ||
10 | + public abstract float getMinV(); | ||
11 | + public abstract float getMaxV(); | ||
12 | + public abstract float getInterpolatedV(double p_94207_1_); | ||
13 | + public abstract String getIconName(); | ||
14 | +} |
java/client/com/mumfrey/liteloader/client/util/render/IconTiled.java
1 | package com.mumfrey.liteloader.client.util.render; | 1 | package com.mumfrey.liteloader.client.util.render; |
2 | 2 | ||
3 | -import net.minecraft.util.IIcon; | ||
4 | import net.minecraft.util.ResourceLocation; | 3 | import net.minecraft.util.ResourceLocation; |
5 | 4 | ||
6 | -public class IconTiled implements IIcon | 5 | +public class IconTiled implements Icon |
7 | { | 6 | { |
8 | private ResourceLocation textureResource; | 7 | private ResourceLocation textureResource; |
9 | 8 |
java/client/com/mumfrey/liteloader/util/ModUtilities.java
@@ -24,6 +24,7 @@ import net.minecraft.tileentity.TileEntity; | @@ -24,6 +24,7 @@ import net.minecraft.tileentity.TileEntity; | ||
24 | import net.minecraft.util.ObjectIntIdentityMap; | 24 | import net.minecraft.util.ObjectIntIdentityMap; |
25 | import net.minecraft.util.RegistryNamespaced; | 25 | import net.minecraft.util.RegistryNamespaced; |
26 | import net.minecraft.util.RegistrySimple; | 26 | import net.minecraft.util.RegistrySimple; |
27 | +import net.minecraft.util.ResourceLocation; | ||
27 | 28 | ||
28 | import com.mumfrey.liteloader.client.util.PrivateFields; | 29 | import com.mumfrey.liteloader.client.util.PrivateFields; |
29 | import com.mumfrey.liteloader.core.LiteLoader; | 30 | import com.mumfrey.liteloader.core.LiteLoader; |
@@ -84,11 +85,12 @@ public abstract class ModUtilities | @@ -84,11 +85,12 @@ public abstract class ModUtilities | ||
84 | @SuppressWarnings("unchecked") | 85 | @SuppressWarnings("unchecked") |
85 | public static void addRenderer(Class<? extends Entity> entityClass, Render renderer) | 86 | public static void addRenderer(Class<? extends Entity> entityClass, Render renderer) |
86 | { | 87 | { |
87 | - Map<Class<? extends Entity>, Render> entityRenderMap = PrivateFields.entityRenderMap.get(RenderManager.instance); | 88 | + RenderManager renderManager = Minecraft.getMinecraft().getRenderManager(); |
89 | + | ||
90 | + Map<Class<? extends Entity>, Render> entityRenderMap = PrivateFields.entityRenderMap.get(renderManager); | ||
88 | if (entityRenderMap != null) | 91 | if (entityRenderMap != null) |
89 | { | 92 | { |
90 | entityRenderMap.put(entityClass, renderer); | 93 | entityRenderMap.put(entityClass, renderer); |
91 | - renderer.setRenderManager(RenderManager.instance); | ||
92 | } | 94 | } |
93 | else | 95 | else |
94 | { | 96 | { |
@@ -105,7 +107,7 @@ public abstract class ModUtilities | @@ -105,7 +107,7 @@ public abstract class ModUtilities | ||
105 | { | 107 | { |
106 | Map<Class<? extends TileEntity>, TileEntitySpecialRenderer> specialRendererMap = PrivateFields.specialRendererMap.get(tileEntityRenderer); | 108 | Map<Class<? extends TileEntity>, TileEntitySpecialRenderer> specialRendererMap = PrivateFields.specialRendererMap.get(tileEntityRenderer); |
107 | specialRendererMap.put(tileEntityClass, renderer); | 109 | specialRendererMap.put(tileEntityClass, renderer); |
108 | - renderer.func_147497_a(tileEntityRenderer); // setDispatcher | 110 | + renderer.setRendererDispatcher(tileEntityRenderer); |
109 | } | 111 | } |
110 | catch (Exception ex) | 112 | catch (Exception ex) |
111 | { | 113 | { |
@@ -121,20 +123,20 @@ public abstract class ModUtilities | @@ -121,20 +123,20 @@ public abstract class ModUtilities | ||
121 | * @param block Block to register | 123 | * @param block Block to register |
122 | * @param force Force insertion even if the operation is blocked by FMl | 124 | * @param force Force insertion even if the operation is blocked by FMl |
123 | */ | 125 | */ |
124 | - public static void addBlock(int blockId, String blockName, Block block, boolean force) | 126 | + public static void addBlock(int blockId, ResourceLocation blockName, Block block, boolean force) |
125 | { | 127 | { |
126 | - Block existingBlock = Block.blockRegistry.getObject(blockName); | 128 | + Block existingBlock = (Block)Block.blockRegistry.getObject(blockName); |
127 | 129 | ||
128 | try | 130 | try |
129 | { | 131 | { |
130 | - Block.blockRegistry.addObject(blockId, blockName, block); | 132 | + Block.blockRegistry.register(blockId, blockName, block); |
131 | } | 133 | } |
132 | catch (IllegalArgumentException ex) | 134 | catch (IllegalArgumentException ex) |
133 | { | 135 | { |
134 | if (!force) throw new IllegalArgumentException("Could not register block '" + blockName + "', the operation was blocked by FML.", ex); | 136 | if (!force) throw new IllegalArgumentException("Could not register block '" + blockName + "', the operation was blocked by FML.", ex); |
135 | 137 | ||
136 | ModUtilities.removeObjectFromRegistry(Block.blockRegistry, blockName); | 138 | ModUtilities.removeObjectFromRegistry(Block.blockRegistry, blockName); |
137 | - Block.blockRegistry.addObject(blockId, blockName, block); | 139 | + Block.blockRegistry.register(blockId, blockName, block); |
138 | } | 140 | } |
139 | 141 | ||
140 | if (existingBlock != null) | 142 | if (existingBlock != null) |
@@ -166,20 +168,20 @@ public abstract class ModUtilities | @@ -166,20 +168,20 @@ public abstract class ModUtilities | ||
166 | * @param item Item to register | 168 | * @param item Item to register |
167 | * @param force Force insertion even if the operation is blocked by FMl | 169 | * @param force Force insertion even if the operation is blocked by FMl |
168 | */ | 170 | */ |
169 | - public static void addItem(int itemId, String itemName, Item item, boolean force) | 171 | + public static void addItem(int itemId, ResourceLocation itemName, Item item, boolean force) |
170 | { | 172 | { |
171 | - Item existingItem = Item.itemRegistry.getObject(itemName); | 173 | + Item existingItem = (Item)Item.itemRegistry.getObject(itemName); |
172 | 174 | ||
173 | try | 175 | try |
174 | { | 176 | { |
175 | - Item.itemRegistry.addObject(itemId, itemName, item); | 177 | + Item.itemRegistry.register(itemId, itemName, item); |
176 | } | 178 | } |
177 | catch (IllegalArgumentException ex) | 179 | catch (IllegalArgumentException ex) |
178 | { | 180 | { |
179 | if (!force) throw new IllegalArgumentException("Could not register item '" + itemName + "', the operation was blocked by FML.", ex); | 181 | if (!force) throw new IllegalArgumentException("Could not register item '" + itemName + "', the operation was blocked by FML.", ex); |
180 | 182 | ||
181 | ModUtilities.removeObjectFromRegistry(Block.blockRegistry, itemName); | 183 | ModUtilities.removeObjectFromRegistry(Block.blockRegistry, itemName); |
182 | - Item.itemRegistry.addObject(itemId, itemName, item); | 184 | + Item.itemRegistry.register(itemId, itemName, item); |
183 | } | 185 | } |
184 | 186 | ||
185 | if (existingItem != null) | 187 | if (existingItem != null) |
@@ -269,15 +271,15 @@ public abstract class ModUtilities | @@ -269,15 +271,15 @@ public abstract class ModUtilities | ||
269 | } | 271 | } |
270 | 272 | ||
271 | @SuppressWarnings("unchecked") | 273 | @SuppressWarnings("unchecked") |
272 | - private static <K, V> V removeObjectFromRegistry(RegistrySimple<K, V> registry, K key) | 274 | + private static <K, V> V removeObjectFromRegistry(RegistrySimple registry, K key) |
273 | { | 275 | { |
274 | if (registry == null) return null; | 276 | if (registry == null) return null; |
275 | 277 | ||
276 | - ObjectIntIdentityMap<V> underlyingIntegerMap = null; | 278 | + ObjectIntIdentityMap underlyingIntegerMap = null; |
277 | 279 | ||
278 | if (registry instanceof RegistryNamespaced) | 280 | if (registry instanceof RegistryNamespaced) |
279 | { | 281 | { |
280 | - RegistryNamespaced<V> rns = (RegistryNamespaced<V>)registry; | 282 | + RegistryNamespaced rns = (RegistryNamespaced)registry; |
281 | underlyingIntegerMap = PrivateFields.underlyingIntegerMap.get(rns); | 283 | underlyingIntegerMap = PrivateFields.underlyingIntegerMap.get(rns); |
282 | } | 284 | } |
283 | 285 |
java/common/com/mumfrey/liteloader/PluginChannelListener.java
1 | package com.mumfrey.liteloader; | 1 | package com.mumfrey.liteloader; |
2 | 2 | ||
3 | +import net.minecraft.network.PacketBuffer; | ||
4 | + | ||
3 | import com.mumfrey.liteloader.core.CommonPluginChannelListener; | 5 | import com.mumfrey.liteloader.core.CommonPluginChannelListener; |
4 | 6 | ||
5 | /** | 7 | /** |
@@ -13,8 +15,7 @@ public interface PluginChannelListener extends CommonPluginChannelListener, Join | @@ -13,8 +15,7 @@ public interface PluginChannelListener extends CommonPluginChannelListener, Join | ||
13 | * Called when a custom payload packet arrives on a channel this mod has registered | 15 | * Called when a custom payload packet arrives on a channel this mod has registered |
14 | * | 16 | * |
15 | * @param channel Channel on which the custom payload was received | 17 | * @param channel Channel on which the custom payload was received |
16 | - * @param length Length of the custom payload data | ||
17 | * @param data Custom payload data | 18 | * @param data Custom payload data |
18 | */ | 19 | */ |
19 | - public abstract void onCustomPayload(String channel, int length, byte[] data); | 20 | + public abstract void onCustomPayload(String channel, PacketBuffer data); |
20 | } | 21 | } |
java/common/com/mumfrey/liteloader/PreJoinGameListener.java
@@ -12,15 +12,12 @@ import net.minecraft.network.play.server.S01PacketJoinGame; | @@ -12,15 +12,12 @@ import net.minecraft.network.play.server.S01PacketJoinGame; | ||
12 | public interface PreJoinGameListener extends LiteMod | 12 | public interface PreJoinGameListener extends LiteMod |
13 | { | 13 | { |
14 | /** | 14 | /** |
15 | - * Called on login | 15 | + * Called before login. NOTICE: as of 1.8 the return value of this method has a different meaning! |
16 | * | 16 | * |
17 | * @param netHandler Net handler | 17 | * @param netHandler Net handler |
18 | * @param joinGamePacket Join game packet | 18 | * @param joinGamePacket Join game packet |
19 | * | 19 | * |
20 | - * @return true to cancel the event | ||
21 | - * @deprecated this event's return code is not compatible with other events expressing the same pattern, | ||
22 | - * it will be replaced in the next release with a method whose return value is boolean to NOT cancel | 20 | + * @return true to allow login to continue, false to cancel login |
23 | */ | 21 | */ |
24 | - @Deprecated | ||
25 | public abstract boolean onPreJoinGame(INetHandler netHandler, S01PacketJoinGame joinGamePacket); | 22 | public abstract boolean onPreJoinGame(INetHandler netHandler, S01PacketJoinGame joinGamePacket); |
26 | } | 23 | } |
java/common/com/mumfrey/liteloader/ServerPluginChannelListener.java
1 | package com.mumfrey.liteloader; | 1 | package com.mumfrey.liteloader; |
2 | 2 | ||
3 | import net.minecraft.entity.player.EntityPlayerMP; | 3 | import net.minecraft.entity.player.EntityPlayerMP; |
4 | +import net.minecraft.network.PacketBuffer; | ||
4 | 5 | ||
5 | import com.mumfrey.liteloader.core.CommonPluginChannelListener; | 6 | import com.mumfrey.liteloader.core.CommonPluginChannelListener; |
6 | 7 | ||
@@ -13,10 +14,10 @@ public interface ServerPluginChannelListener extends CommonPluginChannelListener | @@ -13,10 +14,10 @@ public interface ServerPluginChannelListener extends CommonPluginChannelListener | ||
13 | { | 14 | { |
14 | /** | 15 | /** |
15 | * Called when a custom payload packet arrives on a channel this mod has registered | 16 | * Called when a custom payload packet arrives on a channel this mod has registered |
16 | - * | 17 | + * |
18 | + * @param sender Player object which is the source of this message | ||
17 | * @param channel Channel on which the custom payload was received | 19 | * @param channel Channel on which the custom payload was received |
18 | - * @param length Length of the custom payload data | ||
19 | * @param data Custom payload data | 20 | * @param data Custom payload data |
20 | */ | 21 | */ |
21 | - public abstract void onCustomPayload(EntityPlayerMP sender, String channel, int length, byte[] data); | 22 | + public abstract void onCustomPayload(EntityPlayerMP sender, String channel, PacketBuffer data); |
22 | } | 23 | } |
java/common/com/mumfrey/liteloader/api/BrandingProvider.java
@@ -2,9 +2,10 @@ package com.mumfrey.liteloader.api; | @@ -2,9 +2,10 @@ package com.mumfrey.liteloader.api; | ||
2 | 2 | ||
3 | import java.net.URI; | 3 | import java.net.URI; |
4 | 4 | ||
5 | -import net.minecraft.util.IIcon; | ||
6 | import net.minecraft.util.ResourceLocation; | 5 | import net.minecraft.util.ResourceLocation; |
7 | 6 | ||
7 | +import com.mumfrey.liteloader.client.util.render.Icon; | ||
8 | + | ||
8 | /** | 9 | /** |
9 | * LiteLoader Extensible API - Branding Provider | 10 | * LiteLoader Extensible API - Branding Provider |
10 | * | 11 | * |
@@ -50,7 +51,7 @@ public interface BrandingProvider extends CustomisationProvider | @@ -50,7 +51,7 @@ public interface BrandingProvider extends CustomisationProvider | ||
50 | * Gets the coordinates of the logo as an IIcon instance, only called if getLogoResource() returns | 51 | * Gets the coordinates of the logo as an IIcon instance, only called if getLogoResource() returns |
51 | * a non-null value and the logo will only be used if BOTH methods return a valid object. | 52 | * a non-null value and the logo will only be used if BOTH methods return a valid object. |
52 | */ | 53 | */ |
53 | - public abstract IIcon getLogoCoords(); | 54 | + public abstract Icon getLogoCoords(); |
54 | 55 | ||
55 | /** | 56 | /** |
56 | * Get the resource to use for the icon logo (the chicken in the default setup), the API with the | 57 | * Get the resource to use for the icon logo (the chicken in the default setup), the API with the |
@@ -63,7 +64,7 @@ public interface BrandingProvider extends CustomisationProvider | @@ -63,7 +64,7 @@ public interface BrandingProvider extends CustomisationProvider | ||
63 | * Gets the coordinates of the icon logo as an IIcon instance, only called if getIconResource() | 64 | * Gets the coordinates of the icon logo as an IIcon instance, only called if getIconResource() |
64 | * returns a non-null value and the icon will only be used if BOTH methods return a valid object. | 65 | * returns a non-null value and the icon will only be used if BOTH methods return a valid object. |
65 | */ | 66 | */ |
66 | - public abstract IIcon getIconCoords(); | 67 | + public abstract Icon getIconCoords(); |
67 | 68 | ||
68 | /** | 69 | /** |
69 | * Get the display name for this API, used on the "about" screen, must not return null | 70 | * Get the display name for this API, used on the "about" screen, must not return null |
@@ -97,5 +98,5 @@ public interface BrandingProvider extends CustomisationProvider | @@ -97,5 +98,5 @@ public interface BrandingProvider extends CustomisationProvider | ||
97 | * If you wish to display a clickable twitter icon next to the API information, return the icon | 98 | * If you wish to display a clickable twitter icon next to the API information, return the icon |
98 | * coordinates here. | 99 | * coordinates here. |
99 | */ | 100 | */ |
100 | - public abstract IIcon getTwitterAvatarCoords(); | 101 | + public abstract Icon getTwitterAvatarCoords(); |
101 | } | 102 | } |
java/common/com/mumfrey/liteloader/api/EnumerationObserver.java
0 โ 100644
1 | +package com.mumfrey.liteloader.api; | ||
2 | + | ||
3 | +import java.io.File; | ||
4 | + | ||
5 | +import com.mumfrey.liteloader.core.ModInfo; | ||
6 | +import com.mumfrey.liteloader.interfaces.LoadableMod; | ||
7 | +import com.mumfrey.liteloader.interfaces.LoaderEnumerator; | ||
8 | +import com.mumfrey.liteloader.interfaces.LoaderEnumerator.DisabledReason; | ||
9 | +import com.mumfrey.liteloader.interfaces.TweakContainer; | ||
10 | + | ||
11 | +/** | ||
12 | + * LiteLoader Extensible API - Enumeration observer | ||
13 | + * | ||
14 | + * EnumerationObserver receive callbacks when mod containers are enumerated. Instances of this class MUST be returned from | ||
15 | + * getPreInitObservers in order to work | ||
16 | + * | ||
17 | + * @author Adam Mummery-Smith | ||
18 | + */ | ||
19 | +public interface EnumerationObserver extends Observer | ||
20 | +{ | ||
21 | + /** | ||
22 | + * Called upon registration for every discovered container which is enabled | ||
23 | + * | ||
24 | + * @param enumerator | ||
25 | + * @param container | ||
26 | + */ | ||
27 | + public abstract void onRegisterEnabledContainer(LoaderEnumerator enumerator, LoadableMod<?> container); | ||
28 | + | ||
29 | + /** | ||
30 | + * Called upon registration for every discovered container which is currently disabled, either because | ||
31 | + * | ||
32 | + * @param enumerator | ||
33 | + * @param container | ||
34 | + * @param reason | ||
35 | + */ | ||
36 | + public abstract void onRegisterDisabledContainer(LoaderEnumerator enumerator, LoadableMod<?> container, DisabledReason reason); | ||
37 | + | ||
38 | + /** | ||
39 | + * Called AFTER registration of an ENABLED container (eg. onRegisterEnabledContainer will be called first) if that container also | ||
40 | + * contains tweaks. | ||
41 | + * | ||
42 | + * @param enumerator | ||
43 | + * @param container | ||
44 | + */ | ||
45 | + public abstract void onRegisterTweakContainer(LoaderEnumerator enumerator, TweakContainer<File> container); | ||
46 | + | ||
47 | + /** | ||
48 | + * Called when a mod container is added to the pending mods list. This does not mean that the specific mod will actually be instanced since | ||
49 | + * the mod can still be disabled via the exclusion list (this is to allow entire containers to be disabled or just individual mods) and so | ||
50 | + * if you wish to observe actual mod instantiation you should still provide a {@link ModLoadObserver}. However this event expresses a | ||
51 | + * declaration by the enumerator of an intention to load the specified mod. | ||
52 | + * | ||
53 | + * @param enumerator | ||
54 | + * @param mod | ||
55 | + */ | ||
56 | + public abstract void onModAdded(LoaderEnumerator enumerator, ModInfo<LoadableMod<?>> mod); | ||
57 | +} |
java/common/com/mumfrey/liteloader/api/LiteAPI.java
@@ -58,14 +58,6 @@ public interface LiteAPI | @@ -58,14 +58,6 @@ public interface LiteAPI | ||
58 | public abstract String[] getRequiredDownstreamTransformers(); | 58 | public abstract String[] getRequiredDownstreamTransformers(); |
59 | 59 | ||
60 | /** | 60 | /** |
61 | - * Should return an array of required packet transformer names, these transformers will be injected UPSTREAM. Can return null. | ||
62 | - * | ||
63 | - * Deprecated - will be removed in 1.8 | ||
64 | - */ | ||
65 | - @Deprecated | ||
66 | - public abstract String[] getPacketTransformers(); | ||
67 | - | ||
68 | - /** | ||
69 | * Return a mod class prefix supported by this API, can return null if an API just wants to use "LiteMod" as a standard class name prefix | 61 | * Return a mod class prefix supported by this API, can return null if an API just wants to use "LiteMod" as a standard class name prefix |
70 | */ | 62 | */ |
71 | public abstract String getModClassPrefix(); | 63 | public abstract String getModClassPrefix(); |
@@ -86,7 +78,14 @@ public interface LiteAPI | @@ -86,7 +78,14 @@ public interface LiteAPI | ||
86 | public abstract List<InterfaceProvider> getInterfaceProviders(); | 78 | public abstract List<InterfaceProvider> getInterfaceProviders(); |
87 | 79 | ||
88 | /** | 80 | /** |
89 | - * Should return a list of Observers for this API, can return null if the API doesn't have any Observers, (almost) guaranteed to only be called once | 81 | + * Should return a list of Observers which are safe to instantiate during pre-init, for example EnumerationObservers. Can return null if the API doesn't have any |
82 | + * Observers. | ||
83 | + */ | ||
84 | + public abstract List<Observer> getPreInitObservers(); | ||
85 | + | ||
86 | + /** | ||
87 | + * Should return a list of Observers for this API, can return null if the API doesn't have any Observers, (almost) guaranteed to only be called once. This list may | ||
88 | + * include Observers returned by getPreInitObservers if the observers are still required. | ||
90 | */ | 89 | */ |
91 | public abstract List<Observer> getObservers(); | 90 | public abstract List<Observer> getObservers(); |
92 | 91 |
java/common/com/mumfrey/liteloader/api/manager/APIAdapter.java
@@ -25,12 +25,6 @@ public interface APIAdapter | @@ -25,12 +25,6 @@ public interface APIAdapter | ||
25 | public abstract List<String> getRequiredDownstreamTransformers(); | 25 | public abstract List<String> getRequiredDownstreamTransformers(); |
26 | 26 | ||
27 | /** | 27 | /** |
28 | - * Aggregate and return required packet transformers from all registered APIs | ||
29 | - */ | ||
30 | - @Deprecated | ||
31 | - public abstract List<String> getPacketTransformers(); | ||
32 | - | ||
33 | - /** | ||
34 | * Register interfaces from all registered APIs with the specified registry | 28 | * Register interfaces from all registered APIs with the specified registry |
35 | */ | 29 | */ |
36 | public abstract void registerInterfaces(InterfaceRegistry interfaceManager); | 30 | public abstract void registerInterfaces(InterfaceRegistry interfaceManager); |
@@ -65,4 +59,16 @@ public interface APIAdapter | @@ -65,4 +59,16 @@ public interface APIAdapter | ||
65 | * @param observerType type of observer to search for | 59 | * @param observerType type of observer to search for |
66 | */ | 60 | */ |
67 | public abstract <T extends Observer> List<T> getAllObservers(Class<T> observerType); | 61 | public abstract <T extends Observer> List<T> getAllObservers(Class<T> observerType); |
62 | + | ||
63 | + /** | ||
64 | + * @param api | ||
65 | + * @return | ||
66 | + */ | ||
67 | + public abstract List<? extends Observer> getPreInitObservers(LiteAPI api); | ||
68 | + | ||
69 | + /** | ||
70 | + * @param observerType | ||
71 | + * @return | ||
72 | + */ | ||
73 | + public abstract <T extends Observer> List<T> getPreInitObservers(Class<T> observerType); | ||
68 | } | 74 | } |
java/common/com/mumfrey/liteloader/api/manager/APIProviderBasic.java
@@ -36,6 +36,11 @@ class APIProviderBasic implements APIProvider, APIAdapter | @@ -36,6 +36,11 @@ class APIProviderBasic implements APIProvider, APIAdapter | ||
36 | private final Map<LiteAPI, List<? extends Observer>> observers = new HashMap<LiteAPI, List<? extends Observer>>(); | 36 | private final Map<LiteAPI, List<? extends Observer>> observers = new HashMap<LiteAPI, List<? extends Observer>>(); |
37 | 37 | ||
38 | /** | 38 | /** |
39 | + * Cached preinit observers | ||
40 | + */ | ||
41 | + private final Map<LiteAPI, List<? extends Observer>> preInitiObservers = new HashMap<LiteAPI, List<? extends Observer>>(); | ||
42 | + | ||
43 | + /** | ||
39 | * Cached CoreProvider set | 44 | * Cached CoreProvider set |
40 | */ | 45 | */ |
41 | private List<CoreProvider> coreProviders; | 46 | private List<CoreProvider> coreProviders; |
@@ -91,26 +96,6 @@ class APIProviderBasic implements APIProvider, APIAdapter | @@ -91,26 +96,6 @@ class APIProviderBasic implements APIProvider, APIAdapter | ||
91 | } | 96 | } |
92 | 97 | ||
93 | /* (non-Javadoc) | 98 | /* (non-Javadoc) |
94 | - * @see com.mumfrey.liteloader.api.manager.APIProvider#getPacketTransformers() | ||
95 | - */ | ||
96 | - @Override | ||
97 | - public List<String> getPacketTransformers() | ||
98 | - { | ||
99 | - List<String> packetTransformers = new ArrayList<String>(); | ||
100 | - | ||
101 | - for (LiteAPI api : this.apis) | ||
102 | - { | ||
103 | - String[] apiTransformers = api.getPacketTransformers(); | ||
104 | - if (apiTransformers != null) | ||
105 | - { | ||
106 | - packetTransformers.addAll(Arrays.asList(apiTransformers)); | ||
107 | - } | ||
108 | - } | ||
109 | - | ||
110 | - return packetTransformers; | ||
111 | - } | ||
112 | - | ||
113 | - /* (non-Javadoc) | ||
114 | * @see com.mumfrey.liteloader.api.manager.APIProvider#getObservers(com.mumfrey.liteloader.api.LiteAPI) | 99 | * @see com.mumfrey.liteloader.api.manager.APIProvider#getObservers(com.mumfrey.liteloader.api.LiteAPI) |
115 | */ | 100 | */ |
116 | @Override | 101 | @Override |
@@ -125,6 +110,18 @@ class APIProviderBasic implements APIProvider, APIAdapter | @@ -125,6 +110,18 @@ class APIProviderBasic implements APIProvider, APIAdapter | ||
125 | return this.observers.get(api); | 110 | return this.observers.get(api); |
126 | } | 111 | } |
127 | 112 | ||
113 | + @Override | ||
114 | + public List<? extends Observer> getPreInitObservers(LiteAPI api) | ||
115 | + { | ||
116 | + if (!this.preInitiObservers.containsKey(api)) | ||
117 | + { | ||
118 | + List<Observer> apiObservers = api.getPreInitObservers(); | ||
119 | + this.preInitiObservers.put(api, Collections.unmodifiableList(apiObservers != null ? apiObservers : new ArrayList<Observer>())); | ||
120 | + } | ||
121 | + | ||
122 | + return this.preInitiObservers.get(api); | ||
123 | + } | ||
124 | + | ||
128 | @SuppressWarnings("unchecked") | 125 | @SuppressWarnings("unchecked") |
129 | @Override | 126 | @Override |
130 | public <T extends Observer> List<T> getObservers(LiteAPI api, Class<T> observerType) | 127 | public <T extends Observer> List<T> getObservers(LiteAPI api, Class<T> observerType) |
@@ -160,6 +157,25 @@ class APIProviderBasic implements APIProvider, APIAdapter | @@ -160,6 +157,25 @@ class APIProviderBasic implements APIProvider, APIAdapter | ||
160 | 157 | ||
161 | return matchingObservers; | 158 | return matchingObservers; |
162 | } | 159 | } |
160 | + | ||
161 | + @SuppressWarnings("unchecked") | ||
162 | + @Override | ||
163 | + public <T extends Observer> List<T> getPreInitObservers(Class<T> observerType) | ||
164 | + { | ||
165 | + List<T> matchingObservers = new ArrayList<T>(); | ||
166 | + for (LiteAPI api : this.apis) | ||
167 | + { | ||
168 | + for (Observer observer : this.getPreInitObservers(api)) | ||
169 | + { | ||
170 | + if (observerType.isAssignableFrom(observer.getClass()) && !matchingObservers.contains(observer)) | ||
171 | + { | ||
172 | + matchingObservers.add((T)observer); | ||
173 | + } | ||
174 | + } | ||
175 | + } | ||
176 | + | ||
177 | + return matchingObservers; | ||
178 | + } | ||
163 | 179 | ||
164 | /* (non-Javadoc) | 180 | /* (non-Javadoc) |
165 | * @see com.mumfrey.liteloader.api.manager.APIProvider#registerInterfaceProviders(com.mumfrey.liteloader.core.InterfaceManager) | 181 | * @see com.mumfrey.liteloader.api.manager.APIProvider#registerInterfaceProviders(com.mumfrey.liteloader.core.InterfaceManager) |
java/common/com/mumfrey/liteloader/core/ClientPluginChannels.java
1 | package com.mumfrey.liteloader.core; | 1 | package com.mumfrey.liteloader.core; |
2 | 2 | ||
3 | import net.minecraft.network.INetHandler; | 3 | import net.minecraft.network.INetHandler; |
4 | +import net.minecraft.network.PacketBuffer; | ||
4 | import net.minecraft.network.play.server.S3FPacketCustomPayload; | 5 | import net.minecraft.network.play.server.S3FPacketCustomPayload; |
5 | 6 | ||
6 | import com.mumfrey.liteloader.PluginChannelListener; | 7 | import com.mumfrey.liteloader.PluginChannelListener; |
@@ -78,7 +79,7 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | @@ -78,7 +79,7 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | ||
78 | * @param channel | 79 | * @param channel |
79 | * @param data | 80 | * @param data |
80 | */ | 81 | */ |
81 | - protected void onPluginChannelMessage(String channel, byte[] data) | 82 | + protected void onPluginChannelMessage(String channel, PacketBuffer data) |
82 | { | 83 | { |
83 | if (PluginChannels.CHANNEL_REGISTER.equals(channel)) | 84 | if (PluginChannels.CHANNEL_REGISTER.equals(channel)) |
84 | { | 85 | { |
@@ -91,12 +92,12 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | @@ -91,12 +92,12 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | ||
91 | PermissionsManagerClient permissionsManager = LiteLoader.getClientPermissionsManager(); | 92 | PermissionsManagerClient permissionsManager = LiteLoader.getClientPermissionsManager(); |
92 | if (permissionsManager != null) | 93 | if (permissionsManager != null) |
93 | { | 94 | { |
94 | - permissionsManager.onCustomPayload(channel, data.length, data); | 95 | + permissionsManager.onCustomPayload(channel, data); |
95 | } | 96 | } |
96 | } | 97 | } |
97 | catch (Exception ex) {} | 98 | catch (Exception ex) {} |
98 | 99 | ||
99 | - this.onModPacketReceived(channel, data, data.length); | 100 | + this.onModPacketReceived(channel, data); |
100 | } | 101 | } |
101 | } | 102 | } |
102 | 103 | ||
@@ -105,13 +106,13 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | @@ -105,13 +106,13 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | ||
105 | * @param data | 106 | * @param data |
106 | * @param length | 107 | * @param length |
107 | */ | 108 | */ |
108 | - protected void onModPacketReceived(String channel, byte[] data, int length) | 109 | + protected void onModPacketReceived(String channel, PacketBuffer data) |
109 | { | 110 | { |
110 | for (PluginChannelListener pluginChannelListener : this.pluginChannels.get(channel)) | 111 | for (PluginChannelListener pluginChannelListener : this.pluginChannels.get(channel)) |
111 | { | 112 | { |
112 | try | 113 | try |
113 | { | 114 | { |
114 | - pluginChannelListener.onCustomPayload(channel, length, data); | 115 | + pluginChannelListener.onCustomPayload(channel, data); |
115 | throw new RuntimeException(); | 116 | throw new RuntimeException(); |
116 | } | 117 | } |
117 | catch (Exception ex) | 118 | catch (Exception ex) |
@@ -146,7 +147,7 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | @@ -146,7 +147,7 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | ||
146 | this.addPluginChannelsFor(pluginChannelListener); | 147 | this.addPluginChannelsFor(pluginChannelListener); |
147 | } | 148 | } |
148 | 149 | ||
149 | - byte[] registrationData = this.getRegistrationData(); | 150 | + PacketBuffer registrationData = this.getRegistrationData(); |
150 | if (registrationData != null) | 151 | if (registrationData != null) |
151 | { | 152 | { |
152 | this.sendRegistrationData(netHandler, registrationData); | 153 | this.sendRegistrationData(netHandler, registrationData); |
@@ -162,7 +163,7 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | @@ -162,7 +163,7 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | ||
162 | * @param netHandler | 163 | * @param netHandler |
163 | * @param registrationData | 164 | * @param registrationData |
164 | */ | 165 | */ |
165 | - protected abstract void sendRegistrationData(INetHandler netHandler, byte[] registrationData); | 166 | + protected abstract void sendRegistrationData(INetHandler netHandler, PacketBuffer registrationData); |
166 | 167 | ||
167 | /** | 168 | /** |
168 | * Send a message to the server on a plugin channel | 169 | * Send a message to the server on a plugin channel |
@@ -170,7 +171,7 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | @@ -170,7 +171,7 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | ||
170 | * @param channel Channel to send, must not be a reserved channel name | 171 | * @param channel Channel to send, must not be a reserved channel name |
171 | * @param data | 172 | * @param data |
172 | */ | 173 | */ |
173 | - public static boolean sendMessage(String channel, byte[] data, ChannelPolicy policy) | 174 | + public static boolean sendMessage(String channel, PacketBuffer data, ChannelPolicy policy) |
174 | { | 175 | { |
175 | if (ClientPluginChannels.instance != null) | 176 | if (ClientPluginChannels.instance != null) |
176 | { | 177 | { |
@@ -186,5 +187,5 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | @@ -186,5 +187,5 @@ public abstract class ClientPluginChannels extends PluginChannels<PluginChannelL | ||
186 | * @param channel Channel to send, must not be a reserved channel name | 187 | * @param channel Channel to send, must not be a reserved channel name |
187 | * @param data | 188 | * @param data |
188 | */ | 189 | */ |
189 | - protected abstract boolean send(String channel, byte[] data, ChannelPolicy policy); | 190 | + protected abstract boolean send(String channel, PacketBuffer data, ChannelPolicy policy); |
190 | } | 191 | } |
java/common/com/mumfrey/liteloader/core/LiteLoader.java
@@ -12,6 +12,7 @@ import net.minecraft.client.resources.IResourcePack; | @@ -12,6 +12,7 @@ import net.minecraft.client.resources.IResourcePack; | ||
12 | import net.minecraft.crash.CrashReport; | 12 | import net.minecraft.crash.CrashReport; |
13 | import net.minecraft.crash.CrashReportCategory; | 13 | import net.minecraft.crash.CrashReportCategory; |
14 | import net.minecraft.launchwrapper.LaunchClassLoader; | 14 | import net.minecraft.launchwrapper.LaunchClassLoader; |
15 | +import net.minecraft.network.EnumConnectionState; | ||
15 | import net.minecraft.network.INetHandler; | 16 | import net.minecraft.network.INetHandler; |
16 | import net.minecraft.network.play.server.S01PacketJoinGame; | 17 | import net.minecraft.network.play.server.S01PacketJoinGame; |
17 | import net.minecraft.profiler.Profiler; | 18 | import net.minecraft.profiler.Profiler; |
@@ -51,6 +52,7 @@ import com.mumfrey.liteloader.modconfig.ConfigManager; | @@ -51,6 +52,7 @@ import com.mumfrey.liteloader.modconfig.ConfigManager; | ||
51 | import com.mumfrey.liteloader.modconfig.Exposable; | 52 | import com.mumfrey.liteloader.modconfig.Exposable; |
52 | import com.mumfrey.liteloader.permissions.PermissionsManagerClient; | 53 | import com.mumfrey.liteloader.permissions.PermissionsManagerClient; |
53 | import com.mumfrey.liteloader.permissions.PermissionsManagerServer; | 54 | import com.mumfrey.liteloader.permissions.PermissionsManagerServer; |
55 | +import com.mumfrey.liteloader.transformers.event.EventTransformer; | ||
54 | import com.mumfrey.liteloader.util.Input; | 56 | import com.mumfrey.liteloader.util.Input; |
55 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | 57 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
56 | 58 | ||
@@ -568,6 +570,19 @@ public final class LiteLoader | @@ -568,6 +570,19 @@ public final class LiteLoader | ||
568 | return "true".equals(System.getProperty("mcpenv")); | 570 | return "true".equals(System.getProperty("mcpenv")); |
569 | } | 571 | } |
570 | 572 | ||
573 | + public static void dumpDebugInfo() | ||
574 | + { | ||
575 | + if (LiteLoaderLogger.DEBUG) | ||
576 | + { | ||
577 | + EventTransformer.dumpInjectionState(); | ||
578 | + LiteLoaderLogger.info("Debug info dumped to console"); | ||
579 | + } | ||
580 | + else | ||
581 | + { | ||
582 | + LiteLoaderLogger.info("Debug dump not available, developer flag not enabled"); | ||
583 | + } | ||
584 | + } | ||
585 | + | ||
571 | /** | 586 | /** |
572 | * Used for crash reporting, returns a text list of all loaded mods | 587 | * Used for crash reporting, returns a text list of all loaded mods |
573 | * | 588 | * |
@@ -914,6 +929,9 @@ public final class LiteLoader | @@ -914,6 +929,9 @@ public final class LiteLoader | ||
914 | } | 929 | } |
915 | 930 | ||
916 | MessageBus.getInstance().onStartupComplete(); | 931 | MessageBus.getInstance().onStartupComplete(); |
932 | + | ||
933 | + // Force packet injections | ||
934 | + EnumConnectionState.values(); | ||
917 | } | 935 | } |
918 | 936 | ||
919 | /** | 937 | /** |
java/common/com/mumfrey/liteloader/core/LiteLoaderBootstrap.java
@@ -716,15 +716,11 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP | @@ -716,15 +716,11 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP | ||
716 | @Override | 716 | @Override |
717 | public List<String> getRequiredDownstreamTransformers() | 717 | public List<String> getRequiredDownstreamTransformers() |
718 | { | 718 | { |
719 | - return this.apiAdapter.getRequiredDownstreamTransformers(); | 719 | + List<String> requiredDownstreamTransformers = this.apiAdapter.getRequiredDownstreamTransformers(); |
720 | + requiredDownstreamTransformers.add(0, "com.mumfrey.liteloader.transformers.event.EventTransformer"); | ||
721 | + return requiredDownstreamTransformers; | ||
720 | } | 722 | } |
721 | 723 | ||
722 | - @Override | ||
723 | - public List<String> getPacketTransformers() | ||
724 | - { | ||
725 | - return this.apiAdapter.getPacketTransformers(); | ||
726 | - } | ||
727 | - | ||
728 | private static int tryParseInt(String string, int defaultValue) | 724 | private static int tryParseInt(String string, int defaultValue) |
729 | { | 725 | { |
730 | try | 726 | try |
java/common/com/mumfrey/liteloader/core/LiteLoaderEnumerator.java
@@ -19,13 +19,16 @@ import net.minecraft.launchwrapper.LaunchClassLoader; | @@ -19,13 +19,16 @@ import net.minecraft.launchwrapper.LaunchClassLoader; | ||
19 | 19 | ||
20 | import com.google.common.base.Throwables; | 20 | import com.google.common.base.Throwables; |
21 | import com.mumfrey.liteloader.LiteMod; | 21 | import com.mumfrey.liteloader.LiteMod; |
22 | +import com.mumfrey.liteloader.api.EnumerationObserver; | ||
22 | import com.mumfrey.liteloader.api.EnumeratorModule; | 23 | import com.mumfrey.liteloader.api.EnumeratorModule; |
23 | import com.mumfrey.liteloader.api.LiteAPI; | 24 | import com.mumfrey.liteloader.api.LiteAPI; |
24 | import com.mumfrey.liteloader.api.manager.APIProvider; | 25 | import com.mumfrey.liteloader.api.manager.APIProvider; |
26 | +import com.mumfrey.liteloader.core.event.HandlerList; | ||
25 | import com.mumfrey.liteloader.core.exceptions.OutdatedLoaderException; | 27 | import com.mumfrey.liteloader.core.exceptions.OutdatedLoaderException; |
26 | -import com.mumfrey.liteloader.interfaces.LoaderEnumerator; | 28 | +import com.mumfrey.liteloader.interfaces.FastIterableDeque; |
27 | import com.mumfrey.liteloader.interfaces.Loadable; | 29 | import com.mumfrey.liteloader.interfaces.Loadable; |
28 | import com.mumfrey.liteloader.interfaces.LoadableMod; | 30 | import com.mumfrey.liteloader.interfaces.LoadableMod; |
31 | +import com.mumfrey.liteloader.interfaces.LoaderEnumerator; | ||
29 | import com.mumfrey.liteloader.interfaces.TweakContainer; | 32 | import com.mumfrey.liteloader.interfaces.TweakContainer; |
30 | import com.mumfrey.liteloader.launch.LiteLoaderTweaker; | 33 | import com.mumfrey.liteloader.launch.LiteLoaderTweaker; |
31 | import com.mumfrey.liteloader.launch.LoaderEnvironment; | 34 | import com.mumfrey.liteloader.launch.LoaderEnvironment; |
@@ -114,6 +117,8 @@ public class LiteLoaderEnumerator implements LoaderEnumerator | @@ -114,6 +117,8 @@ public class LiteLoaderEnumerator implements LoaderEnumerator | ||
114 | 117 | ||
115 | private final String[] supportedPrefixes; | 118 | private final String[] supportedPrefixes; |
116 | 119 | ||
120 | + private final FastIterableDeque<EnumerationObserver> observers = new HandlerList<EnumerationObserver>(EnumerationObserver.class); | ||
121 | + | ||
117 | protected EnumeratorState state = EnumeratorState.INIT; | 122 | protected EnumeratorState state = EnumeratorState.INIT; |
118 | 123 | ||
119 | /** | 124 | /** |
@@ -129,6 +134,9 @@ public class LiteLoaderEnumerator implements LoaderEnumerator | @@ -129,6 +134,9 @@ public class LiteLoaderEnumerator implements LoaderEnumerator | ||
129 | this.tweaker = (LiteLoaderTweaker)environment.getTweaker(); | 134 | this.tweaker = (LiteLoaderTweaker)environment.getTweaker(); |
130 | this.classLoader = classLoader; | 135 | this.classLoader = classLoader; |
131 | this.supportedPrefixes = this.getSupportedPrefixes(environment); | 136 | this.supportedPrefixes = this.getSupportedPrefixes(environment); |
137 | + | ||
138 | + // Initialise observers | ||
139 | + this.observers.addAll(environment.getAPIAdapter().getPreInitObservers(EnumerationObserver.class)); | ||
132 | 140 | ||
133 | // Initialise the shared mod list if we haven't already | 141 | // Initialise the shared mod list if we haven't already |
134 | this.getSharedModList(); | 142 | this.getSharedModList(); |
@@ -459,21 +467,21 @@ public class LiteLoaderEnumerator implements LoaderEnumerator | @@ -459,21 +467,21 @@ public class LiteLoaderEnumerator implements LoaderEnumerator | ||
459 | if (!container.isEnabled(this.environment)) | 467 | if (!container.isEnabled(this.environment)) |
460 | { | 468 | { |
461 | LiteLoaderLogger.info("Container %s is disabled", container.getLocation()); | 469 | LiteLoaderLogger.info("Container %s is disabled", container.getLocation()); |
462 | - this.registerDisabledContainer(container); | 470 | + this.registerDisabledContainer(container, DisabledReason.USER_DISABLED); |
463 | return false; | 471 | return false; |
464 | } | 472 | } |
465 | 473 | ||
466 | if (!this.checkDependencies(container)) | 474 | if (!this.checkDependencies(container)) |
467 | { | 475 | { |
468 | LiteLoaderLogger.info("Container %s is missing one or more dependencies", container.getLocation()); | 476 | LiteLoaderLogger.info("Container %s is missing one or more dependencies", container.getLocation()); |
469 | - this.registerDisabledContainer(container); | 477 | + this.registerDisabledContainer(container, DisabledReason.MISSING_DEPENDENCY); |
470 | return false; | 478 | return false; |
471 | } | 479 | } |
472 | 480 | ||
473 | if (!this.checkAPIRequirements(container)) | 481 | if (!this.checkAPIRequirements(container)) |
474 | { | 482 | { |
475 | LiteLoaderLogger.info("Container %s is missing one or more required APIs", container.getLocation()); | 483 | LiteLoaderLogger.info("Container %s is missing one or more required APIs", container.getLocation()); |
476 | - this.registerDisabledContainer(container); | 484 | + this.registerDisabledContainer(container, DisabledReason.MISSING_API); |
477 | return false; | 485 | return false; |
478 | } | 486 | } |
479 | 487 | ||
@@ -492,17 +500,21 @@ public class LiteLoaderEnumerator implements LoaderEnumerator | @@ -492,17 +500,21 @@ public class LiteLoaderEnumerator implements LoaderEnumerator | ||
492 | 500 | ||
493 | this.disabledContainers.remove(container.getIdentifier()); | 501 | this.disabledContainers.remove(container.getIdentifier()); |
494 | this.enabledContainers.put(container.getIdentifier(), container); | 502 | this.enabledContainers.put(container.getIdentifier(), container); |
503 | + | ||
504 | + this.observers.all().onRegisterEnabledContainer(this, container); | ||
495 | } | 505 | } |
496 | 506 | ||
497 | /** | 507 | /** |
498 | * @param container | 508 | * @param container |
499 | */ | 509 | */ |
500 | - protected void registerDisabledContainer(LoadableMod<?> container) | 510 | + protected void registerDisabledContainer(LoadableMod<?> container, DisabledReason reason) |
501 | { | 511 | { |
502 | this.checkState(EnumeratorState.DISCOVER, "registerDisabledContainer"); | 512 | this.checkState(EnumeratorState.DISCOVER, "registerDisabledContainer"); |
503 | 513 | ||
504 | this.enabledContainers.remove(container.getIdentifier()); | 514 | this.enabledContainers.remove(container.getIdentifier()); |
505 | this.disabledContainers.put(container.getIdentifier(), new NonMod(container, false)); | 515 | this.disabledContainers.put(container.getIdentifier(), new NonMod(container, false)); |
516 | + | ||
517 | + this.observers.all().onRegisterDisabledContainer(this, container, reason); | ||
506 | } | 518 | } |
507 | 519 | ||
508 | /* (non-Javadoc) | 520 | /* (non-Javadoc) |
@@ -520,6 +532,7 @@ public class LiteLoaderEnumerator implements LoaderEnumerator | @@ -520,6 +532,7 @@ public class LiteLoaderEnumerator implements LoaderEnumerator | ||
520 | } | 532 | } |
521 | 533 | ||
522 | this.tweakContainers.add(container); | 534 | this.tweakContainers.add(container); |
535 | + this.observers.all().onRegisterTweakContainer(this, container); | ||
523 | return true; | 536 | return true; |
524 | } | 537 | } |
525 | 538 | ||
@@ -655,6 +668,8 @@ public class LiteLoaderEnumerator implements LoaderEnumerator | @@ -655,6 +668,8 @@ public class LiteLoaderEnumerator implements LoaderEnumerator | ||
655 | } | 668 | } |
656 | 669 | ||
657 | this.modsToLoad.add(mod); | 670 | this.modsToLoad.add(mod); |
671 | + | ||
672 | + this.observers.all().onModAdded(this, mod); | ||
658 | } | 673 | } |
659 | 674 | ||
660 | /** | 675 | /** |
java/common/com/mumfrey/liteloader/core/LiteLoaderVersion.java
@@ -7,7 +7,7 @@ import java.util.Set; | @@ -7,7 +7,7 @@ import java.util.Set; | ||
7 | * LiteLoader version table | 7 | * LiteLoader version table |
8 | * | 8 | * |
9 | * @author Adam Mummery-Smith | 9 | * @author Adam Mummery-Smith |
10 | - * @version 1.7.10_04 | 10 | + * @version 1.8.0_00 |
11 | */ | 11 | */ |
12 | public enum LiteLoaderVersion | 12 | public enum LiteLoaderVersion |
13 | { | 13 | { |
@@ -37,12 +37,13 @@ public enum LiteLoaderVersion | @@ -37,12 +37,13 @@ public enum LiteLoaderVersion | ||
37 | MC_1_7_10_R1(28, 1404673785, "1.7.10", "1.7.10_01", "1.7.10"), | 37 | MC_1_7_10_R1(28, 1404673785, "1.7.10", "1.7.10_01", "1.7.10"), |
38 | MC_1_7_10_R2(29, 1405369406, "1.7.10", "1.7.10_02", "1.7.10"), | 38 | MC_1_7_10_R2(29, 1405369406, "1.7.10", "1.7.10_02", "1.7.10"), |
39 | MC_1_7_10_R3(30, 1407687918, "1.7.10", "1.7.10_03", "1.7.10", "1.7.10_03"), | 39 | MC_1_7_10_R3(30, 1407687918, "1.7.10", "1.7.10_03", "1.7.10", "1.7.10_03"), |
40 | - MC_1_7_10_R4(31, 0, "1.7.10", "1.7.10_04", "1.7.10", "1.7.10_03", "1.7.10_04"); | 40 | + MC_1_7_10_R4(31, 0, "1.7.10", "1.7.10_04", "1.7.10", "1.7.10_03", "1.7.10_04"), |
41 | + MC_1_8_0_R0(32, 0, "1.8.0", "1.8.0", "1.8", "1.8.0"); | ||
41 | 42 | ||
42 | /** | 43 | /** |
43 | * Current loader version | 44 | * Current loader version |
44 | */ | 45 | */ |
45 | - public static final LiteLoaderVersion CURRENT = LiteLoaderVersion.MC_1_7_10_R4; | 46 | + public static final LiteLoaderVersion CURRENT = LiteLoaderVersion.MC_1_8_0_R0; |
46 | 47 | ||
47 | private static final LiteLoaderUpdateSite updateSite = new LiteLoaderUpdateSite(LiteLoaderVersion.CURRENT.getMinecraftVersion(), LiteLoaderVersion.CURRENT.getReleaseTimestamp()); | 48 | private static final LiteLoaderUpdateSite updateSite = new LiteLoaderUpdateSite(LiteLoaderVersion.CURRENT.getMinecraftVersion(), LiteLoaderVersion.CURRENT.getReleaseTimestamp()); |
48 | 49 |
java/common/com/mumfrey/liteloader/core/PacketEvents.java
@@ -220,7 +220,7 @@ public abstract class PacketEvents implements InterfaceProvider | @@ -220,7 +220,7 @@ public abstract class PacketEvents implements InterfaceProvider | ||
220 | { | 220 | { |
221 | EntityPlayerMP player = netHandler instanceof NetHandlerPlayServer ? ((NetHandlerPlayServer)netHandler).playerEntity : null; | 221 | EntityPlayerMP player = netHandler instanceof NetHandlerPlayServer ? ((NetHandlerPlayServer)netHandler).playerEntity : null; |
222 | 222 | ||
223 | - if (!this.serverChatFilters.all().onChat(player, packet, packet.func_149439_c())) | 223 | + if (!this.serverChatFilters.all().onChat(player, packet, packet.getMessage())) |
224 | { | 224 | { |
225 | e.cancel(); | 225 | e.cancel(); |
226 | } | 226 | } |
java/common/com/mumfrey/liteloader/core/PluginChannels.java
1 | package com.mumfrey.liteloader.core; | 1 | package com.mumfrey.liteloader.core; |
2 | 2 | ||
3 | -import java.io.UnsupportedEncodingException; | ||
4 | -import java.nio.charset.Charset; | 3 | +import io.netty.buffer.Unpooled; |
4 | + | ||
5 | import java.util.Collections; | 5 | import java.util.Collections; |
6 | import java.util.HashMap; | 6 | import java.util.HashMap; |
7 | import java.util.HashSet; | 7 | import java.util.HashSet; |
@@ -10,11 +10,11 @@ import java.util.List; | @@ -10,11 +10,11 @@ import java.util.List; | ||
10 | import java.util.Map; | 10 | import java.util.Map; |
11 | import java.util.Set; | 11 | import java.util.Set; |
12 | 12 | ||
13 | +import net.minecraft.network.INetHandler; | ||
14 | +import net.minecraft.network.PacketBuffer; | ||
15 | + | ||
13 | import com.mumfrey.liteloader.api.InterfaceProvider; | 16 | import com.mumfrey.liteloader.api.InterfaceProvider; |
14 | import com.mumfrey.liteloader.interfaces.FastIterableDeque; | 17 | import com.mumfrey.liteloader.interfaces.FastIterableDeque; |
15 | -import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | ||
16 | - | ||
17 | -import net.minecraft.network.INetHandler; | ||
18 | 18 | ||
19 | /** | 19 | /** |
20 | * Manages plugin channel connections and subscriptions for LiteLoader | 20 | * Manages plugin channel connections and subscriptions for LiteLoader |
@@ -115,19 +115,12 @@ public abstract class PluginChannels<L extends CommonPluginChannelListener> impl | @@ -115,19 +115,12 @@ public abstract class PluginChannels<L extends CommonPluginChannelListener> impl | ||
115 | /** | 115 | /** |
116 | * @param data | 116 | * @param data |
117 | */ | 117 | */ |
118 | - protected void onRegisterPacketReceived(byte[] data) | 118 | + protected void onRegisterPacketReceived(PacketBuffer data) |
119 | { | 119 | { |
120 | - try | ||
121 | - { | ||
122 | - String channels = new String(data, "UTF8"); | ||
123 | - for (String channel : channels.split("\u0000")) | ||
124 | - { | ||
125 | - this.remotePluginChannels.add(channel); | ||
126 | - } | ||
127 | - } | ||
128 | - catch (UnsupportedEncodingException ex) | 120 | + String channels = data.readStringFromBuffer(65535); |
121 | + for (String channel : channels.split("\u0000")) | ||
129 | { | 122 | { |
130 | - LiteLoaderLogger.warning(ex, "Error decoding REGISTER packet from remote host %s", ex.getClass().getSimpleName()); | 123 | + this.remotePluginChannels.add(channel); |
131 | } | 124 | } |
132 | } | 125 | } |
133 | 126 | ||
@@ -135,7 +128,7 @@ public abstract class PluginChannels<L extends CommonPluginChannelListener> impl | @@ -135,7 +128,7 @@ public abstract class PluginChannels<L extends CommonPluginChannelListener> impl | ||
135 | * @return | 128 | * @return |
136 | * | 129 | * |
137 | */ | 130 | */ |
138 | - protected byte[] getRegistrationData() | 131 | + protected PacketBuffer getRegistrationData() |
139 | { | 132 | { |
140 | // If any mods have registered channels, send the REGISTER packet | 133 | // If any mods have registered channels, send the REGISTER packet |
141 | if (this.pluginChannels.keySet().size() > 0) | 134 | if (this.pluginChannels.keySet().size() > 0) |
@@ -150,7 +143,7 @@ public abstract class PluginChannels<L extends CommonPluginChannelListener> impl | @@ -150,7 +143,7 @@ public abstract class PluginChannels<L extends CommonPluginChannelListener> impl | ||
150 | separator = true; | 143 | separator = true; |
151 | } | 144 | } |
152 | 145 | ||
153 | - return channelList.toString().getBytes(Charset.forName("UTF8")); | 146 | + return new PacketBuffer(Unpooled.buffer()).writeString(channelList.toString()); |
154 | } | 147 | } |
155 | 148 | ||
156 | return null; | 149 | return null; |
@@ -184,20 +177,6 @@ public abstract class PluginChannels<L extends CommonPluginChannelListener> impl | @@ -184,20 +177,6 @@ public abstract class PluginChannels<L extends CommonPluginChannelListener> impl | ||
184 | } | 177 | } |
185 | 178 | ||
186 | /** | 179 | /** |
187 | - * Send a message on a plugin channel | ||
188 | - * | ||
189 | - * @param channel Channel to send, must not be a reserved channel name | ||
190 | - * @param data | ||
191 | - * | ||
192 | - * @deprecated Use ClientPluginChannels.sendMessage instead | ||
193 | - */ | ||
194 | - @Deprecated | ||
195 | - public static boolean sendMessage(String channel, byte[] data, ChannelPolicy policy) | ||
196 | - { | ||
197 | - return ClientPluginChannels.sendMessage(channel, data, policy); | ||
198 | - } | ||
199 | - | ||
200 | - /** | ||
201 | * Policy for dispatching plugin channel packets | 180 | * Policy for dispatching plugin channel packets |
202 | * | 181 | * |
203 | * @author Adam Mummery-Smith | 182 | * @author Adam Mummery-Smith |
java/common/com/mumfrey/liteloader/core/ServerPluginChannels.java
@@ -3,6 +3,7 @@ package com.mumfrey.liteloader.core; | @@ -3,6 +3,7 @@ package com.mumfrey.liteloader.core; | ||
3 | import net.minecraft.entity.player.EntityPlayerMP; | 3 | import net.minecraft.entity.player.EntityPlayerMP; |
4 | import net.minecraft.network.INetHandler; | 4 | import net.minecraft.network.INetHandler; |
5 | import net.minecraft.network.NetHandlerPlayServer; | 5 | import net.minecraft.network.NetHandlerPlayServer; |
6 | +import net.minecraft.network.PacketBuffer; | ||
6 | import net.minecraft.network.play.client.C17PacketCustomPayload; | 7 | import net.minecraft.network.play.client.C17PacketCustomPayload; |
7 | import net.minecraft.network.play.server.S3FPacketCustomPayload; | 8 | import net.minecraft.network.play.server.S3FPacketCustomPayload; |
8 | 9 | ||
@@ -103,10 +104,10 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | @@ -103,10 +104,10 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | ||
103 | */ | 104 | */ |
104 | public void onPluginChannelMessage(INetHandler netHandler, C17PacketCustomPayload customPayload) | 105 | public void onPluginChannelMessage(INetHandler netHandler, C17PacketCustomPayload customPayload) |
105 | { | 106 | { |
106 | - if (customPayload != null && customPayload.func_149559_c() != null) | 107 | + if (customPayload != null && customPayload.getChannelName() != null) |
107 | { | 108 | { |
108 | - String channel = customPayload.func_149559_c(); | ||
109 | - byte[] data = customPayload.func_149558_e(); | 109 | + String channel = customPayload.getChannelName(); |
110 | + PacketBuffer data = customPayload.getBufferData(); | ||
110 | 111 | ||
111 | EntityPlayerMP sender = ((NetHandlerPlayServer)netHandler).playerEntity; | 112 | EntityPlayerMP sender = ((NetHandlerPlayServer)netHandler).playerEntity; |
112 | this.onPluginChannelMessage(sender, channel, data); | 113 | this.onPluginChannelMessage(sender, channel, data); |
@@ -117,7 +118,7 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | @@ -117,7 +118,7 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | ||
117 | * @param channel | 118 | * @param channel |
118 | * @param data | 119 | * @param data |
119 | */ | 120 | */ |
120 | - private final void onPluginChannelMessage(EntityPlayerMP sender, String channel, byte[] data) | 121 | + private final void onPluginChannelMessage(EntityPlayerMP sender, String channel, PacketBuffer data) |
121 | { | 122 | { |
122 | if (PluginChannels.CHANNEL_REGISTER.equals(channel)) | 123 | if (PluginChannels.CHANNEL_REGISTER.equals(channel)) |
123 | { | 124 | { |
@@ -130,12 +131,12 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | @@ -130,12 +131,12 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | ||
130 | PermissionsManagerServer permissionsManager = LiteLoader.getServerPermissionsManager(); | 131 | PermissionsManagerServer permissionsManager = LiteLoader.getServerPermissionsManager(); |
131 | if (permissionsManager != null) | 132 | if (permissionsManager != null) |
132 | { | 133 | { |
133 | - permissionsManager.onCustomPayload(sender, channel, data.length, data); | 134 | + permissionsManager.onCustomPayload(sender, channel, data); |
134 | } | 135 | } |
135 | } | 136 | } |
136 | catch (Exception ex) {} | 137 | catch (Exception ex) {} |
137 | 138 | ||
138 | - this.onModPacketReceived(sender, channel, data, data.length); | 139 | + this.onModPacketReceived(sender, channel, data); |
139 | } | 140 | } |
140 | } | 141 | } |
141 | 142 | ||
@@ -144,13 +145,13 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | @@ -144,13 +145,13 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | ||
144 | * @param data | 145 | * @param data |
145 | * @param length | 146 | * @param length |
146 | */ | 147 | */ |
147 | - protected void onModPacketReceived(EntityPlayerMP sender, String channel, byte[] data, int length) | 148 | + protected void onModPacketReceived(EntityPlayerMP sender, String channel, PacketBuffer data) |
148 | { | 149 | { |
149 | for (ServerPluginChannelListener pluginChannelListener : this.pluginChannels.get(channel)) | 150 | for (ServerPluginChannelListener pluginChannelListener : this.pluginChannels.get(channel)) |
150 | { | 151 | { |
151 | try | 152 | try |
152 | { | 153 | { |
153 | - pluginChannelListener.onCustomPayload(sender, channel, length, data); | 154 | + pluginChannelListener.onCustomPayload(sender, channel, data); |
154 | throw new RuntimeException(); | 155 | throw new RuntimeException(); |
155 | } | 156 | } |
156 | catch (Exception ex) | 157 | catch (Exception ex) |
@@ -176,7 +177,7 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | @@ -176,7 +177,7 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | ||
176 | { | 177 | { |
177 | try | 178 | try |
178 | { | 179 | { |
179 | - byte[] registrationData = this.getRegistrationData(); | 180 | + PacketBuffer registrationData = this.getRegistrationData(); |
180 | if (registrationData != null) | 181 | if (registrationData != null) |
181 | { | 182 | { |
182 | this.sendRegistrationData(player, registrationData); | 183 | this.sendRegistrationData(player, registrationData); |
@@ -184,7 +185,7 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | @@ -184,7 +185,7 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | ||
184 | } | 185 | } |
185 | catch (Exception ex) | 186 | catch (Exception ex) |
186 | { | 187 | { |
187 | - LiteLoaderLogger.warning(ex, "Error dispatching REGISTER packet to client %s", player.getCommandSenderName()); | 188 | + LiteLoaderLogger.warning(ex, "Error dispatching REGISTER packet to client %s", player.getName()); |
188 | } | 189 | } |
189 | } | 190 | } |
190 | 191 | ||
@@ -192,7 +193,7 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | @@ -192,7 +193,7 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | ||
192 | * @param netHandler | 193 | * @param netHandler |
193 | * @param registrationData | 194 | * @param registrationData |
194 | */ | 195 | */ |
195 | - private void sendRegistrationData(EntityPlayerMP recipient, byte[] registrationData) | 196 | + private void sendRegistrationData(EntityPlayerMP recipient, PacketBuffer registrationData) |
196 | { | 197 | { |
197 | ServerPluginChannels.dispatch(recipient, new S3FPacketCustomPayload(CHANNEL_REGISTER, registrationData)); | 198 | ServerPluginChannels.dispatch(recipient, new S3FPacketCustomPayload(CHANNEL_REGISTER, registrationData)); |
198 | } | 199 | } |
@@ -204,7 +205,7 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | @@ -204,7 +205,7 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | ||
204 | * @param channel Channel to send, must not be a reserved channel name | 205 | * @param channel Channel to send, must not be a reserved channel name |
205 | * @param data | 206 | * @param data |
206 | */ | 207 | */ |
207 | - public static boolean sendMessage(EntityPlayerMP recipient, String channel, byte[] data, ChannelPolicy policy) | 208 | + public static boolean sendMessage(EntityPlayerMP recipient, String channel, PacketBuffer data, ChannelPolicy policy) |
208 | { | 209 | { |
209 | if (ServerPluginChannels.instance != null) | 210 | if (ServerPluginChannels.instance != null) |
210 | { | 211 | { |
@@ -221,7 +222,7 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | @@ -221,7 +222,7 @@ public class ServerPluginChannels extends PluginChannels<ServerPluginChannelList | ||
221 | * @param channel Channel to send, must not be a reserved channel name | 222 | * @param channel Channel to send, must not be a reserved channel name |
222 | * @param data | 223 | * @param data |
223 | */ | 224 | */ |
224 | - private boolean send(EntityPlayerMP recipient, String channel, byte[] data, ChannelPolicy policy) | 225 | + private boolean send(EntityPlayerMP recipient, String channel, PacketBuffer data, ChannelPolicy policy) |
225 | { | 226 | { |
226 | if (recipient == null) return false; | 227 | if (recipient == null) return false; |
227 | 228 |
java/common/com/mumfrey/liteloader/core/api/EnumeratorModuleFolder.java
@@ -224,7 +224,7 @@ public class EnumeratorModuleFolder implements FilenameFilter, EnumeratorModule | @@ -224,7 +224,7 @@ public class EnumeratorModuleFolder implements FilenameFilter, EnumeratorModule | ||
224 | * @param candidateFile | 224 | * @param candidateFile |
225 | * @param strVersion | 225 | * @param strVersion |
226 | */ | 226 | */ |
227 | - private void addModFile(File candidateFile, String strVersion) | 227 | + protected void addModFile(File candidateFile, String strVersion) |
228 | { | 228 | { |
229 | LoadableModFile modFile = new LoadableModFile(candidateFile, strVersion); | 229 | LoadableModFile modFile = new LoadableModFile(candidateFile, strVersion); |
230 | 230 | ||
@@ -253,7 +253,7 @@ public class EnumeratorModuleFolder implements FilenameFilter, EnumeratorModule | @@ -253,7 +253,7 @@ public class EnumeratorModuleFolder implements FilenameFilter, EnumeratorModule | ||
253 | * @param enumerator | 253 | * @param enumerator |
254 | */ | 254 | */ |
255 | @SuppressWarnings("unchecked") | 255 | @SuppressWarnings("unchecked") |
256 | - private void sortAndAllocateFiles(ModularEnumerator enumerator) | 256 | + protected void sortAndAllocateFiles(ModularEnumerator enumerator) |
257 | { | 257 | { |
258 | // Copy the first entry in every version set into the modfiles list | 258 | // Copy the first entry in every version set into the modfiles list |
259 | for (Entry<String, TreeSet<LoadableMod<File>>> modFileEntry : this.versionOrderingSets.entrySet()) | 259 | for (Entry<String, TreeSet<LoadableMod<File>>> modFileEntry : this.versionOrderingSets.entrySet()) |
java/common/com/mumfrey/liteloader/core/api/LoadableModClassPath.java
1 | package com.mumfrey.liteloader.core.api; | 1 | package com.mumfrey.liteloader.core.api; |
2 | 2 | ||
3 | import java.io.File; | 3 | import java.io.File; |
4 | -import java.io.IOException; | ||
5 | import java.net.MalformedURLException; | 4 | import java.net.MalformedURLException; |
6 | -import java.util.zip.ZipEntry; | ||
7 | -import java.util.zip.ZipFile; | ||
8 | 5 | ||
9 | import net.minecraft.launchwrapper.LaunchClassLoader; | 6 | import net.minecraft.launchwrapper.LaunchClassLoader; |
10 | 7 | ||
11 | import com.google.common.base.Charsets; | 8 | import com.google.common.base.Charsets; |
12 | -import com.google.common.io.Files; | ||
13 | import com.mumfrey.liteloader.core.LiteLoaderVersion; | 9 | import com.mumfrey.liteloader.core.LiteLoaderVersion; |
14 | import com.mumfrey.liteloader.interfaces.LoadableMod; | 10 | import com.mumfrey.liteloader.interfaces.LoadableMod; |
15 | import com.mumfrey.liteloader.resources.ModResourcePack; | 11 | import com.mumfrey.liteloader.resources.ModResourcePack; |
@@ -111,39 +107,6 @@ public class LoadableModClassPath extends LoadableModFile | @@ -111,39 +107,6 @@ public class LoadableModClassPath extends LoadableModFile | ||
111 | 107 | ||
112 | private static String getVersionMetaDataString(File file) | 108 | private static String getVersionMetaDataString(File file) |
113 | { | 109 | { |
114 | - try | ||
115 | - { | ||
116 | - if (file.isDirectory()) | ||
117 | - { | ||
118 | - File versionMetaFile = new File(file, LoadableMod.METADATA_FILENAME); | ||
119 | - if (versionMetaFile.exists()) | ||
120 | - { | ||
121 | - return Files.toString(versionMetaFile, Charsets.UTF_8); | ||
122 | - } | ||
123 | - } | ||
124 | - else | ||
125 | - { | ||
126 | - String strVersion = null; | ||
127 | - ZipFile modZip = new ZipFile(file); | ||
128 | - ZipEntry versionEntry = modZip.getEntry(LoadableMod.METADATA_FILENAME); | ||
129 | - if (versionEntry != null) | ||
130 | - { | ||
131 | - try | ||
132 | - { | ||
133 | - strVersion = LoadableModFile.zipEntryToString(modZip, versionEntry); | ||
134 | - } | ||
135 | - catch (IOException ex) {} | ||
136 | - } | ||
137 | - | ||
138 | - modZip.close(); | ||
139 | - return strVersion; | ||
140 | - } | ||
141 | - } | ||
142 | - catch (IOException ex) | ||
143 | - { | ||
144 | - ex.printStackTrace(); | ||
145 | - } | ||
146 | - | ||
147 | - return null; | 110 | + return LoadableModFile.getFileContents(file, LoadableMod.METADATA_FILENAME, Charsets.UTF_8); |
148 | } | 111 | } |
149 | } | 112 | } |
java/common/com/mumfrey/liteloader/core/api/LoadableModFile.java
@@ -22,6 +22,7 @@ import net.minecraft.client.resources.I18n; | @@ -22,6 +22,7 @@ import net.minecraft.client.resources.I18n; | ||
22 | 22 | ||
23 | import com.google.common.base.Charsets; | 23 | import com.google.common.base.Charsets; |
24 | import com.google.common.io.ByteStreams; | 24 | import com.google.common.io.ByteStreams; |
25 | +import com.google.common.io.Files; | ||
25 | import com.google.gson.Gson; | 26 | import com.google.gson.Gson; |
26 | import com.google.gson.JsonSyntaxException; | 27 | import com.google.gson.JsonSyntaxException; |
27 | import com.mumfrey.liteloader.api.manager.APIProvider; | 28 | import com.mumfrey.liteloader.api.manager.APIProvider; |
@@ -485,6 +486,16 @@ public class LoadableModFile extends LoadableFile implements LoadableMod<File> | @@ -485,6 +486,16 @@ public class LoadableModFile extends LoadableFile implements LoadableMod<File> | ||
485 | // Give up and use timestamp | 486 | // Give up and use timestamp |
486 | return (int)(otherMod.timeStamp - this.timeStamp); | 487 | return (int)(otherMod.timeStamp - this.timeStamp); |
487 | } | 488 | } |
489 | + | ||
490 | + /** | ||
491 | + * @param name | ||
492 | + * @param charset | ||
493 | + * @return | ||
494 | + */ | ||
495 | + public String getFileContents(String name, Charset charset) | ||
496 | + { | ||
497 | + return LoadableModFile.getFileContents(this, name, charset); | ||
498 | + } | ||
488 | 499 | ||
489 | /** | 500 | /** |
490 | * @return | 501 | * @return |
@@ -600,4 +611,48 @@ public class LoadableModFile extends LoadableFile implements LoadableMod<File> | @@ -600,4 +611,48 @@ public class LoadableModFile extends LoadableFile implements LoadableMod<File> | ||
600 | 611 | ||
601 | return new String(bytes, bomOffset, bytes.length - bomOffset, charset); | 612 | return new String(bytes, bomOffset, bytes.length - bomOffset, charset); |
602 | } | 613 | } |
614 | + | ||
615 | + /** | ||
616 | + * @param parent | ||
617 | + * @param name | ||
618 | + * @param charset | ||
619 | + * @return | ||
620 | + */ | ||
621 | + public static String getFileContents(File parent, String name, Charset charset) | ||
622 | + { | ||
623 | + try | ||
624 | + { | ||
625 | + if (parent.isDirectory()) | ||
626 | + { | ||
627 | + File file = new File(parent, name); | ||
628 | + if (file.isFile()) | ||
629 | + { | ||
630 | + return Files.toString(file, charset); | ||
631 | + } | ||
632 | + } | ||
633 | + else | ||
634 | + { | ||
635 | + String content = null; | ||
636 | + ZipFile zipFile = new ZipFile(parent); | ||
637 | + ZipEntry zipEntry = zipFile.getEntry(name); | ||
638 | + if (zipEntry != null) | ||
639 | + { | ||
640 | + try | ||
641 | + { | ||
642 | + content = LoadableModFile.zipEntryToString(zipFile, zipEntry); | ||
643 | + } | ||
644 | + catch (IOException ex) {} | ||
645 | + } | ||
646 | + | ||
647 | + zipFile.close(); | ||
648 | + return content; | ||
649 | + } | ||
650 | + } | ||
651 | + catch (IOException ex) | ||
652 | + { | ||
653 | + ex.printStackTrace(); | ||
654 | + } | ||
655 | + | ||
656 | + return null; | ||
657 | + } | ||
603 | } | 658 | } |
java/common/com/mumfrey/liteloader/core/event/EventProxy.java
@@ -9,6 +9,7 @@ import net.minecraft.crash.CrashReportCategory; | @@ -9,6 +9,7 @@ import net.minecraft.crash.CrashReportCategory; | ||
9 | 9 | ||
10 | import org.objectweb.asm.Type; | 10 | import org.objectweb.asm.Type; |
11 | 11 | ||
12 | +import com.mumfrey.liteloader.transformers.ByteCodeUtilities; | ||
12 | import com.mumfrey.liteloader.transformers.event.EventInfo; | 13 | import com.mumfrey.liteloader.transformers.event.EventInfo; |
13 | 14 | ||
14 | /** | 15 | /** |
@@ -147,19 +148,11 @@ public final class EventProxy | @@ -147,19 +148,11 @@ public final class EventProxy | ||
147 | 148 | ||
148 | return tpl.toString(); | 149 | return tpl.toString(); |
149 | } | 150 | } |
150 | - | 151 | + |
151 | private static boolean appendTypeName(StringBuilder tpl, Type type, String sourceClass) | 152 | private static boolean appendTypeName(StringBuilder tpl, Type type, String sourceClass) |
152 | { | 153 | { |
153 | switch (type.getSort()) | 154 | switch (type.getSort()) |
154 | { | 155 | { |
155 | - case Type.BOOLEAN: tpl.append("boolean"); return false; | ||
156 | - case Type.CHAR: tpl.append("char"); return false; | ||
157 | - case Type.BYTE: tpl.append("byte"); return false; | ||
158 | - case Type.SHORT: tpl.append("short"); return false; | ||
159 | - case Type.INT: tpl.append("int"); return false; | ||
160 | - case Type.FLOAT: tpl.append("float"); return false; | ||
161 | - case Type.LONG: tpl.append("long"); return false; | ||
162 | - case Type.DOUBLE: tpl.append("double"); return false; | ||
163 | case Type.ARRAY: | 156 | case Type.ARRAY: |
164 | EventProxy.appendTypeName(tpl, type.getElementType(), sourceClass); | 157 | EventProxy.appendTypeName(tpl, type.getElementType(), sourceClass); |
165 | return true; | 158 | return true; |
@@ -170,11 +163,10 @@ public final class EventProxy | @@ -170,11 +163,10 @@ public final class EventProxy | ||
170 | if (typeName.endsWith("ReturnEventInfo")) tpl.append('<').append(sourceClass).append(", ?>"); | 163 | if (typeName.endsWith("ReturnEventInfo")) tpl.append('<').append(sourceClass).append(", ?>"); |
171 | else if (typeName.endsWith("EventInfo")) tpl.append('<').append(sourceClass).append('>'); | 164 | else if (typeName.endsWith("EventInfo")) tpl.append('<').append(sourceClass).append('>'); |
172 | return false; | 165 | return false; |
166 | + default: | ||
167 | + tpl.append(ByteCodeUtilities.getTypeName(type)); | ||
168 | + return false; | ||
173 | } | 169 | } |
174 | - | ||
175 | - tpl.append("Object"); | ||
176 | - | ||
177 | - return false; | ||
178 | } | 170 | } |
179 | 171 | ||
180 | private static void addDetailLineBreak() | 172 | private static void addDetailLineBreak() |
java/common/com/mumfrey/liteloader/core/runtime/Methods.java
@@ -13,11 +13,13 @@ public abstract class Methods | @@ -13,11 +13,13 @@ public abstract class Methods | ||
13 | public static final MethodInfo runTick = new MethodInfo(Obf.Minecraft, Obf.runTick, Void.TYPE); | 13 | public static final MethodInfo runTick = new MethodInfo(Obf.Minecraft, Obf.runTick, Void.TYPE); |
14 | public static final MethodInfo updateFramebufferSize = new MethodInfo(Obf.Minecraft, Obf.updateFramebufferSize, Void.TYPE); | 14 | public static final MethodInfo updateFramebufferSize = new MethodInfo(Obf.Minecraft, Obf.updateFramebufferSize, Void.TYPE); |
15 | public static final MethodInfo framebufferRender = new MethodInfo(Obf.FrameBuffer, Obf.framebufferRender, Void.TYPE, Integer.TYPE, Integer.TYPE); | 15 | public static final MethodInfo framebufferRender = new MethodInfo(Obf.FrameBuffer, Obf.framebufferRender, Void.TYPE, Integer.TYPE, Integer.TYPE); |
16 | + public static final MethodInfo framebufferRenderExt = new MethodInfo(Obf.FrameBuffer, Obf.framebufferRenderExt, Void.TYPE, Integer.TYPE, Integer.TYPE, Boolean.TYPE); | ||
16 | public static final MethodInfo bindFramebufferTexture = new MethodInfo(Obf.FrameBuffer, Obf.bindFramebufferTexture, Void.TYPE); | 17 | public static final MethodInfo bindFramebufferTexture = new MethodInfo(Obf.FrameBuffer, Obf.bindFramebufferTexture, Void.TYPE); |
17 | - public static final MethodInfo sendChatMessage = new MethodInfo(Obf.EntityClientPlayerMP, Obf.sendChatMessage, Void.TYPE, String.class); | 18 | + public static final MethodInfo sendChatMessage = new MethodInfo(Obf.EntityPlayerSP, Obf.sendChatMessage, Void.TYPE, String.class); |
18 | public static final MethodInfo renderWorld = new MethodInfo(Obf.EntityRenderer, Obf.renderWorld, Void.TYPE, Float.TYPE, Long.TYPE); | 19 | public static final MethodInfo renderWorld = new MethodInfo(Obf.EntityRenderer, Obf.renderWorld, Void.TYPE, Float.TYPE, Long.TYPE); |
20 | + public static final MethodInfo renderWorldPass = new MethodInfo(Obf.EntityRenderer, Obf.renderWorldPass, Void.TYPE, Integer.TYPE, Float.TYPE, Long.TYPE); | ||
19 | public static final MethodInfo updateCameraAndRender = new MethodInfo(Obf.EntityRenderer, Obf.updateCameraAndRender, Void.TYPE, Float.TYPE); | 21 | public static final MethodInfo updateCameraAndRender = new MethodInfo(Obf.EntityRenderer, Obf.updateCameraAndRender, Void.TYPE, Float.TYPE); |
20 | - public static final MethodInfo renderGameOverlay = new MethodInfo(Obf.GuiIngame, Obf.renderGameOverlay, Void.TYPE, Float.TYPE, Boolean.TYPE, Integer.TYPE, Integer.TYPE); | 22 | + public static final MethodInfo renderGameOverlay = new MethodInfo(Obf.GuiIngame, Obf.renderGameOverlay, Void.TYPE, Float.TYPE); |
21 | public static final MethodInfo drawChat = new MethodInfo(Obf.GuiNewChat, Obf.drawChat, Void.TYPE, Integer.TYPE); | 23 | public static final MethodInfo drawChat = new MethodInfo(Obf.GuiNewChat, Obf.drawChat, Void.TYPE, Integer.TYPE); |
22 | public static final MethodInfo integratedServerCtor = new MethodInfo(Obf.IntegratedServer, Obf.constructor, Void.TYPE, Obf.Minecraft, String.class, String.class, Obf.WorldSettings); | 24 | public static final MethodInfo integratedServerCtor = new MethodInfo(Obf.IntegratedServer, Obf.constructor, Void.TYPE, Obf.Minecraft, String.class, String.class, Obf.WorldSettings); |
23 | public static final MethodInfo initPlayerConnection = new MethodInfo(Obf.ServerConfigurationManager, Obf.initializeConnectionToPlayer, Void.TYPE, Obf.NetworkManager, Obf.EntityPlayerMP); | 25 | public static final MethodInfo initPlayerConnection = new MethodInfo(Obf.ServerConfigurationManager, Obf.initializeConnectionToPlayer, Void.TYPE, Obf.NetworkManager, Obf.EntityPlayerMP); |
@@ -25,12 +27,12 @@ public abstract class Methods | @@ -25,12 +27,12 @@ public abstract class Methods | ||
25 | public static final MethodInfo playerLoggedOut = new MethodInfo(Obf.ServerConfigurationManager, Obf.playerLoggedOut, Void.TYPE, Obf.EntityPlayerMP); | 27 | public static final MethodInfo playerLoggedOut = new MethodInfo(Obf.ServerConfigurationManager, Obf.playerLoggedOut, Void.TYPE, Obf.EntityPlayerMP); |
26 | public static final MethodInfo spawnPlayer = new MethodInfo(Obf.ServerConfigurationManager, Obf.spawnPlayer, Obf.EntityPlayerMP, Obf.GameProfile); | 28 | public static final MethodInfo spawnPlayer = new MethodInfo(Obf.ServerConfigurationManager, Obf.spawnPlayer, Obf.EntityPlayerMP, Obf.GameProfile); |
27 | public static final MethodInfo respawnPlayer = new MethodInfo(Obf.ServerConfigurationManager, Obf.respawnPlayer, Obf.EntityPlayerMP, Obf.EntityPlayerMP, Integer.TYPE, Boolean.TYPE); | 29 | public static final MethodInfo respawnPlayer = new MethodInfo(Obf.ServerConfigurationManager, Obf.respawnPlayer, Obf.EntityPlayerMP, Obf.EntityPlayerMP, Integer.TYPE, Boolean.TYPE); |
30 | + public static final MethodInfo glClear = new MethodInfo(Obf.GlStateManager, Obf.clear, Void.TYPE, Integer.TYPE); | ||
31 | + public static final MethodInfo getProfile = new MethodInfo(Obf.Session, Obf.getProfile, Obf.GameProfile); | ||
28 | 32 | ||
29 | public static final MethodInfo startSection = new MethodInfo(Obf.Profiler, Obf.startSection, Void.TYPE, String.class); | 33 | public static final MethodInfo startSection = new MethodInfo(Obf.Profiler, Obf.startSection, Void.TYPE, String.class); |
30 | public static final MethodInfo endSection = new MethodInfo(Obf.Profiler, Obf.endSection, Void.TYPE); | 34 | public static final MethodInfo endSection = new MethodInfo(Obf.Profiler, Obf.endSection, Void.TYPE); |
31 | public static final MethodInfo endStartSection = new MethodInfo(Obf.Profiler, Obf.endStartSection, Void.TYPE, String.class); | 35 | public static final MethodInfo endStartSection = new MethodInfo(Obf.Profiler, Obf.endStartSection, Void.TYPE, String.class); |
32 | - | ||
33 | - public static final MethodInfo glClear = new MethodInfo(Obf.GL11, "glClear", "(I)V"); | ||
34 | 36 | ||
35 | private Methods() {} | 37 | private Methods() {} |
36 | } | 38 | } |
java/common/com/mumfrey/liteloader/core/runtime/Obf.java
@@ -2,13 +2,16 @@ package com.mumfrey.liteloader.core.runtime; | @@ -2,13 +2,16 @@ package com.mumfrey.liteloader.core.runtime; | ||
2 | 2 | ||
3 | import java.io.IOException; | 3 | import java.io.IOException; |
4 | import java.io.InputStream; | 4 | import java.io.InputStream; |
5 | +import java.lang.reflect.Field; | ||
6 | +import java.util.HashMap; | ||
7 | +import java.util.Map; | ||
5 | import java.util.Properties; | 8 | import java.util.Properties; |
6 | 9 | ||
7 | /** | 10 | /** |
8 | * Centralised obfuscation table for LiteLoader | 11 | * Centralised obfuscation table for LiteLoader |
9 | * | 12 | * |
10 | * @author Adam Mummery-Smith | 13 | * @author Adam Mummery-Smith |
11 | - * TODO Obfuscation 1.7.10 | 14 | + * TODO Obfuscation 1.8 |
12 | */ | 15 | */ |
13 | public class Obf | 16 | public class Obf |
14 | { | 17 | { |
@@ -29,77 +32,91 @@ public class Obf | @@ -29,77 +32,91 @@ public class Obf | ||
29 | 32 | ||
30 | // Classes | 33 | // Classes |
31 | // ----------------------------------------------------------------------------------------- | 34 | // ----------------------------------------------------------------------------------------- |
32 | - public static final Obf Minecraft = new Obf("net.minecraft.client.Minecraft", "bao" ); | ||
33 | - public static final Obf EntityRenderer = new Obf("net.minecraft.client.renderer.EntityRenderer", "blt" ); | ||
34 | - public static final Obf GuiIngame = new Obf("net.minecraft.client.gui.GuiIngame", "bbv" ); | ||
35 | - public static final Obf Profiler = new Obf("net.minecraft.profiler.Profiler", "qi" ); | 35 | + public static final Obf Minecraft = new Obf("net.minecraft.client.Minecraft", "bsu" ); |
36 | + public static final Obf EntityRenderer = new Obf("net.minecraft.client.renderer.EntityRenderer", "cji" ); | ||
37 | + public static final Obf GuiIngame = new Obf("net.minecraft.client.gui.GuiIngame", "btz" ); | ||
38 | + public static final Obf Profiler = new Obf("net.minecraft.profiler.Profiler", "uw" ); | ||
36 | public static final Obf CrashReport$6 = new Obf("net.minecraft.crash.CrashReport$6", "h" ); | 39 | public static final Obf CrashReport$6 = new Obf("net.minecraft.crash.CrashReport$6", "h" ); |
37 | - public static final Obf INetHandler = new Obf("net.minecraft.network.INetHandler", "fb" ); | ||
38 | - public static final Obf IntegratedServer = new Obf("net.minecraft.server.integrated.IntegratedServer", "bsx" ); | ||
39 | - public static final Obf WorldSettings = new Obf("net.minecraft.world.WorldSettings", "ahj" ); | ||
40 | - public static final Obf ServerConfigurationManager = new Obf("net.minecraft.server.management.ServerConfigurationManager", "oi" ); | ||
41 | - public static final Obf EntityPlayerMP = new Obf("net.minecraft.entity.player.EntityPlayerMP", "mw" ); | ||
42 | - public static final Obf NetworkManager = new Obf("net.minecraft.network.NetworkManager", "ej" ); | ||
43 | - public static final Obf DedicatedServer = new Obf("net.minecraft.server.dedicated.DedicatedServer", "lt" ); | ||
44 | - public static final Obf EntityClientPlayerMP = new Obf("net.minecraft.client.entity.EntityClientPlayerMP", "bjk" ); | ||
45 | - public static final Obf Blocks = new Obf("net.minecraft.init.Blocks", "ajn" ); | ||
46 | - public static final Obf Items = new Obf("net.minecraft.init.Items", "ade" ); | ||
47 | - public static final Obf FrameBuffer = new Obf("net.minecraft.client.shader.Framebuffer", "bmg" ); | ||
48 | - public static final Obf GuiNewChat = new Obf("net.minecraft.client.gui.GuiNewChat", "bcc" ); | ||
49 | - | ||
50 | - // Packets | ||
51 | - // ----------------------------------------------------------------------------------------- | ||
52 | - @Deprecated public static final Obf S01PacketJoinGame = Packets.S01PacketJoinGame; | ||
53 | - @Deprecated public static final Obf S02PacketLoginSuccess = Packets.S02PacketLoginSuccess; | ||
54 | - @Deprecated public static final Obf S02PacketChat = Packets.S02PacketChat; | ||
55 | - @Deprecated public static final Obf S3FPacketCustomPayload = Packets.S3FPacketCustomPayload; | ||
56 | - @Deprecated public static final Obf C01PacketChatMessage = Packets.C01PacketChatMessage; | ||
57 | - @Deprecated public static final Obf C17PacketCustomPayload = Packets.C17PacketCustomPayload; | 40 | + public static final Obf INetHandler = new Obf("net.minecraft.network.INetHandler", "hg" ); |
41 | + public static final Obf IntegratedServer = new Obf("net.minecraft.server.integrated.IntegratedServer", "cyk" ); | ||
42 | + public static final Obf WorldSettings = new Obf("net.minecraft.world.WorldSettings", "arb" ); | ||
43 | + public static final Obf ServerConfigurationManager = new Obf("net.minecraft.server.management.ServerConfigurationManager", "sn" ); | ||
44 | + public static final Obf EntityPlayerMP = new Obf("net.minecraft.entity.player.EntityPlayerMP", "qw" ); | ||
45 | + public static final Obf NetworkManager = new Obf("net.minecraft.network.NetworkManager", "gr" ); | ||
46 | + public static final Obf DedicatedServer = new Obf("net.minecraft.server.dedicated.DedicatedServer", "po" ); | ||
47 | + public static final Obf EntityPlayerSP = new Obf("net.minecraft.client.entity.EntityPlayerSP", "cio" ); | ||
48 | + public static final Obf Blocks = new Obf("net.minecraft.init.Blocks", "aty" ); | ||
49 | + public static final Obf Items = new Obf("net.minecraft.init.Items", "amk" ); | ||
50 | + public static final Obf FrameBuffer = new Obf("net.minecraft.client.shader.Framebuffer", "ckw" ); | ||
51 | + public static final Obf GuiNewChat = new Obf("net.minecraft.client.gui.GuiNewChat", "buh" ); | ||
52 | + public static final Obf GlStateManager = new Obf("net.minecraft.client.renderer.GlStateManager", "cjm" ); | ||
53 | + public static final Obf Session = new Obf("net.minecraft.util.Session", "btw" ); | ||
58 | 54 | ||
59 | // Fields | 55 | // Fields |
60 | // ----------------------------------------------------------------------------------------- | 56 | // ----------------------------------------------------------------------------------------- |
61 | - public static final Obf minecraftProfiler = new Obf("field_71424_I", "z" ); // Minecraft/mcProfiler | ||
62 | - public static final Obf entityRenderMap = new Obf("field_78729_o", "q" ); // RenderManager/entityRenderMap | ||
63 | - public static final Obf reloadListeners = new Obf("field_110546_b", "d" ); // SimpleReloadableResourceManager/reloadListeners | ||
64 | - public static final Obf netManager = new Obf("field_147393_d", "d" ); // NetHandlerLoginClient/field_147393_d | ||
65 | - public static final Obf registryObjects = new Obf("field_82596_a", "c" ); // RegistrySimple/registryObjects | ||
66 | - public static final Obf underlyingIntegerMap = new Obf("field_148759_a", "a" ); // RegistryNamespaced/underlyingIntegerMap | ||
67 | - public static final Obf identityMap = new Obf("field_148749_a", "a" ); // ObjectIntIdentityMap/field_148749_a | ||
68 | - public static final Obf objectList = new Obf("field_148748_b", "b" ); // ObjectIntIdentityMap/field_148748_b | ||
69 | - public static final Obf mapSpecialRenderers = new Obf("field_147559_m", "m" ); // TileEntityRendererDispatcher/mapSpecialRenderers | ||
70 | - public static final Obf tileEntityNameToClassMap = new Obf("field_145855_i", "i" ); // TileEntity/nameToClassMap | ||
71 | - public static final Obf tileEntityClassToNameMap = new Obf("field_145853_j", "i" ); // TileEntity/classToNameMap | 57 | + public static final Obf minecraftProfiler = new Obf("field_71424_I", "y" ); |
58 | + public static final Obf entityRenderMap = new Obf("field_78729_o", "k" ); | ||
59 | + public static final Obf reloadListeners = new Obf("field_110546_b", "d" ); | ||
60 | + public static final Obf networkManager = new Obf("field_147393_d", "d" ); | ||
61 | + public static final Obf registryObjects = new Obf("field_82596_a", "c" ); | ||
62 | + public static final Obf underlyingIntegerMap = new Obf("field_148759_a", "a" ); | ||
63 | + public static final Obf identityMap = new Obf("field_148749_a", "a" ); | ||
64 | + public static final Obf objectList = new Obf("field_148748_b", "b" ); | ||
65 | + public static final Obf mapSpecialRenderers = new Obf("field_147559_m", "m" ); | ||
66 | + public static final Obf tileEntityNameToClassMap = new Obf("field_145855_i", "f" ); | ||
67 | + public static final Obf tileEntityClassToNameMap = new Obf("field_145853_j", "g" ); | ||
72 | 68 | ||
73 | // Methods | 69 | // Methods |
74 | // ----------------------------------------------------------------------------------------- | 70 | // ----------------------------------------------------------------------------------------- |
75 | public static final Obf processPacket = new Obf("func_148833_a", "a" ); | 71 | public static final Obf processPacket = new Obf("func_148833_a", "a" ); |
76 | - public static final Obf runGameLoop = new Obf("func_71411_J", "ak" ); | ||
77 | - public static final Obf runTick = new Obf("func_71407_l", "p" ); | ||
78 | - public static final Obf updateCameraAndRender = new Obf("func_78480_b", "b" ); | ||
79 | - public static final Obf renderWorld = new Obf("func_78471_a", "a" ); | ||
80 | - public static final Obf renderGameOverlay = new Obf("func_73830_a", "a" ); | ||
81 | - public static final Obf startSection = new Obf("func_76320_a", "a" ); | ||
82 | - public static final Obf endSection = new Obf("func_76319_b", "b" ); | ||
83 | - public static final Obf endStartSection = new Obf("func_76318_c", "c" ); | ||
84 | - public static final Obf spawnPlayer = new Obf("func_148545_a", "a" ); | 72 | + public static final Obf runGameLoop = new Obf("func_71411_J", "as" ); |
73 | + public static final Obf runTick = new Obf("func_71407_l", "r" ); | ||
74 | + public static final Obf updateCameraAndRender = new Obf("func_78480_b", "b" ); | ||
75 | + public static final Obf renderWorld = new Obf("func_78471_a", "a" ); | ||
76 | + public static final Obf renderGameOverlay = new Obf("func_175180_a", "a" ); | ||
77 | + public static final Obf startSection = new Obf("func_76320_a", "a" ); | ||
78 | + public static final Obf endSection = new Obf("func_76319_b", "b" ); | ||
79 | + public static final Obf endStartSection = new Obf("func_76318_c", "c" ); | ||
80 | + public static final Obf spawnPlayer = new Obf("func_148545_a", "f" ); | ||
85 | public static final Obf respawnPlayer = new Obf("func_72368_a", "a" ); | 81 | public static final Obf respawnPlayer = new Obf("func_72368_a", "a" ); |
86 | public static final Obf initializeConnectionToPlayer = new Obf("func_72355_a", "a" ); | 82 | public static final Obf initializeConnectionToPlayer = new Obf("func_72355_a", "a" ); |
87 | public static final Obf playerLoggedIn = new Obf("func_72377_c", "c" ); | 83 | public static final Obf playerLoggedIn = new Obf("func_72377_c", "c" ); |
88 | public static final Obf playerLoggedOut = new Obf("func_72367_e", "e" ); | 84 | public static final Obf playerLoggedOut = new Obf("func_72367_e", "e" ); |
89 | - public static final Obf startGame = new Obf("func_71384_a", "ag" ); | ||
90 | - public static final Obf startServer = new Obf("func_71197_b", "e" ); | ||
91 | - public static final Obf startServerThread = new Obf("func_71256_s", "w" ); | ||
92 | - public static final Obf sendChatMessage = new Obf("func_71165_d", "a" ); | ||
93 | - public static final Obf updateFramebufferSize = new Obf("func_147119_ah", "an" ); | 85 | + public static final Obf startGame = new Obf("func_71384_a", "aj" ); |
86 | + public static final Obf startServer = new Obf("func_71197_b", "i" ); | ||
87 | + public static final Obf startServerThread = new Obf("func_71256_s", "B" ); | ||
88 | + public static final Obf sendChatMessage = new Obf("func_71165_d", "e" ); | ||
89 | + public static final Obf updateFramebufferSize = new Obf("func_147119_ah", "av" ); | ||
94 | public static final Obf framebufferRender = new Obf("func_147615_c", "c" ); | 90 | public static final Obf framebufferRender = new Obf("func_147615_c", "c" ); |
91 | + public static final Obf framebufferRenderExt = new Obf("func_178038_a", "a" ); | ||
95 | public static final Obf bindFramebufferTexture = new Obf("func_147612_c", "c" ); | 92 | public static final Obf bindFramebufferTexture = new Obf("func_147612_c", "c" ); |
96 | public static final Obf drawChat = new Obf("func_146230_a", "a" ); | 93 | public static final Obf drawChat = new Obf("func_146230_a", "a" ); |
94 | + public static final Obf clear = new Obf("func_179086_m", "m" ); | ||
95 | + public static final Obf renderWorldPass = new Obf("func_175068_a", "a" ); | ||
96 | + public static final Obf getProfile = new Obf("func_148256_e", "a" ); | ||
97 | 97 | ||
98 | public static final int MCP = 0; | 98 | public static final int MCP = 0; |
99 | public static final int SRG = 1; | 99 | public static final int SRG = 1; |
100 | public static final int OBF = 2; | 100 | public static final int OBF = 2; |
101 | 101 | ||
102 | private static Properties mcpNames; | 102 | private static Properties mcpNames; |
103 | + | ||
104 | + private static final Map<String, Obf> obfs = new HashMap<String, Obf>(); | ||
105 | + | ||
106 | + static | ||
107 | + { | ||
108 | + try | ||
109 | + { | ||
110 | + for (Field fd : Obf.class.getFields()) | ||
111 | + { | ||
112 | + if (fd.getType().equals(Obf.class)) | ||
113 | + { | ||
114 | + Obf.obfs.put(fd.getName(), (Obf)fd.get(null)); | ||
115 | + } | ||
116 | + } | ||
117 | + } | ||
118 | + catch (IllegalAccessException ex) {} | ||
119 | + } | ||
103 | 120 | ||
104 | /** | 121 | /** |
105 | * Array of names, indexed by MCP, SRG, OBF constants | 122 | * Array of names, indexed by MCP, SRG, OBF constants |
@@ -205,4 +222,13 @@ public class Obf | @@ -205,4 +222,13 @@ public class Obf | ||
205 | 222 | ||
206 | return Obf.mcpNames.getProperty(seargeName, seargeName); | 223 | return Obf.mcpNames.getProperty(seargeName, seargeName); |
207 | } | 224 | } |
225 | + | ||
226 | + /** | ||
227 | + * @param name | ||
228 | + * @return | ||
229 | + */ | ||
230 | + public static Obf getByName(String name) | ||
231 | + { | ||
232 | + return Obf.obfs.get(name); | ||
233 | + } | ||
208 | } | 234 | } |
java/common/com/mumfrey/liteloader/core/runtime/Packets.java
1 | package com.mumfrey.liteloader.core.runtime; | 1 | package com.mumfrey.liteloader.core.runtime; |
2 | 2 | ||
3 | +import java.util.HashMap; | ||
4 | +import java.util.Map; | ||
5 | + | ||
3 | /** | 6 | /** |
4 | * Packet obfuscation table | 7 | * Packet obfuscation table |
5 | * | 8 | * |
6 | * @author Adam Mummery-Smith | 9 | * @author Adam Mummery-Smith |
7 | - * TODO Obfuscation 1.7.10 | 10 | + * TODO Obfuscation 1.8 |
8 | */ | 11 | */ |
9 | -@SuppressWarnings("hiding") | ||
10 | public class Packets extends Obf | 12 | public class Packets extends Obf |
11 | { | 13 | { |
12 | - public static final Packets S08PacketPlayerPosLook = new Packets("net.minecraft.network.play.server.S08PacketPlayerPosLook", "fu"); | ||
13 | - public static final Packets S0EPacketSpawnObject = new Packets("net.minecraft.network.play.server.S0EPacketSpawnObject", "fw"); | ||
14 | - public static final Packets S11PacketSpawnExperienceOrb = new Packets("net.minecraft.network.play.server.S11PacketSpawnExperienceOrb", "fx"); | ||
15 | - public static final Packets S2CPacketSpawnGlobalEntity = new Packets("net.minecraft.network.play.server.S2CPacketSpawnGlobalEntity", "fy"); | ||
16 | - public static final Packets S0FPacketSpawnMob = new Packets("net.minecraft.network.play.server.S0FPacketSpawnMob", "fz"); | ||
17 | - public static final Packets S10PacketSpawnPainting = new Packets("net.minecraft.network.play.server.S10PacketSpawnPainting", "ga"); | ||
18 | - public static final Packets S0CPacketSpawnPlayer = new Packets("net.minecraft.network.play.server.S0CPacketSpawnPlayer", "gb"); | ||
19 | - public static final Packets S0BPacketAnimation = new Packets("net.minecraft.network.play.server.S0BPacketAnimation", "gc"); | ||
20 | - public static final Packets S37PacketStatistics = new Packets("net.minecraft.network.play.server.S37PacketStatistics", "gd"); | ||
21 | - public static final Packets S25PacketBlockBreakAnim = new Packets("net.minecraft.network.play.server.S25PacketBlockBreakAnim", "ge"); | ||
22 | - public static final Packets S35PacketUpdateTileEntity = new Packets("net.minecraft.network.play.server.S35PacketUpdateTileEntity", "gf"); | ||
23 | - public static final Packets S24PacketBlockAction = new Packets("net.minecraft.network.play.server.S24PacketBlockAction", "gg"); | ||
24 | - public static final Packets S23PacketBlockChange = new Packets("net.minecraft.network.play.server.S23PacketBlockChange", "gh"); | ||
25 | - public static final Packets S3APacketTabComplete = new Packets("net.minecraft.network.play.server.S3APacketTabComplete", "gi"); | ||
26 | - public static final Packets S02PacketChat = new Packets("net.minecraft.network.play.server.S02PacketChat", "gj"); | ||
27 | - public static final Packets S22PacketMultiBlockChange = new Packets("net.minecraft.network.play.server.S22PacketMultiBlockChange", "gk"); | ||
28 | - public static final Packets S32PacketConfirmTransaction = new Packets("net.minecraft.network.play.server.S32PacketConfirmTransaction", "gl"); | ||
29 | - public static final Packets S2EPacketCloseWindow = new Packets("net.minecraft.network.play.server.S2EPacketCloseWindow", "gm"); | ||
30 | - public static final Packets S2DPacketOpenWindow = new Packets("net.minecraft.network.play.server.S2DPacketOpenWindow", "gn"); | ||
31 | - public static final Packets S30PacketWindowItems = new Packets("net.minecraft.network.play.server.S30PacketWindowItems", "go"); | ||
32 | - public static final Packets S31PacketWindowProperty = new Packets("net.minecraft.network.play.server.S31PacketWindowProperty", "gp"); | ||
33 | - public static final Packets S2FPacketSetSlot = new Packets("net.minecraft.network.play.server.S2FPacketSetSlot", "gq"); | ||
34 | - public static final Packets S3FPacketCustomPayload = new Packets("net.minecraft.network.play.server.S3FPacketCustomPayload", "gr"); | ||
35 | - public static final Packets S40PacketDisconnect = new Packets("net.minecraft.network.play.server.S40PacketDisconnect", "gs"); | ||
36 | - public static final Packets S19PacketEntityStatus = new Packets("net.minecraft.network.play.server.S19PacketEntityStatus", "gt"); | ||
37 | - public static final Packets S27PacketExplosion = new Packets("net.minecraft.network.play.server.S27PacketExplosion", "gu"); | ||
38 | - public static final Packets S2BPacketChangeGameState = new Packets("net.minecraft.network.play.server.S2BPacketChangeGameState", "gv"); | ||
39 | - public static final Packets S00PacketKeepAlive = new Packets("net.minecraft.network.play.server.S00PacketKeepAlive", "gw"); | ||
40 | - public static final Packets S21PacketChunkData = new Packets("net.minecraft.network.play.server.S21PacketChunkData", "gx"); | ||
41 | - public static final Packets S21PacketChunkData$Extracted = new Packets("net.minecraft.network.play.server.S21PacketChunkData$Extracted", "gy"); | ||
42 | - public static final Packets S26PacketMapChunkBulk = new Packets("net.minecraft.network.play.server.S26PacketMapChunkBulk", "gz"); | ||
43 | - public static final Packets S28PacketEffect = new Packets("net.minecraft.network.play.server.S28PacketEffect", "ha"); | ||
44 | - public static final Packets S2APacketParticles = new Packets("net.minecraft.network.play.server.S2APacketParticles", "hb"); | ||
45 | - public static final Packets S29PacketSoundEffect = new Packets("net.minecraft.network.play.server.S29PacketSoundEffect", "hc"); | ||
46 | - public static final Packets S01PacketJoinGame = new Packets("net.minecraft.network.play.server.S01PacketJoinGame", "hd"); | ||
47 | - public static final Packets S34PacketMaps = new Packets("net.minecraft.network.play.server.S34PacketMaps", "he"); | ||
48 | - public static final Packets S14PacketEntity = new Packets("net.minecraft.network.play.server.S14PacketEntity", "hf"); | ||
49 | - public static final Packets S15PacketEntityRelMove = new Packets("net.minecraft.network.play.server.S14PacketEntity$S15PacketEntityRelMove", "hg"); | ||
50 | - public static final Packets S17PacketEntityLookMove = new Packets("net.minecraft.network.play.server.S14PacketEntity$S17PacketEntityLookMove", "hh"); | ||
51 | - public static final Packets S16PacketEntityLook = new Packets("net.minecraft.network.play.server.S14PacketEntity$S16PacketEntityLook", "hi"); | ||
52 | - public static final Packets S36PacketSignEditorOpen = new Packets("net.minecraft.network.play.server.S36PacketSignEditorOpen", "hj"); | ||
53 | - public static final Packets S39PacketPlayerAbilities = new Packets("net.minecraft.network.play.server.S39PacketPlayerAbilities", "hk"); | ||
54 | - public static final Packets S38PacketPlayerListItem = new Packets("net.minecraft.network.play.server.S38PacketPlayerListItem", "ho"); | ||
55 | - public static final Packets S0APacketUseBed = new Packets("net.minecraft.network.play.server.S0APacketUseBed", "hp"); | ||
56 | - public static final Packets S13PacketDestroyEntities = new Packets("net.minecraft.network.play.server.S13PacketDestroyEntities", "hq"); | ||
57 | - public static final Packets S1EPacketRemoveEntityEffect = new Packets("net.minecraft.network.play.server.S1EPacketRemoveEntityEffect", "hr"); | ||
58 | - public static final Packets S07PacketRespawn = new Packets("net.minecraft.network.play.server.S07PacketRespawn", "hs"); | ||
59 | - public static final Packets S19PacketEntityHeadLook = new Packets("net.minecraft.network.play.server.S19PacketEntityHeadLook", "ht"); | ||
60 | - public static final Packets S09PacketHeldItemChange = new Packets("net.minecraft.network.play.server.S09PacketHeldItemChange", "hu"); | ||
61 | - public static final Packets S3DPacketDisplayScoreboard = new Packets("net.minecraft.network.play.server.S3DPacketDisplayScoreboard", "hv"); | ||
62 | - public static final Packets S1CPacketEntityMetadata = new Packets("net.minecraft.network.play.server.S1CPacketEntityMetadata", "hw"); | ||
63 | - public static final Packets S1BPacketEntityAttach = new Packets("net.minecraft.network.play.server.S1BPacketEntityAttach", "hx"); | ||
64 | - public static final Packets S12PacketEntityVelocity = new Packets("net.minecraft.network.play.server.S12PacketEntityVelocity", "hy"); | ||
65 | - public static final Packets S04PacketEntityEquipment = new Packets("net.minecraft.network.play.server.S04PacketEntityEquipment", "hz"); | ||
66 | - public static final Packets S1FPacketSetExperience = new Packets("net.minecraft.network.play.server.S1FPacketSetExperience", "ia"); | ||
67 | - public static final Packets S06PacketUpdateHealth = new Packets("net.minecraft.network.play.server.S06PacketUpdateHealth", "ib"); | ||
68 | - public static final Packets S3BPacketScoreboardObjective = new Packets("net.minecraft.network.play.server.S3BPacketScoreboardObjective", "ic"); | ||
69 | - public static final Packets S3EPacketTeams = new Packets("net.minecraft.network.play.server.S3EPacketTeams", "id"); | ||
70 | - public static final Packets S3CPacketUpdateScore = new Packets("net.minecraft.network.play.server.S3CPacketUpdateScore", "ie"); | ||
71 | - public static final Packets S05PacketSpawnPosition = new Packets("net.minecraft.network.play.server.S05PacketSpawnPosition", "ig"); | ||
72 | - public static final Packets S03PacketTimeUpdate = new Packets("net.minecraft.network.play.server.S03PacketTimeUpdate", "ih"); | ||
73 | - public static final Packets S33PacketUpdateSign = new Packets("net.minecraft.network.play.server.S33PacketUpdateSign", "ii"); | ||
74 | - public static final Packets S0DPacketCollectItem = new Packets("net.minecraft.network.play.server.S0DPacketCollectItem", "ij"); | ||
75 | - public static final Packets S18PacketEntityTeleport = new Packets("net.minecraft.network.play.server.S18PacketEntityTeleport", "ik"); | ||
76 | - public static final Packets S20PacketEntityProperties = new Packets("net.minecraft.network.play.server.S20PacketEntityProperties", "il"); | ||
77 | - public static final Packets S20PacketEntityProperties$Snapshot = new Packets("net.minecraft.network.play.server.S20PacketEntityProperties$Snapshot", "im"); | ||
78 | - public static final Packets S1DPacketEntityEffect = new Packets("net.minecraft.network.play.server.S1DPacketEntityEffect", "in"); | ||
79 | - public static final Packets C0APacketAnimation = new Packets("net.minecraft.network.play.client.C0APacketAnimation", "ip"); | ||
80 | - public static final Packets C14PacketTabComplete = new Packets("net.minecraft.network.play.client.C14PacketTabComplete", "iq"); | ||
81 | - public static final Packets C01PacketChatMessage = new Packets("net.minecraft.network.play.client.C01PacketChatMessage", "ir"); | ||
82 | - public static final Packets C16PacketClientStatus = new Packets("net.minecraft.network.play.client.C16PacketClientStatus", "is"); | ||
83 | - public static final Packets C16PacketClientStatus$EnumState = new Packets("net.minecraft.network.play.client.C16PacketClientStatus$EnumState", "it"); | ||
84 | - public static final Packets C15PacketClientSettings = new Packets("net.minecraft.network.play.client.C15PacketClientSettings", "iu"); | ||
85 | - public static final Packets C0FPacketConfirmTransaction = new Packets("net.minecraft.network.play.client.C0FPacketConfirmTransaction", "iv"); | ||
86 | - public static final Packets C11PacketEnchantItem = new Packets("net.minecraft.network.play.client.C11PacketEnchantItem", "iw"); | ||
87 | - public static final Packets C0EPacketClickWindow = new Packets("net.minecraft.network.play.client.C0EPacketClickWindow", "ix"); | ||
88 | - public static final Packets C0DPacketCloseWindow = new Packets("net.minecraft.network.play.client.C0DPacketCloseWindow", "iy"); | ||
89 | - public static final Packets C17PacketCustomPayload = new Packets("net.minecraft.network.play.client.C17PacketCustomPayload", "iz"); | ||
90 | - public static final Packets C02PacketUseEntity = new Packets("net.minecraft.network.play.client.C02PacketUseEntity", "ja"); | ||
91 | - public static final Packets C02PacketUseEntity$Action = new Packets("net.minecraft.network.play.client.C02PacketUseEntity$Action", "jb"); | ||
92 | - public static final Packets C00PacketKeepAlive = new Packets("net.minecraft.network.play.client.C00PacketKeepAlive", "jc"); | ||
93 | - public static final Packets C03PacketPlayer = new Packets("net.minecraft.network.play.client.C03PacketPlayer", "jd"); | ||
94 | - public static final Packets C04PacketPlayerPosition = new Packets("net.minecraft.network.play.client.C03PacketPlayer$C04PacketPlayerPosition", "je"); | ||
95 | - public static final Packets C06PacketPlayerPosLook = new Packets("net.minecraft.network.play.client.C03PacketPlayer$C06PacketPlayerPosLook", "jf"); | ||
96 | - public static final Packets C05PacketPlayerLook = new Packets("net.minecraft.network.play.client.C03PacketPlayer$C05PacketPlayerLook", "jg"); | ||
97 | - public static final Packets C13PacketPlayerAbilities = new Packets("net.minecraft.network.play.client.C13PacketPlayerAbilities", "jh"); | ||
98 | - public static final Packets C07PacketPlayerDigging = new Packets("net.minecraft.network.play.client.C07PacketPlayerDigging", "ji"); | ||
99 | - public static final Packets C0BPacketEntityAction = new Packets("net.minecraft.network.play.client.C0BPacketEntityAction", "jj"); | ||
100 | - public static final Packets C0CPacketInput = new Packets("net.minecraft.network.play.client.C0CPacketInput", "jk"); | ||
101 | - public static final Packets C09PacketHeldItemChange = new Packets("net.minecraft.network.play.client.C09PacketHeldItemChange", "jl"); | ||
102 | - public static final Packets C10PacketCreativeInventoryAction = new Packets("net.minecraft.network.play.client.C10PacketCreativeInventoryAction", "jm"); | ||
103 | - public static final Packets C12PacketUpdateSign = new Packets("net.minecraft.network.play.client.C12PacketUpdateSign", "jn"); | ||
104 | - public static final Packets C08PacketPlayerBlockPlacement = new Packets("net.minecraft.network.play.client.C08PacketPlayerBlockPlacement", "jo"); | ||
105 | - public static final Packets C00Handshake = new Packets("net.minecraft.network.handshake.client.C00Handshake", "jp"); | ||
106 | - public static final Packets S02PacketLoginSuccess = new Packets("net.minecraft.network.login.server.S02PacketLoginSuccess", "js"); | ||
107 | - public static final Packets S01PacketEncryptionRequest = new Packets("net.minecraft.network.login.server.S01PacketEncryptionRequest", "jt"); | ||
108 | - public static final Packets S00PacketDisconnect = new Packets("net.minecraft.network.login.server.S00PacketDisconnect", "ju"); | ||
109 | - public static final Packets C00PacketLoginStart = new Packets("net.minecraft.network.login.client.C00PacketLoginStart", "jw"); | ||
110 | - public static final Packets C01PacketEncryptionResponse = new Packets("net.minecraft.network.login.client.C01PacketEncryptionResponse", "jx"); | ||
111 | - public static final Packets S01PacketPong = new Packets("net.minecraft.network.status.server.S01PacketPong", "jz"); | ||
112 | - public static final Packets S00PacketServerInfo = new Packets("net.minecraft.network.status.server.S00PacketServerInfo", "ka"); | 14 | + private static Map<String, Packets> packetMap = new HashMap<String, Packets>(); |
15 | + | ||
16 | + public static Packets S08PacketPlayerPosLook = new Packets("net.minecraft.network.play.server.S08PacketPlayerPosLook", "ii"); | ||
17 | + public static Packets S0EPacketSpawnObject = new Packets("net.minecraft.network.play.server.S0EPacketSpawnObject", "il"); | ||
18 | + public static Packets S11PacketSpawnExperienceOrb = new Packets("net.minecraft.network.play.server.S11PacketSpawnExperienceOrb", "im"); | ||
19 | + public static Packets S2CPacketSpawnGlobalEntity = new Packets("net.minecraft.network.play.server.S2CPacketSpawnGlobalEntity", "in"); | ||
20 | + public static Packets S0FPacketSpawnMob = new Packets("net.minecraft.network.play.server.S0FPacketSpawnMob", "io"); | ||
21 | + public static Packets S10PacketSpawnPainting = new Packets("net.minecraft.network.play.server.S10PacketSpawnPainting", "ip"); | ||
22 | + public static Packets S0CPacketSpawnPlayer = new Packets("net.minecraft.network.play.server.S0CPacketSpawnPlayer", "iq"); | ||
23 | + public static Packets S0BPacketAnimation = new Packets("net.minecraft.network.play.server.S0BPacketAnimation", "ir"); | ||
24 | + public static Packets S37PacketStatistics = new Packets("net.minecraft.network.play.server.S37PacketStatistics", "is"); | ||
25 | + public static Packets S25PacketBlockBreakAnim = new Packets("net.minecraft.network.play.server.S25PacketBlockBreakAnim", "it"); | ||
26 | + public static Packets S35PacketUpdateTileEntity = new Packets("net.minecraft.network.play.server.S35PacketUpdateTileEntity", "iu"); | ||
27 | + public static Packets S24PacketBlockAction = new Packets("net.minecraft.network.play.server.S24PacketBlockAction", "iv"); | ||
28 | + public static Packets S23PacketBlockChange = new Packets("net.minecraft.network.play.server.S23PacketBlockChange", "iw"); | ||
29 | + public static Packets S41PacketServerDifficulty = new Packets("net.minecraft.network.play.server.S41PacketServerDifficulty", "ix"); | ||
30 | + public static Packets S3APacketTabComplete = new Packets("net.minecraft.network.play.server.S3APacketTabComplete", "iy"); | ||
31 | + public static Packets S02PacketChat = new Packets("net.minecraft.network.play.server.S02PacketChat", "iz"); | ||
32 | + public static Packets S22PacketMultiBlockChange = new Packets("net.minecraft.network.play.server.S22PacketMultiBlockChange", "ja"); | ||
33 | + public static Packets S32PacketConfirmTransaction = new Packets("net.minecraft.network.play.server.S32PacketConfirmTransaction", "jc"); | ||
34 | + public static Packets S2EPacketCloseWindow = new Packets("net.minecraft.network.play.server.S2EPacketCloseWindow", "jd"); | ||
35 | + public static Packets S2DPacketOpenWindow = new Packets("net.minecraft.network.play.server.S2DPacketOpenWindow", "je"); | ||
36 | + public static Packets S30PacketWindowItems = new Packets("net.minecraft.network.play.server.S30PacketWindowItems", "jf"); | ||
37 | + public static Packets S31PacketWindowProperty = new Packets("net.minecraft.network.play.server.S31PacketWindowProperty", "jg"); | ||
38 | + public static Packets S2FPacketSetSlot = new Packets("net.minecraft.network.play.server.S2FPacketSetSlot", "jh"); | ||
39 | + public static Packets S3FPacketCustomPayload = new Packets("net.minecraft.network.play.server.S3FPacketCustomPayload", "ji"); | ||
40 | + public static Packets S40PacketDisconnect = new Packets("net.minecraft.network.play.server.S40PacketDisconnect", "jj"); | ||
41 | + public static Packets S19PacketEntityStatus = new Packets("net.minecraft.network.play.server.S19PacketEntityStatus", "jk"); | ||
42 | + public static Packets S49PacketUpdateEntityNBT = new Packets("net.minecraft.network.play.server.S49PacketUpdateEntityNBT", "jl"); | ||
43 | + public static Packets S27PacketExplosion = new Packets("net.minecraft.network.play.server.S27PacketExplosion", "jm"); | ||
44 | + public static Packets S46PacketSetCompressionLevel = new Packets("net.minecraft.network.play.server.S46PacketSetCompressionLevel", "jn"); | ||
45 | + public static Packets S2BPacketChangeGameState = new Packets("net.minecraft.network.play.server.S2BPacketChangeGameState", "jo"); | ||
46 | + public static Packets S00PacketKeepAlive = new Packets("net.minecraft.network.play.server.S00PacketKeepAlive", "jp"); | ||
47 | + public static Packets S21PacketChunkData = new Packets("net.minecraft.network.play.server.S21PacketChunkData", "jq"); | ||
48 | + public static Packets S26PacketMapChunkBulk = new Packets("net.minecraft.network.play.server.S26PacketMapChunkBulk", "js"); | ||
49 | + public static Packets S28PacketEffect = new Packets("net.minecraft.network.play.server.S28PacketEffect", "jt"); | ||
50 | + public static Packets S2APacketParticles = new Packets("net.minecraft.network.play.server.S2APacketParticles", "ju"); | ||
51 | + public static Packets S29PacketSoundEffect = new Packets("net.minecraft.network.play.server.S29PacketSoundEffect", "jv"); | ||
52 | + public static Packets S01PacketJoinGame = new Packets("net.minecraft.network.play.server.S01PacketJoinGame", "jw"); | ||
53 | + public static Packets S34PacketMaps = new Packets("net.minecraft.network.play.server.S34PacketMaps", "jx"); | ||
54 | + public static Packets S14PacketEntity = new Packets("net.minecraft.network.play.server.S14PacketEntity", "jy"); | ||
55 | + public static Packets S15PacketEntityRelMove = new Packets("net.minecraft.network.play.server.S14PacketEntity$S15PacketEntityRelMove", "jz"); | ||
56 | + public static Packets S17PacketEntityLookMove = new Packets("net.minecraft.network.play.server.S14PacketEntity$S17PacketEntityLookMove", "ka"); | ||
57 | + public static Packets S16PacketEntityLook = new Packets("net.minecraft.network.play.server.S14PacketEntity$S16PacketEntityLook", "kb"); | ||
58 | + public static Packets S36PacketSignEditorOpen = new Packets("net.minecraft.network.play.server.S36PacketSignEditorOpen", "kc"); | ||
59 | + public static Packets S39PacketPlayerAbilities = new Packets("net.minecraft.network.play.server.S39PacketPlayerAbilities", "kd"); | ||
60 | + public static Packets S42PacketCombatEvent = new Packets("net.minecraft.network.play.server.S42PacketCombatEvent", "ke"); | ||
61 | + public static Packets S38PacketPlayerListItem = new Packets("net.minecraft.network.play.server.S38PacketPlayerListItem", "kh"); | ||
62 | + public static Packets S0APacketUseBed = new Packets("net.minecraft.network.play.server.S0APacketUseBed", "kl"); | ||
63 | + public static Packets S13PacketDestroyEntities = new Packets("net.minecraft.network.play.server.S13PacketDestroyEntities", "km"); | ||
64 | + public static Packets S1EPacketRemoveEntityEffect = new Packets("net.minecraft.network.play.server.S1EPacketRemoveEntityEffect", "kn"); | ||
65 | + public static Packets S48PacketResourcePackSend = new Packets("net.minecraft.network.play.server.S48PacketResourcePackSend", "ko"); | ||
66 | + public static Packets S07PacketRespawn = new Packets("net.minecraft.network.play.server.S07PacketRespawn", "kp"); | ||
67 | + public static Packets S19PacketEntityHeadLook = new Packets("net.minecraft.network.play.server.S19PacketEntityHeadLook", "kq"); | ||
68 | + public static Packets S44PacketWorldBorder = new Packets("net.minecraft.network.play.server.S44PacketWorldBorder", "kr"); | ||
69 | + public static Packets S43PacketCamera = new Packets("net.minecraft.network.play.server.S43PacketCamera", "ku"); | ||
70 | + public static Packets S09PacketHeldItemChange = new Packets("net.minecraft.network.play.server.S09PacketHeldItemChange", "kv"); | ||
71 | + public static Packets S3DPacketDisplayScoreboard = new Packets("net.minecraft.network.play.server.S3DPacketDisplayScoreboard", "kw"); | ||
72 | + public static Packets S1CPacketEntityMetadata = new Packets("net.minecraft.network.play.server.S1CPacketEntityMetadata", "kx"); | ||
73 | + public static Packets S1BPacketEntityAttach = new Packets("net.minecraft.network.play.server.S1BPacketEntityAttach", "ky"); | ||
74 | + public static Packets S12PacketEntityVelocity = new Packets("net.minecraft.network.play.server.S12PacketEntityVelocity", "kz"); | ||
75 | + public static Packets S04PacketEntityEquipment = new Packets("net.minecraft.network.play.server.S04PacketEntityEquipment", "la"); | ||
76 | + public static Packets S1FPacketSetExperience = new Packets("net.minecraft.network.play.server.S1FPacketSetExperience", "lb"); | ||
77 | + public static Packets S06PacketUpdateHealth = new Packets("net.minecraft.network.play.server.S06PacketUpdateHealth", "lc"); | ||
78 | + public static Packets S3BPacketScoreboardObjective = new Packets("net.minecraft.network.play.server.S3BPacketScoreboardObjective", "ld"); | ||
79 | + public static Packets S3EPacketTeams = new Packets("net.minecraft.network.play.server.S3EPacketTeams", "le"); | ||
80 | + public static Packets S3CPacketUpdateScore = new Packets("net.minecraft.network.play.server.S3CPacketUpdateScore", "lf"); | ||
81 | + public static Packets S05PacketSpawnPosition = new Packets("net.minecraft.network.play.server.S05PacketSpawnPosition", "lh"); | ||
82 | + public static Packets S03PacketTimeUpdate = new Packets("net.minecraft.network.play.server.S03PacketTimeUpdate", "li"); | ||
83 | + public static Packets S45PacketTitle = new Packets("net.minecraft.network.play.server.S45PacketTitle", "lj"); | ||
84 | + public static Packets S33PacketUpdateSign = new Packets("net.minecraft.network.play.server.S33PacketUpdateSign", "ll"); | ||
85 | + public static Packets S47PacketPlayerListHeaderFooter = new Packets("net.minecraft.network.play.server.S47PacketPlayerListHeaderFooter", "lm"); | ||
86 | + public static Packets S0DPacketCollectItem = new Packets("net.minecraft.network.play.server.S0DPacketCollectItem", "ln"); | ||
87 | + public static Packets S18PacketEntityTeleport = new Packets("net.minecraft.network.play.server.S18PacketEntityTeleport", "lo"); | ||
88 | + public static Packets S20PacketEntityProperties = new Packets("net.minecraft.network.play.server.S20PacketEntityProperties", "lp"); | ||
89 | + public static Packets S1DPacketEntityEffect = new Packets("net.minecraft.network.play.server.S1DPacketEntityEffect", "lr"); | ||
90 | + public static Packets C14PacketTabComplete = new Packets("net.minecraft.network.play.client.C14PacketTabComplete", "lt"); | ||
91 | + public static Packets C01PacketChatMessage = new Packets("net.minecraft.network.play.client.C01PacketChatMessage", "lu"); | ||
92 | + public static Packets C16PacketClientStatus = new Packets("net.minecraft.network.play.client.C16PacketClientStatus", "lv"); | ||
93 | + public static Packets C15PacketClientSettings = new Packets("net.minecraft.network.play.client.C15PacketClientSettings", "lx"); | ||
94 | + public static Packets C0FPacketConfirmTransaction = new Packets("net.minecraft.network.play.client.C0FPacketConfirmTransaction", "ly"); | ||
95 | + public static Packets C11PacketEnchantItem = new Packets("net.minecraft.network.play.client.C11PacketEnchantItem", "lz"); | ||
96 | + public static Packets C0EPacketClickWindow = new Packets("net.minecraft.network.play.client.C0EPacketClickWindow", "ma"); | ||
97 | + public static Packets C0DPacketCloseWindow = new Packets("net.minecraft.network.play.client.C0DPacketCloseWindow", "mb"); | ||
98 | + public static Packets C17PacketCustomPayload = new Packets("net.minecraft.network.play.client.C17PacketCustomPayload", "mc"); | ||
99 | + public static Packets C02PacketUseEntity = new Packets("net.minecraft.network.play.client.C02PacketUseEntity", "md"); | ||
100 | + public static Packets C00PacketKeepAlive = new Packets("net.minecraft.network.play.client.C00PacketKeepAlive", "mf"); | ||
101 | + public static Packets C03PacketPlayer = new Packets("net.minecraft.network.play.client.C03PacketPlayer", "mg"); | ||
102 | + public static Packets C04PacketPlayerPosition = new Packets("net.minecraft.network.play.client.C03PacketPlayer$C04PacketPlayerPosition", "mh"); | ||
103 | + public static Packets C06PacketPlayerPosLook = new Packets("net.minecraft.network.play.client.C03PacketPlayer$C06PacketPlayerPosLook", "mi"); | ||
104 | + public static Packets C05PacketPlayerLook = new Packets("net.minecraft.network.play.client.C03PacketPlayer$C05PacketPlayerLook", "mj"); | ||
105 | + public static Packets C13PacketPlayerAbilities = new Packets("net.minecraft.network.play.client.C13PacketPlayerAbilities", "mk"); | ||
106 | + public static Packets C07PacketPlayerDigging = new Packets("net.minecraft.network.play.client.C07PacketPlayerDigging", "ml"); | ||
107 | + public static Packets C0BPacketEntityAction = new Packets("net.minecraft.network.play.client.C0BPacketEntityAction", "mn"); | ||
108 | + public static Packets C0CPacketInput = new Packets("net.minecraft.network.play.client.C0CPacketInput", "mp"); | ||
109 | + public static Packets C19PacketResourcePackStatus = new Packets("net.minecraft.network.play.client.C19PacketResourcePackStatus", "mq"); | ||
110 | + public static Packets C09PacketHeldItemChange = new Packets("net.minecraft.network.play.client.C09PacketHeldItemChange", "ms"); | ||
111 | + public static Packets C10PacketCreativeInventoryAction = new Packets("net.minecraft.network.play.client.C10PacketCreativeInventoryAction", "mt"); | ||
112 | + public static Packets C12PacketUpdateSign = new Packets("net.minecraft.network.play.client.C12PacketUpdateSign", "mu"); | ||
113 | + public static Packets C0APacketAnimation = new Packets("net.minecraft.network.play.client.C0APacketAnimation", "mv"); | ||
114 | + public static Packets C18PacketSpectate = new Packets("net.minecraft.network.play.client.C18PacketSpectate", "mw"); | ||
115 | + public static Packets C08PacketPlayerBlockPlacement = new Packets("net.minecraft.network.play.client.C08PacketPlayerBlockPlacement", "mx"); | ||
116 | + public static Packets C00Handshake = new Packets("net.minecraft.network.handshake.client.C00Handshake", "mz"); | ||
117 | + public static Packets S02PacketLoginSuccess = new Packets("net.minecraft.network.login.server.S02PacketLoginSuccess", "nd"); | ||
118 | + public static Packets S01PacketEncryptionRequest = new Packets("net.minecraft.network.login.server.S01PacketEncryptionRequest", "ne"); | ||
119 | + public static Packets S03PacketEnableCompression = new Packets("net.minecraft.network.login.server.S03PacketEnableCompression", "nf"); | ||
120 | + public static Packets S00PacketDisconnect = new Packets("net.minecraft.network.login.server.S00PacketDisconnect", "ng"); | ||
121 | + public static Packets C00PacketLoginStart = new Packets("net.minecraft.network.login.client.C00PacketLoginStart", "ni"); | ||
122 | + public static Packets C01PacketEncryptionResponse = new Packets("net.minecraft.network.login.client.C01PacketEncryptionResponse", "nj"); | ||
123 | + public static Packets S01PacketPong = new Packets("net.minecraft.network.status.server.S01PacketPong", "nn"); | ||
124 | + public static Packets S00PacketServerInfo = new Packets("net.minecraft.network.status.server.S00PacketServerInfo", "no"); | ||
125 | + public static Packets C01PacketPing = new Packets("net.minecraft.network.status.client.C01PacketPing", "nw"); | ||
126 | + public static Packets C00PacketServerQuery = new Packets("net.minecraft.network.status.client.C00PacketServerQuery", "nx"); | ||
113 | 127 | ||
114 | public static final Packets[] packets = new Packets[] { | 128 | public static final Packets[] packets = new Packets[] { |
115 | S08PacketPlayerPosLook, | 129 | S08PacketPlayerPosLook, |
@@ -125,6 +139,7 @@ public class Packets extends Obf | @@ -125,6 +139,7 @@ public class Packets extends Obf | ||
125 | S35PacketUpdateTileEntity, | 139 | S35PacketUpdateTileEntity, |
126 | S24PacketBlockAction, | 140 | S24PacketBlockAction, |
127 | S23PacketBlockChange, | 141 | S23PacketBlockChange, |
142 | + S41PacketServerDifficulty, | ||
128 | S3APacketTabComplete, | 143 | S3APacketTabComplete, |
129 | S02PacketChat, | 144 | S02PacketChat, |
130 | S22PacketMultiBlockChange, | 145 | S22PacketMultiBlockChange, |
@@ -137,11 +152,12 @@ public class Packets extends Obf | @@ -137,11 +152,12 @@ public class Packets extends Obf | ||
137 | S3FPacketCustomPayload, | 152 | S3FPacketCustomPayload, |
138 | S40PacketDisconnect, | 153 | S40PacketDisconnect, |
139 | S19PacketEntityStatus, | 154 | S19PacketEntityStatus, |
155 | + S49PacketUpdateEntityNBT, | ||
140 | S27PacketExplosion, | 156 | S27PacketExplosion, |
157 | + S46PacketSetCompressionLevel, | ||
141 | S2BPacketChangeGameState, | 158 | S2BPacketChangeGameState, |
142 | S00PacketKeepAlive, | 159 | S00PacketKeepAlive, |
143 | S21PacketChunkData, | 160 | S21PacketChunkData, |
144 | - S21PacketChunkData$Extracted, | ||
145 | S26PacketMapChunkBulk, | 161 | S26PacketMapChunkBulk, |
146 | S28PacketEffect, | 162 | S28PacketEffect, |
147 | S2APacketParticles, | 163 | S2APacketParticles, |
@@ -154,12 +170,16 @@ public class Packets extends Obf | @@ -154,12 +170,16 @@ public class Packets extends Obf | ||
154 | S16PacketEntityLook, | 170 | S16PacketEntityLook, |
155 | S36PacketSignEditorOpen, | 171 | S36PacketSignEditorOpen, |
156 | S39PacketPlayerAbilities, | 172 | S39PacketPlayerAbilities, |
173 | + S42PacketCombatEvent, | ||
157 | S38PacketPlayerListItem, | 174 | S38PacketPlayerListItem, |
158 | S0APacketUseBed, | 175 | S0APacketUseBed, |
159 | S13PacketDestroyEntities, | 176 | S13PacketDestroyEntities, |
160 | S1EPacketRemoveEntityEffect, | 177 | S1EPacketRemoveEntityEffect, |
178 | + S48PacketResourcePackSend, | ||
161 | S07PacketRespawn, | 179 | S07PacketRespawn, |
162 | S19PacketEntityHeadLook, | 180 | S19PacketEntityHeadLook, |
181 | + S44PacketWorldBorder, | ||
182 | + S43PacketCamera, | ||
163 | S09PacketHeldItemChange, | 183 | S09PacketHeldItemChange, |
164 | S3DPacketDisplayScoreboard, | 184 | S3DPacketDisplayScoreboard, |
165 | S1CPacketEntityMetadata, | 185 | S1CPacketEntityMetadata, |
@@ -173,17 +193,16 @@ public class Packets extends Obf | @@ -173,17 +193,16 @@ public class Packets extends Obf | ||
173 | S3CPacketUpdateScore, | 193 | S3CPacketUpdateScore, |
174 | S05PacketSpawnPosition, | 194 | S05PacketSpawnPosition, |
175 | S03PacketTimeUpdate, | 195 | S03PacketTimeUpdate, |
196 | + S45PacketTitle, | ||
176 | S33PacketUpdateSign, | 197 | S33PacketUpdateSign, |
198 | + S47PacketPlayerListHeaderFooter, | ||
177 | S0DPacketCollectItem, | 199 | S0DPacketCollectItem, |
178 | S18PacketEntityTeleport, | 200 | S18PacketEntityTeleport, |
179 | S20PacketEntityProperties, | 201 | S20PacketEntityProperties, |
180 | - S20PacketEntityProperties$Snapshot, | ||
181 | S1DPacketEntityEffect, | 202 | S1DPacketEntityEffect, |
182 | - C0APacketAnimation, | ||
183 | C14PacketTabComplete, | 203 | C14PacketTabComplete, |
184 | C01PacketChatMessage, | 204 | C01PacketChatMessage, |
185 | C16PacketClientStatus, | 205 | C16PacketClientStatus, |
186 | - C16PacketClientStatus$EnumState, | ||
187 | C15PacketClientSettings, | 206 | C15PacketClientSettings, |
188 | C0FPacketConfirmTransaction, | 207 | C0FPacketConfirmTransaction, |
189 | C11PacketEnchantItem, | 208 | C11PacketEnchantItem, |
@@ -191,7 +210,6 @@ public class Packets extends Obf | @@ -191,7 +210,6 @@ public class Packets extends Obf | ||
191 | C0DPacketCloseWindow, | 210 | C0DPacketCloseWindow, |
192 | C17PacketCustomPayload, | 211 | C17PacketCustomPayload, |
193 | C02PacketUseEntity, | 212 | C02PacketUseEntity, |
194 | - C02PacketUseEntity$Action, | ||
195 | C00PacketKeepAlive, | 213 | C00PacketKeepAlive, |
196 | C03PacketPlayer, | 214 | C03PacketPlayer, |
197 | C04PacketPlayerPosition, | 215 | C04PacketPlayerPosition, |
@@ -201,18 +219,24 @@ public class Packets extends Obf | @@ -201,18 +219,24 @@ public class Packets extends Obf | ||
201 | C07PacketPlayerDigging, | 219 | C07PacketPlayerDigging, |
202 | C0BPacketEntityAction, | 220 | C0BPacketEntityAction, |
203 | C0CPacketInput, | 221 | C0CPacketInput, |
222 | + C19PacketResourcePackStatus, | ||
204 | C09PacketHeldItemChange, | 223 | C09PacketHeldItemChange, |
205 | C10PacketCreativeInventoryAction, | 224 | C10PacketCreativeInventoryAction, |
206 | C12PacketUpdateSign, | 225 | C12PacketUpdateSign, |
226 | + C0APacketAnimation, | ||
227 | + C18PacketSpectate, | ||
207 | C08PacketPlayerBlockPlacement, | 228 | C08PacketPlayerBlockPlacement, |
208 | C00Handshake, | 229 | C00Handshake, |
209 | S02PacketLoginSuccess, | 230 | S02PacketLoginSuccess, |
210 | S01PacketEncryptionRequest, | 231 | S01PacketEncryptionRequest, |
232 | + S03PacketEnableCompression, | ||
211 | S00PacketDisconnect, | 233 | S00PacketDisconnect, |
212 | C00PacketLoginStart, | 234 | C00PacketLoginStart, |
213 | C01PacketEncryptionResponse, | 235 | C01PacketEncryptionResponse, |
214 | S01PacketPong, | 236 | S01PacketPong, |
215 | - S00PacketServerInfo | 237 | + S00PacketServerInfo, |
238 | + C01PacketPing, | ||
239 | + C00PacketServerQuery, | ||
216 | }; | 240 | }; |
217 | 241 | ||
218 | private static int nextPacketIndex; | 242 | private static int nextPacketIndex; |
@@ -227,6 +251,7 @@ public class Packets extends Obf | @@ -227,6 +251,7 @@ public class Packets extends Obf | ||
227 | 251 | ||
228 | this.shortName = seargeName.substring(Math.max(seargeName.lastIndexOf('.'), seargeName.lastIndexOf('$')) + 1); | 252 | this.shortName = seargeName.substring(Math.max(seargeName.lastIndexOf('.'), seargeName.lastIndexOf('$')) + 1); |
229 | this.index = Packets.nextPacketIndex++; | 253 | this.index = Packets.nextPacketIndex++; |
254 | + Packets.packetMap.put(this.shortName, this); | ||
230 | } | 255 | } |
231 | 256 | ||
232 | public int getIndex() | 257 | public int getIndex() |
@@ -253,4 +278,13 @@ public class Packets extends Obf | @@ -253,4 +278,13 @@ public class Packets extends Obf | ||
253 | { | 278 | { |
254 | return Packets.nextPacketIndex; | 279 | return Packets.nextPacketIndex; |
255 | } | 280 | } |
281 | + | ||
282 | + /** | ||
283 | + * @param name | ||
284 | + * @return | ||
285 | + */ | ||
286 | + public static Packets getByName(String name) | ||
287 | + { | ||
288 | + return Packets.packetMap.get(name); | ||
289 | + } | ||
256 | } | 290 | } |
java/common/com/mumfrey/liteloader/crashreport/CallableLiteLoaderBrand.java
@@ -21,7 +21,15 @@ public class CallableLiteLoaderBrand implements Callable<String> | @@ -21,7 +21,15 @@ public class CallableLiteLoaderBrand implements Callable<String> | ||
21 | @Override | 21 | @Override |
22 | public String call() throws Exception | 22 | public String call() throws Exception |
23 | { | 23 | { |
24 | - String brand = LiteLoader.getBranding(); | 24 | + String brand = null; |
25 | + try | ||
26 | + { | ||
27 | + brand = LiteLoader.getBranding(); | ||
28 | + } | ||
29 | + catch (Exception ex) | ||
30 | + { | ||
31 | + brand = "LiteLoader startup failed"; | ||
32 | + } | ||
25 | return brand == null ? "Unknown / None" : brand; | 33 | return brand == null ? "Unknown / None" : brand; |
26 | } | 34 | } |
27 | } | 35 | } |
java/common/com/mumfrey/liteloader/crashreport/CallableLiteLoaderMods.java
@@ -21,6 +21,13 @@ public class CallableLiteLoaderMods implements Callable<String> | @@ -21,6 +21,13 @@ public class CallableLiteLoaderMods implements Callable<String> | ||
21 | @Override | 21 | @Override |
22 | public String call() throws Exception | 22 | public String call() throws Exception |
23 | { | 23 | { |
24 | - return LiteLoader.getInstance().getLoadedModsList(); | 24 | + try |
25 | + { | ||
26 | + return LiteLoader.getInstance().getLoadedModsList(); | ||
27 | + } | ||
28 | + catch (Exception ex) | ||
29 | + { | ||
30 | + return "LiteLoader startup failed"; | ||
31 | + } | ||
25 | } | 32 | } |
26 | } | 33 | } |
java/common/com/mumfrey/liteloader/interfaces/LoaderEnumerator.java
@@ -14,6 +14,14 @@ import com.mumfrey.liteloader.core.ModInfo; | @@ -14,6 +14,14 @@ import com.mumfrey.liteloader.core.ModInfo; | ||
14 | */ | 14 | */ |
15 | public interface LoaderEnumerator extends ModularEnumerator | 15 | public interface LoaderEnumerator extends ModularEnumerator |
16 | { | 16 | { |
17 | + public enum DisabledReason | ||
18 | + { | ||
19 | + UNKNOWN, | ||
20 | + USER_DISABLED, | ||
21 | + MISSING_DEPENDENCY, | ||
22 | + MISSING_API | ||
23 | + } | ||
24 | + | ||
17 | /** | 25 | /** |
18 | * Perform pre-init tasks (container discovery) | 26 | * Perform pre-init tasks (container discovery) |
19 | */ | 27 | */ |
java/common/com/mumfrey/liteloader/launch/ClassTransformerManager.java
@@ -12,7 +12,6 @@ import net.minecraft.launchwrapper.IClassTransformer; | @@ -12,7 +12,6 @@ import net.minecraft.launchwrapper.IClassTransformer; | ||
12 | import net.minecraft.launchwrapper.LaunchClassLoader; | 12 | import net.minecraft.launchwrapper.LaunchClassLoader; |
13 | import net.minecraft.launchwrapper.LogWrapper; | 13 | import net.minecraft.launchwrapper.LogWrapper; |
14 | 14 | ||
15 | -import com.mumfrey.liteloader.transformers.PacketTransformer; | ||
16 | import com.mumfrey.liteloader.util.SortableValue; | 15 | import com.mumfrey.liteloader.util.SortableValue; |
17 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | 16 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
18 | 17 | ||
@@ -155,8 +154,6 @@ public class ClassTransformerManager | @@ -155,8 +154,6 @@ public class ClassTransformerManager | ||
155 | */ | 154 | */ |
156 | void injectUpstreamTransformers(LaunchClassLoader classLoader) | 155 | void injectUpstreamTransformers(LaunchClassLoader classLoader) |
157 | { | 156 | { |
158 | - this.sieveAndSortPacketTransformers(classLoader, this.pendingTransformers); | ||
159 | - | ||
160 | for (String requiredTransformerClassName : this.requiredTransformers) | 157 | for (String requiredTransformerClassName : this.requiredTransformers) |
161 | { | 158 | { |
162 | LiteLoaderLogger.info("Injecting required class transformer '%s'", requiredTransformerClassName); | 159 | LiteLoaderLogger.info("Injecting required class transformer '%s'", requiredTransformerClassName); |
@@ -197,84 +194,28 @@ public class ClassTransformerManager | @@ -197,84 +194,28 @@ public class ClassTransformerManager | ||
197 | this.gameStarted = true; | 194 | this.gameStarted = true; |
198 | } | 195 | } |
199 | 196 | ||
200 | - /** | ||
201 | - * Sieves packet transformers from the injected transformers list and pokes the rest into the downstreamTransformers set | ||
202 | - * | ||
203 | - * @param classLoader | ||
204 | - * @param transformers | ||
205 | - */ | ||
206 | - @SuppressWarnings({ "unchecked", "deprecation" }) | ||
207 | - private void sieveAndSortPacketTransformers(LaunchClassLoader classLoader, Set<String> transformers) | 197 | + private synchronized void injectTransformer(LaunchClassLoader classLoader, String transformerClassName) |
208 | { | 198 | { |
209 | - LiteLoaderLogger.info("Sorting registered packet transformers by priority"); | ||
210 | - int registeredTransformers = 0; | ||
211 | - | ||
212 | - NonDelegatingClassLoader tempLoader = new NonDelegatingClassLoader(classLoader.getURLs(), this.getClass().getClassLoader()); | ||
213 | - tempLoader.addDelegatedClassName("com.mumfrey.liteloader.core.transformers.PacketTransformer"); | ||
214 | - tempLoader.addDelegatedClassName("com.mumfrey.liteloader.core.runtime.Obf"); | ||
215 | - tempLoader.addDelegatedClassName("net.minecraft.launchwrapper.IClassTransformer"); | ||
216 | - tempLoader.addDelegatedPackage("org.objectweb.asm."); | ||
217 | - | ||
218 | - Iterator<String> iter = transformers.iterator(); | ||
219 | - while (iter.hasNext()) | 199 | + try |
220 | { | 200 | { |
221 | - String transformerClassName = iter.next(); | ||
222 | - try | 201 | + // Assign pendingTransformer so that logged errors during transformer init can be put in the map |
202 | + this.pendingTransformer = transformerClassName; | ||
203 | + | ||
204 | + // Register the transformer | ||
205 | + classLoader.registerTransformer(transformerClassName); | ||
206 | + | ||
207 | + // Unassign pending transformer now init is completed | ||
208 | + this.pendingTransformer = null; | ||
209 | + | ||
210 | + // Check whether the transformer was successfully injected, look for it in the transformer list | ||
211 | + if (this.findTransformer(classLoader, transformerClassName) != null) | ||
223 | { | 212 | { |
224 | - Class<IClassTransformer> transformerClass = (Class<IClassTransformer>)tempLoader.addAndLoadClass(transformerClassName); | ||
225 | - | ||
226 | - if (PacketTransformer.class.isAssignableFrom(transformerClass)) | ||
227 | - { | ||
228 | - if (tempLoader.isValid()) | ||
229 | - { | ||
230 | - PacketTransformer transformer = (PacketTransformer)transformerClass.newInstance(); | ||
231 | - String packetClass = transformer.getPacketClass(); | ||
232 | - if (!this.packetTransformers.containsKey(packetClass)) | ||
233 | - this.packetTransformers.put(packetClass, new TreeSet<SortableValue<String>>()); | ||
234 | - this.packetTransformers.get(packetClass).add(transformer.getInfo(transformerClassName)); | ||
235 | - registeredTransformers++; | ||
236 | - iter.remove(); | ||
237 | - } | ||
238 | - else | ||
239 | - { | ||
240 | - LiteLoaderLogger.warning("Packet transformer class '%s' references class '%s' which is not allowed. Packet transformers must not contain references to other classes", transformerClassName, tempLoader.getInvalidClassName()); | ||
241 | - iter.remove(); | ||
242 | - } | ||
243 | - } | ||
244 | - } | ||
245 | - catch (NoClassDefFoundError err) | ||
246 | - { | ||
247 | - LiteLoaderLogger.warning(err, "Packet transformer class '%s' references a missing class. This probably means it is out of date or missing a dependency.", transformerClassName); | ||
248 | - err.printStackTrace(); | ||
249 | - iter.remove(); | ||
250 | - } | ||
251 | - catch (Exception ex) | ||
252 | - { | ||
253 | - ex.printStackTrace(); | 213 | + this.injectedTransformers.add(transformerClassName); |
254 | } | 214 | } |
255 | } | 215 | } |
256 | - | ||
257 | - this.downstreamTransformers.addAll(transformers); | ||
258 | - transformers.clear(); | ||
259 | - | ||
260 | - LiteLoaderLogger.info("Added %d packet transformer classes to the transformer list", registeredTransformers); | ||
261 | - } | ||
262 | - | ||
263 | - private synchronized void injectTransformer(LaunchClassLoader classLoader, String transformerClassName) | ||
264 | - { | ||
265 | - // Assign pendingTransformer so that logged errors during transformer init can be put in the map | ||
266 | - this.pendingTransformer = transformerClassName; | ||
267 | - | ||
268 | - // Register the transformer | ||
269 | - classLoader.registerTransformer(transformerClassName); | ||
270 | - | ||
271 | - // Unassign pending transformer now init is completed | ||
272 | - this.pendingTransformer = null; | ||
273 | - | ||
274 | - // Check whether the transformer was successfully injected, look for it in the transformer list | ||
275 | - if (this.findTransformer(classLoader, transformerClassName) != null) | 216 | + catch (Throwable th) |
276 | { | 217 | { |
277 | - this.injectedTransformers.add(transformerClassName); | 218 | + LiteLoaderLogger.severe(th, "Error injecting class transformer class %s", transformerClassName); |
278 | } | 219 | } |
279 | } | 220 | } |
280 | 221 |
java/common/com/mumfrey/liteloader/launch/LiteLoaderTweaker.java
@@ -27,8 +27,8 @@ public class LiteLoaderTweaker implements ITweaker | @@ -27,8 +27,8 @@ public class LiteLoaderTweaker implements ITweaker | ||
27 | public static final int ENV_TYPE_CLIENT = 0; | 27 | public static final int ENV_TYPE_CLIENT = 0; |
28 | public static final int ENV_TYPE_DEDICATEDSERVER = 1; | 28 | public static final int ENV_TYPE_DEDICATEDSERVER = 1; |
29 | 29 | ||
30 | - // TODO Version - 1.7.10 | ||
31 | - public static final String VERSION = "1.7.10"; | 30 | + // TODO Version - 1.8 |
31 | + public static final String VERSION = "1.8"; | ||
32 | 32 | ||
33 | protected static final String bootstrapClassName = "com.mumfrey.liteloader.core.LiteLoaderBootstrap"; | 33 | protected static final String bootstrapClassName = "com.mumfrey.liteloader.core.LiteLoaderBootstrap"; |
34 | 34 | ||
@@ -226,8 +226,8 @@ public class LiteLoaderTweaker implements ITweaker | @@ -226,8 +226,8 @@ public class LiteLoaderTweaker implements ITweaker | ||
226 | @Override | 226 | @Override |
227 | public void injectIntoClassLoader(LaunchClassLoader classLoader) | 227 | public void injectIntoClassLoader(LaunchClassLoader classLoader) |
228 | { | 228 | { |
229 | - classLoader.addClassLoaderExclusion("com.mumfrey.liteloader.core.runtime.Obf"); | ||
230 | - classLoader.addClassLoaderExclusion("com.mumfrey.liteloader.core.runtime.Packets"); | 229 | +// classLoader.addClassLoaderExclusion("com.mumfrey.liteloader.core.runtime.Obf"); |
230 | +// classLoader.addClassLoaderExclusion("com.mumfrey.liteloader.core.runtime.Packets"); | ||
231 | 231 | ||
232 | this.transformerManager.injectUpstreamTransformers(classLoader); | 232 | this.transformerManager.injectUpstreamTransformers(classLoader); |
233 | 233 | ||
@@ -292,7 +292,6 @@ public class LiteLoaderTweaker implements ITweaker | @@ -292,7 +292,6 @@ public class LiteLoaderTweaker implements ITweaker | ||
292 | this.bootstrap = this.spawnBootstrap(LiteLoaderTweaker.bootstrapClassName, Launch.classLoader); | 292 | this.bootstrap = this.spawnBootstrap(LiteLoaderTweaker.bootstrapClassName, Launch.classLoader); |
293 | 293 | ||
294 | this.transformerManager = new ClassTransformerManager(this.bootstrap.getRequiredTransformers()); | 294 | this.transformerManager = new ClassTransformerManager(this.bootstrap.getRequiredTransformers()); |
295 | - this.transformerManager.injectTransformers(this.bootstrap.getPacketTransformers()); | ||
296 | 295 | ||
297 | StartupState.PREPARE.completed(); | 296 | StartupState.PREPARE.completed(); |
298 | } | 297 | } |
java/common/com/mumfrey/liteloader/launch/LoaderBootstrap.java
@@ -41,8 +41,6 @@ public interface LoaderBootstrap | @@ -41,8 +41,6 @@ public interface LoaderBootstrap | ||
41 | 41 | ||
42 | public abstract List<String> getRequiredDownstreamTransformers(); | 42 | public abstract List<String> getRequiredDownstreamTransformers(); |
43 | 43 | ||
44 | - public abstract List<String> getPacketTransformers(); | ||
45 | - | ||
46 | public abstract LoaderEnvironment getEnvironment(); | 44 | public abstract LoaderEnvironment getEnvironment(); |
47 | 45 | ||
48 | public abstract LoaderProperties getProperties(); | 46 | public abstract LoaderProperties getProperties(); |
java/common/com/mumfrey/liteloader/permissions/PermissionsManagerClient.java
1 | package com.mumfrey.liteloader.permissions; | 1 | package com.mumfrey.liteloader.permissions; |
2 | 2 | ||
3 | +import io.netty.buffer.Unpooled; | ||
4 | + | ||
3 | import java.io.File; | 5 | import java.io.File; |
4 | import java.util.Arrays; | 6 | import java.util.Arrays; |
5 | import java.util.HashMap; | 7 | import java.util.HashMap; |
@@ -11,6 +13,7 @@ import java.util.TreeSet; | @@ -11,6 +13,7 @@ import java.util.TreeSet; | ||
11 | 13 | ||
12 | import net.eq2online.permissions.ReplicatedPermissionsContainer; | 14 | import net.eq2online.permissions.ReplicatedPermissionsContainer; |
13 | import net.minecraft.network.INetHandler; | 15 | import net.minecraft.network.INetHandler; |
16 | +import net.minecraft.network.PacketBuffer; | ||
14 | import net.minecraft.network.play.server.S01PacketJoinGame; | 17 | import net.minecraft.network.play.server.S01PacketJoinGame; |
15 | 18 | ||
16 | import com.mumfrey.liteloader.LiteMod; | 19 | import com.mumfrey.liteloader.LiteMod; |
@@ -243,7 +246,9 @@ public class PermissionsManagerClient implements PermissionsManager, PluginChann | @@ -243,7 +246,9 @@ public class PermissionsManagerClient implements PermissionsManager, PluginChann | ||
243 | if (!query.modName.equals("all") || query.permissions.size() > 0) | 246 | if (!query.modName.equals("all") || query.permissions.size() > 0) |
244 | { | 247 | { |
245 | byte[] data = query.getBytes(); | 248 | byte[] data = query.getBytes(); |
246 | - ClientPluginChannels.sendMessage(ReplicatedPermissionsContainer.CHANNEL, data, ChannelPolicy.DISPATCH_ALWAYS); | 249 | + PacketBuffer buffer = new PacketBuffer(Unpooled.buffer()); |
250 | + buffer.writeByteArray(data); | ||
251 | + ClientPluginChannels.sendMessage(ReplicatedPermissionsContainer.CHANNEL, buffer, ChannelPolicy.DISPATCH_ALWAYS); | ||
247 | } | 252 | } |
248 | } | 253 | } |
249 | } | 254 | } |
@@ -306,7 +311,7 @@ public class PermissionsManagerClient implements PermissionsManager, PluginChann | @@ -306,7 +311,7 @@ public class PermissionsManagerClient implements PermissionsManager, PluginChann | ||
306 | * @see net.eq2online.permissions.PermissionsManager#onCustomPayload(java.lang.String, int, byte[]) | 311 | * @see net.eq2online.permissions.PermissionsManager#onCustomPayload(java.lang.String, int, byte[]) |
307 | */ | 312 | */ |
308 | @Override | 313 | @Override |
309 | - public void onCustomPayload(String channel, int length, byte[] data) | 314 | + public void onCustomPayload(String channel, PacketBuffer data) |
310 | { | 315 | { |
311 | if (channel.equals(ReplicatedPermissionsContainer.CHANNEL) && !this.engine.isSinglePlayer()) | 316 | if (channel.equals(ReplicatedPermissionsContainer.CHANNEL) && !this.engine.isSinglePlayer()) |
312 | { | 317 | { |
java/common/com/mumfrey/liteloader/permissions/PermissionsManagerServer.java
@@ -3,6 +3,7 @@ package com.mumfrey.liteloader.permissions; | @@ -3,6 +3,7 @@ package com.mumfrey.liteloader.permissions; | ||
3 | import java.util.List; | 3 | import java.util.List; |
4 | 4 | ||
5 | import net.minecraft.entity.player.EntityPlayerMP; | 5 | import net.minecraft.entity.player.EntityPlayerMP; |
6 | +import net.minecraft.network.PacketBuffer; | ||
6 | 7 | ||
7 | import com.mumfrey.liteloader.Permissible; | 8 | import com.mumfrey.liteloader.Permissible; |
8 | import com.mumfrey.liteloader.ServerPluginChannelListener; | 9 | import com.mumfrey.liteloader.ServerPluginChannelListener; |
@@ -26,7 +27,7 @@ public class PermissionsManagerServer implements PermissionsManager, ServerPlugi | @@ -26,7 +27,7 @@ public class PermissionsManagerServer implements PermissionsManager, ServerPlugi | ||
26 | } | 27 | } |
27 | 28 | ||
28 | @Override | 29 | @Override |
29 | - public void onCustomPayload(EntityPlayerMP sender, String channel, int length, byte[] data) | 30 | + public void onCustomPayload(EntityPlayerMP sender, String channel, PacketBuffer data) |
30 | { | 31 | { |
31 | } | 32 | } |
32 | 33 |
java/common/com/mumfrey/liteloader/permissions/ServerPermissions.java
@@ -4,6 +4,7 @@ import java.util.regex.Matcher; | @@ -4,6 +4,7 @@ import java.util.regex.Matcher; | ||
4 | import java.util.regex.Pattern; | 4 | import java.util.regex.Pattern; |
5 | 5 | ||
6 | import net.eq2online.permissions.ReplicatedPermissionsContainer; | 6 | import net.eq2online.permissions.ReplicatedPermissionsContainer; |
7 | +import net.minecraft.network.PacketBuffer; | ||
7 | 8 | ||
8 | 9 | ||
9 | /** | 10 | /** |
@@ -48,12 +49,12 @@ public class ServerPermissions implements ReplicatedPermissions | @@ -48,12 +49,12 @@ public class ServerPermissions implements ReplicatedPermissions | ||
48 | /** | 49 | /** |
49 | * @param data | 50 | * @param data |
50 | */ | 51 | */ |
51 | - public ServerPermissions(byte[] data) | 52 | + public ServerPermissions(PacketBuffer data) |
52 | { | 53 | { |
53 | this.createdTime = System.currentTimeMillis(); | 54 | this.createdTime = System.currentTimeMillis(); |
54 | this.validUntil = this.createdTime + this.cacheTime; | 55 | this.validUntil = this.createdTime + this.cacheTime; |
55 | 56 | ||
56 | - ReplicatedPermissionsContainer response = ReplicatedPermissionsContainer.fromBytes(data); | 57 | + ReplicatedPermissionsContainer response = ReplicatedPermissionsContainer.fromPacketBuffer(data); |
57 | 58 | ||
58 | if (response != null) | 59 | if (response != null) |
59 | { | 60 | { |
java/common/com/mumfrey/liteloader/transformers/ByteCodeUtilities.java
0 โ 100644
1 | +package com.mumfrey.liteloader.transformers; | ||
2 | + | ||
3 | +import java.lang.annotation.Annotation; | ||
4 | +import java.util.Iterator; | ||
5 | +import java.util.List; | ||
6 | + | ||
7 | +import org.objectweb.asm.Opcodes; | ||
8 | +import org.objectweb.asm.Type; | ||
9 | +import org.objectweb.asm.tree.AbstractInsnNode; | ||
10 | +import org.objectweb.asm.tree.AnnotationNode; | ||
11 | +import org.objectweb.asm.tree.ClassNode; | ||
12 | +import org.objectweb.asm.tree.FieldNode; | ||
13 | +import org.objectweb.asm.tree.FrameNode; | ||
14 | +import org.objectweb.asm.tree.InsnList; | ||
15 | +import org.objectweb.asm.tree.LocalVariableNode; | ||
16 | +import org.objectweb.asm.tree.MethodNode; | ||
17 | +import org.objectweb.asm.tree.VarInsnNode; | ||
18 | + | ||
19 | +public abstract class ByteCodeUtilities | ||
20 | +{ | ||
21 | + private ByteCodeUtilities() {} | ||
22 | + | ||
23 | + public static void loadArgs(Type[] args, InsnList insns, int pos) | ||
24 | + { | ||
25 | + ByteCodeUtilities.loadArgs(args, insns, pos, -1); | ||
26 | + } | ||
27 | + | ||
28 | + public static void loadArgs(Type[] args, InsnList insns, int start, int end) | ||
29 | + { | ||
30 | + for (Type type : args) | ||
31 | + { | ||
32 | + insns.add(new VarInsnNode(type.getOpcode(Opcodes.ILOAD), start)); | ||
33 | + start += type.getSize(); | ||
34 | + if (end >= start && start >= end) return; | ||
35 | + } | ||
36 | + } | ||
37 | + | ||
38 | + public static void pushLocals(Type[] locals, InsnList insns, int pos) | ||
39 | + { | ||
40 | + for (; pos < locals.length; pos++) | ||
41 | + { | ||
42 | + if (locals[pos] != null) | ||
43 | + { | ||
44 | + insns.add(new VarInsnNode(locals[pos].getOpcode(Opcodes.ILOAD), pos)); | ||
45 | + } | ||
46 | + } | ||
47 | + } | ||
48 | + | ||
49 | + /** | ||
50 | + * @param method | ||
51 | + * @param node | ||
52 | + * @return | ||
53 | + */ | ||
54 | + public static LocalVariableNode[] getLocalsAt(ClassNode classNode, MethodNode method, AbstractInsnNode node) | ||
55 | + { | ||
56 | + LocalVariableNode[] frame = new LocalVariableNode[method.maxLocals]; | ||
57 | + | ||
58 | + if ((method.access & Opcodes.ACC_STATIC) == 0) | ||
59 | + { | ||
60 | + frame[0] = new LocalVariableNode("this", classNode.name, null, null, null, 0); | ||
61 | + } | ||
62 | + | ||
63 | + for (Iterator<AbstractInsnNode> iter = method.instructions.iterator(); iter.hasNext();) | ||
64 | + { | ||
65 | + AbstractInsnNode insn = iter.next(); | ||
66 | + if (insn instanceof FrameNode) | ||
67 | + { | ||
68 | + FrameNode frameNode = (FrameNode)insn; | ||
69 | + int localPos = 0; | ||
70 | + for (int framePos = 0; framePos < frame.length; framePos++) | ||
71 | + { | ||
72 | + final Object localType = (localPos < frameNode.local.size()) ? frameNode.local.get(localPos) : null; | ||
73 | + if (localType instanceof String) | ||
74 | + { | ||
75 | + frame[framePos] = ByteCodeUtilities.getLocalVariableAt(classNode, method, node, framePos); | ||
76 | + } | ||
77 | + else if (localType instanceof Integer) | ||
78 | + { | ||
79 | + boolean isMarkerType = localType == Opcodes.UNINITIALIZED_THIS || localType == Opcodes.TOP || localType == Opcodes.NULL; | ||
80 | + boolean is32bitValue = localType == Opcodes.INTEGER || localType == Opcodes.FLOAT; | ||
81 | + boolean is64bitValue = localType == Opcodes.DOUBLE || localType == Opcodes.LONG; | ||
82 | + if (isMarkerType) | ||
83 | + { | ||
84 | + frame[framePos] = null; | ||
85 | + } | ||
86 | + else if (is32bitValue || is64bitValue) | ||
87 | + { | ||
88 | + frame[framePos] = ByteCodeUtilities.getLocalVariableAt(classNode, method, node, framePos); | ||
89 | + | ||
90 | + if (is64bitValue) | ||
91 | + { | ||
92 | + framePos++; | ||
93 | + } | ||
94 | + } | ||
95 | + } | ||
96 | + else if (localType == null) | ||
97 | + { | ||
98 | + frame[framePos] = null; | ||
99 | + } | ||
100 | + else | ||
101 | + { | ||
102 | + throw new RuntimeException("Invalid value " + localType + " in locals array at position " + localPos + " in " + classNode.name + "." + method.name + method.desc); | ||
103 | + } | ||
104 | + | ||
105 | + localPos++; | ||
106 | + } | ||
107 | + } | ||
108 | + else if (insn instanceof VarInsnNode) | ||
109 | + { | ||
110 | + VarInsnNode varNode = (VarInsnNode)insn; | ||
111 | + frame[varNode.var] = ByteCodeUtilities.getLocalVariableAt(classNode, method, node, varNode.var); | ||
112 | + } | ||
113 | + else if (insn == node) | ||
114 | + { | ||
115 | + break; | ||
116 | + } | ||
117 | + } | ||
118 | + | ||
119 | + return frame; | ||
120 | + } | ||
121 | + | ||
122 | + /** | ||
123 | + * @param classNode | ||
124 | + * @param method | ||
125 | + * @param node | ||
126 | + * @param var | ||
127 | + * @return | ||
128 | + */ | ||
129 | + public static LocalVariableNode getLocalVariableAt(ClassNode classNode, MethodNode method, AbstractInsnNode node, int var) | ||
130 | + { | ||
131 | + LocalVariableNode localVariableNode = null; | ||
132 | + | ||
133 | + int pos = method.instructions.indexOf(node); | ||
134 | + | ||
135 | + for (LocalVariableNode local : method.localVariables) | ||
136 | + { | ||
137 | + if (local.index != var) continue; | ||
138 | + int start = method.instructions.indexOf(local.start); | ||
139 | + int end = method.instructions.indexOf(local.end); | ||
140 | + if (localVariableNode == null || start < pos && end > pos) | ||
141 | + { | ||
142 | + localVariableNode = local; | ||
143 | + } | ||
144 | + } | ||
145 | + | ||
146 | + return localVariableNode; | ||
147 | + } | ||
148 | + | ||
149 | + /** | ||
150 | + * @param type | ||
151 | + * @return | ||
152 | + */ | ||
153 | + public static String getTypeName(Type type) | ||
154 | + { | ||
155 | + switch (type.getSort()) | ||
156 | + { | ||
157 | + case Type.BOOLEAN: return "boolean"; | ||
158 | + case Type.CHAR: return "char"; | ||
159 | + case Type.BYTE: return "byte"; | ||
160 | + case Type.SHORT: return "short"; | ||
161 | + case Type.INT: return "int"; | ||
162 | + case Type.FLOAT: return "float"; | ||
163 | + case Type.LONG: return "long"; | ||
164 | + case Type.DOUBLE: return "double"; | ||
165 | + case Type.ARRAY: return ByteCodeUtilities.getTypeName(type.getElementType()) + "[]"; | ||
166 | + case Type.OBJECT: | ||
167 | + String typeName = type.getClassName(); | ||
168 | + typeName = typeName.substring(typeName.lastIndexOf('.') + 1); | ||
169 | + return typeName; | ||
170 | + } | ||
171 | + | ||
172 | + return "Object"; | ||
173 | + } | ||
174 | + | ||
175 | + /** | ||
176 | + * Finds a method in the target class, uses names specified in the {@link Obfuscated} annotation if present | ||
177 | + * | ||
178 | + * @param targetClass | ||
179 | + * @param searchFor | ||
180 | + * @return | ||
181 | + */ | ||
182 | + public static MethodNode findTargetMethod(ClassNode targetClass, MethodNode searchFor) | ||
183 | + { | ||
184 | + for (MethodNode target : targetClass.methods) | ||
185 | + { | ||
186 | + if (target.name.equals(searchFor.name) && target.desc.equals(searchFor.desc)) | ||
187 | + return target; | ||
188 | + } | ||
189 | + | ||
190 | + AnnotationNode obfuscatedAnnotation = ByteCodeUtilities.getAnnotation(searchFor, Obfuscated.class); | ||
191 | + if (obfuscatedAnnotation != null) | ||
192 | + { | ||
193 | + for (String obfuscatedName : ByteCodeUtilities.<List<String>>getAnnotationValue(obfuscatedAnnotation)) | ||
194 | + { | ||
195 | + for (MethodNode target : targetClass.methods) | ||
196 | + { | ||
197 | + if (target.name.equals(obfuscatedName) && target.desc.equals(searchFor.desc)) | ||
198 | + return target; | ||
199 | + } | ||
200 | + } | ||
201 | + } | ||
202 | + | ||
203 | + return null; | ||
204 | + } | ||
205 | + | ||
206 | + /** | ||
207 | + * Finds a field in the target class, uses names specified in the {@link Obfuscated} annotation if present | ||
208 | + * | ||
209 | + * @param targetClass | ||
210 | + * @param searchFor | ||
211 | + * @return | ||
212 | + */ | ||
213 | + public static FieldNode findTargetField(ClassNode targetClass, FieldNode searchFor) | ||
214 | + { | ||
215 | + for (FieldNode target : targetClass.fields) | ||
216 | + { | ||
217 | + if (target.name.equals(searchFor.name)) | ||
218 | + return target; | ||
219 | + } | ||
220 | + | ||
221 | + AnnotationNode obfuscatedAnnotation = ByteCodeUtilities.getAnnotation(searchFor, Obfuscated.class); | ||
222 | + if (obfuscatedAnnotation != null) | ||
223 | + { | ||
224 | + for (String obfuscatedName : ByteCodeUtilities.<List<String>>getAnnotationValue(obfuscatedAnnotation)) | ||
225 | + { | ||
226 | + for (FieldNode target : targetClass.fields) | ||
227 | + { | ||
228 | + if (target.name.equals(obfuscatedName)) | ||
229 | + return target; | ||
230 | + } | ||
231 | + } | ||
232 | + } | ||
233 | + | ||
234 | + return null; | ||
235 | + } | ||
236 | + | ||
237 | + /** | ||
238 | + * Get an annotation of the specified class from the supplied field node | ||
239 | + * | ||
240 | + * @param field | ||
241 | + * @param annotationType | ||
242 | + * @return | ||
243 | + */ | ||
244 | + public static AnnotationNode getAnnotation(FieldNode field, Class<? extends Annotation> annotationClass) | ||
245 | + { | ||
246 | + return ByteCodeUtilities.getAnnotation(field.visibleAnnotations, Type.getDescriptor(annotationClass)); | ||
247 | + } | ||
248 | + | ||
249 | + /** | ||
250 | + * Get an annotation of the specified class from the supplied method node | ||
251 | + * | ||
252 | + * @param method | ||
253 | + * @param annotationType | ||
254 | + * @return | ||
255 | + */ | ||
256 | + public static AnnotationNode getAnnotation(MethodNode method, Class<? extends Annotation> annotationClass) | ||
257 | + { | ||
258 | + return ByteCodeUtilities.getAnnotation(method.visibleAnnotations, Type.getDescriptor(annotationClass)); | ||
259 | + } | ||
260 | + | ||
261 | + /** | ||
262 | + * @param annotations | ||
263 | + * @param annotationType | ||
264 | + * @return | ||
265 | + */ | ||
266 | + public static AnnotationNode getAnnotation(List<AnnotationNode> annotations, String annotationType) | ||
267 | + { | ||
268 | + if (annotations != null) | ||
269 | + { | ||
270 | + for (AnnotationNode annotation : annotations) | ||
271 | + { | ||
272 | + if (annotationType.equals(annotation.desc)) | ||
273 | + return annotation; | ||
274 | + } | ||
275 | + } | ||
276 | + | ||
277 | + return null; | ||
278 | + } | ||
279 | + | ||
280 | + /** | ||
281 | + * Get the value of an annotation node | ||
282 | + * | ||
283 | + * @param annotation | ||
284 | + * @return | ||
285 | + */ | ||
286 | + public static <T> T getAnnotationValue(AnnotationNode annotation) | ||
287 | + { | ||
288 | + return ByteCodeUtilities.getAnnotationValue(annotation, "value"); | ||
289 | + } | ||
290 | + | ||
291 | + /** | ||
292 | + * @param annotation | ||
293 | + * @param key | ||
294 | + * @return | ||
295 | + */ | ||
296 | + @SuppressWarnings("unchecked") | ||
297 | + public static <T> T getAnnotationValue(AnnotationNode annotation, String key) | ||
298 | + { | ||
299 | + boolean getNextValue = false; | ||
300 | + for (Object value : annotation.values) | ||
301 | + { | ||
302 | + if (getNextValue) return (T)value; | ||
303 | + if (value.equals(key)) getNextValue = true; | ||
304 | + } | ||
305 | + return null; | ||
306 | + } | ||
307 | +} |
java/common/com/mumfrey/liteloader/transformers/CallbackInjectionTransformer.java
@@ -25,7 +25,9 @@ import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | @@ -25,7 +25,9 @@ import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | ||
25 | * Transformer which injects callbacks by searching for profiler invokations and RETURN opcodes | 25 | * Transformer which injects callbacks by searching for profiler invokations and RETURN opcodes |
26 | * | 26 | * |
27 | * @author Adam Mummery-Smith | 27 | * @author Adam Mummery-Smith |
28 | + * @deprecated Use Event Injection instead | ||
28 | */ | 29 | */ |
30 | +@Deprecated | ||
29 | public abstract class CallbackInjectionTransformer extends ClassTransformer | 31 | public abstract class CallbackInjectionTransformer extends ClassTransformer |
30 | { | 32 | { |
31 | /** | 33 | /** |
java/common/com/mumfrey/liteloader/transformers/ClassOverlayTransformer.java
1 | package com.mumfrey.liteloader.transformers; | 1 | package com.mumfrey.liteloader.transformers; |
2 | 2 | ||
3 | import java.io.IOException; | 3 | import java.io.IOException; |
4 | -import java.lang.annotation.Annotation; | ||
5 | import java.util.HashMap; | 4 | import java.util.HashMap; |
6 | import java.util.HashSet; | 5 | import java.util.HashSet; |
7 | import java.util.Iterator; | 6 | import java.util.Iterator; |
@@ -288,7 +287,7 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | @@ -288,7 +287,7 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | ||
288 | throw new InvalidOverlayException(String.format("Overlay classes cannot contain non-private static methods or fields, found %s", field.name)); | 287 | throw new InvalidOverlayException(String.format("Overlay classes cannot contain non-private static methods or fields, found %s", field.name)); |
289 | } | 288 | } |
290 | 289 | ||
291 | - FieldNode target = this.findTargetField(targetClass, field); | 290 | + FieldNode target = ByteCodeUtilities.findTargetField(targetClass, field); |
292 | if (target == null) | 291 | if (target == null) |
293 | { | 292 | { |
294 | targetClass.fields.add(field); | 293 | targetClass.fields.add(field); |
@@ -319,7 +318,7 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | @@ -319,7 +318,7 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | ||
319 | { | 318 | { |
320 | for (MethodNode overlayMethod : overlayClass.methods) | 319 | for (MethodNode overlayMethod : overlayClass.methods) |
321 | { | 320 | { |
322 | - if (this.getAnnotation(overlayMethod, Stub.class) != null || (this.getAnnotation(overlayMethod, AppendInsns.class) == null && !overlayMethod.name.startsWith("<"))) | 321 | + if (ByteCodeUtilities.getAnnotation(overlayMethod, Stub.class) != null || (ByteCodeUtilities.getAnnotation(overlayMethod, AppendInsns.class) == null && !overlayMethod.name.startsWith("<"))) |
323 | { | 322 | { |
324 | this.checkRenameMethod(targetClass, overlayMethod); | 323 | this.checkRenameMethod(targetClass, overlayMethod); |
325 | } | 324 | } |
@@ -338,12 +337,12 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | @@ -338,12 +337,12 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | ||
338 | { | 337 | { |
339 | this.transformMethod(overlayMethod, overlayClass.name, targetClass.name); | 338 | this.transformMethod(overlayMethod, overlayClass.name, targetClass.name); |
340 | 339 | ||
341 | - AnnotationNode appendAnnotation = this.getAnnotation(overlayMethod, AppendInsns.class); | ||
342 | - AnnotationNode stubAnnotation = this.getAnnotation(overlayMethod, Stub.class); | 340 | + AnnotationNode appendAnnotation = ByteCodeUtilities.getAnnotation(overlayMethod, AppendInsns.class); |
341 | + AnnotationNode stubAnnotation = ByteCodeUtilities.getAnnotation(overlayMethod, Stub.class); | ||
343 | 342 | ||
344 | if (stubAnnotation != null) | 343 | if (stubAnnotation != null) |
345 | { | 344 | { |
346 | - MethodNode target = this.findTargetMethod(targetClass, overlayMethod); | 345 | + MethodNode target = ByteCodeUtilities.findTargetMethod(targetClass, overlayMethod); |
347 | if (target == null) | 346 | if (target == null) |
348 | { | 347 | { |
349 | throw new InvalidOverlayException(String.format("Stub method %s was not located in the target class", overlayMethod.name)); | 348 | throw new InvalidOverlayException(String.format("Stub method %s was not located in the target class", overlayMethod.name)); |
@@ -351,7 +350,7 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | @@ -351,7 +350,7 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | ||
351 | } | 350 | } |
352 | else if (appendAnnotation != null) | 351 | else if (appendAnnotation != null) |
353 | { | 352 | { |
354 | - String targetMethodName = this.<String>getAnnotationValue(appendAnnotation); | 353 | + String targetMethodName = ByteCodeUtilities.<String>getAnnotationValue(appendAnnotation); |
355 | this.appendInsns(targetClass, targetMethodName, overlayMethod); | 354 | this.appendInsns(targetClass, targetMethodName, overlayMethod); |
356 | } | 355 | } |
357 | else if (!overlayMethod.name.startsWith("<")) | 356 | else if (!overlayMethod.name.startsWith("<")) |
@@ -361,7 +360,7 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | @@ -361,7 +360,7 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | ||
361 | continue; | 360 | continue; |
362 | } | 361 | } |
363 | 362 | ||
364 | - MethodNode target = this.findTargetMethod(targetClass, overlayMethod); | 363 | + MethodNode target = ByteCodeUtilities.findTargetMethod(targetClass, overlayMethod); |
365 | if (target != null) targetClass.methods.remove(target); | 364 | if (target != null) targetClass.methods.remove(target); |
366 | targetClass.methods.add(overlayMethod); | 365 | targetClass.methods.add(overlayMethod); |
367 | } | 366 | } |
@@ -434,10 +433,10 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | @@ -434,10 +433,10 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | ||
434 | if (targetMethodName == null || targetMethodName.length() == 0) targetMethodName = sourceMethod.name; | 433 | if (targetMethodName == null || targetMethodName.length() == 0) targetMethodName = sourceMethod.name; |
435 | 434 | ||
436 | Set<String> obfuscatedNames = new HashSet<String>(); | 435 | Set<String> obfuscatedNames = new HashSet<String>(); |
437 | - AnnotationNode obfuscatedAnnotation = this.getAnnotation(sourceMethod, Obfuscated.class); | 436 | + AnnotationNode obfuscatedAnnotation = ByteCodeUtilities.getAnnotation(sourceMethod, Obfuscated.class); |
438 | if (obfuscatedAnnotation != null) | 437 | if (obfuscatedAnnotation != null) |
439 | { | 438 | { |
440 | - obfuscatedNames.addAll(this.<List<String>>getAnnotationValue(obfuscatedAnnotation)); | 439 | + obfuscatedNames.addAll(ByteCodeUtilities.<List<String>>getAnnotationValue(obfuscatedAnnotation)); |
441 | } | 440 | } |
442 | 441 | ||
443 | for (MethodNode method : targetClass.methods) | 442 | for (MethodNode method : targetClass.methods) |
@@ -475,7 +474,7 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | @@ -475,7 +474,7 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | ||
475 | */ | 474 | */ |
476 | private void checkRenameMethod(ClassNode targetClass, MethodNode searchFor) | 475 | private void checkRenameMethod(ClassNode targetClass, MethodNode searchFor) |
477 | { | 476 | { |
478 | - MethodNode target = this.findTargetMethod(targetClass, searchFor); | 477 | + MethodNode target = ByteCodeUtilities.findTargetMethod(targetClass, searchFor); |
479 | if (target != null && !target.name.equals(searchFor.name)) | 478 | if (target != null && !target.name.equals(searchFor.name)) |
480 | { | 479 | { |
481 | String methodDescriptor = searchFor.name + searchFor.desc; | 480 | String methodDescriptor = searchFor.name + searchFor.desc; |
@@ -485,139 +484,6 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | @@ -485,139 +484,6 @@ public abstract class ClassOverlayTransformer extends ClassTransformer | ||
485 | } | 484 | } |
486 | 485 | ||
487 | /** | 486 | /** |
488 | - * Finds a method in the target class, uses names specified in the {@link Obfuscated} annotation if present | ||
489 | - * | ||
490 | - * @param targetClass | ||
491 | - * @param searchFor | ||
492 | - * @return | ||
493 | - */ | ||
494 | - private MethodNode findTargetMethod(ClassNode targetClass, MethodNode searchFor) | ||
495 | - { | ||
496 | - for (MethodNode target : targetClass.methods) | ||
497 | - { | ||
498 | - if (target.name.equals(searchFor.name) && target.desc.equals(searchFor.desc)) | ||
499 | - return target; | ||
500 | - } | ||
501 | - | ||
502 | - AnnotationNode obfuscatedAnnotation = this.getAnnotation(searchFor, Obfuscated.class); | ||
503 | - if (obfuscatedAnnotation != null) | ||
504 | - { | ||
505 | - for (String obfuscatedName : this.<List<String>>getAnnotationValue(obfuscatedAnnotation)) | ||
506 | - { | ||
507 | - for (MethodNode target : targetClass.methods) | ||
508 | - { | ||
509 | - if (target.name.equals(obfuscatedName) && target.desc.equals(searchFor.desc)) | ||
510 | - return target; | ||
511 | - } | ||
512 | - } | ||
513 | - } | ||
514 | - | ||
515 | - return null; | ||
516 | - } | ||
517 | - | ||
518 | - /** | ||
519 | - * Finds a field in the target class, uses names specified in the {@link Obfuscated} annotation if present | ||
520 | - * | ||
521 | - * @param targetClass | ||
522 | - * @param searchFor | ||
523 | - * @return | ||
524 | - */ | ||
525 | - private FieldNode findTargetField(ClassNode targetClass, FieldNode searchFor) | ||
526 | - { | ||
527 | - for (FieldNode target : targetClass.fields) | ||
528 | - { | ||
529 | - if (target.name.equals(searchFor.name)) | ||
530 | - return target; | ||
531 | - } | ||
532 | - | ||
533 | - AnnotationNode obfuscatedAnnotation = this.getAnnotation(searchFor, Obfuscated.class); | ||
534 | - if (obfuscatedAnnotation != null) | ||
535 | - { | ||
536 | - for (String obfuscatedName : this.<List<String>>getAnnotationValue(obfuscatedAnnotation)) | ||
537 | - { | ||
538 | - for (FieldNode target : targetClass.fields) | ||
539 | - { | ||
540 | - if (target.name.equals(obfuscatedName)) | ||
541 | - return target; | ||
542 | - } | ||
543 | - } | ||
544 | - } | ||
545 | - | ||
546 | - return null; | ||
547 | - } | ||
548 | - | ||
549 | - /** | ||
550 | - * Get an annotation of the specified class from the supplied field node | ||
551 | - * | ||
552 | - * @param field | ||
553 | - * @param annotationType | ||
554 | - * @return | ||
555 | - */ | ||
556 | - private AnnotationNode getAnnotation(FieldNode field, Class<? extends Annotation> annotationClass) | ||
557 | - { | ||
558 | - return this.getAnnotation(field.visibleAnnotations, Type.getDescriptor(annotationClass)); | ||
559 | - } | ||
560 | - | ||
561 | - /** | ||
562 | - * Get an annotation of the specified class from the supplied method node | ||
563 | - * | ||
564 | - * @param method | ||
565 | - * @param annotationType | ||
566 | - * @return | ||
567 | - */ | ||
568 | - private AnnotationNode getAnnotation(MethodNode method, Class<? extends Annotation> annotationClass) | ||
569 | - { | ||
570 | - return this.getAnnotation(method.visibleAnnotations, Type.getDescriptor(annotationClass)); | ||
571 | - } | ||
572 | - | ||
573 | - /** | ||
574 | - * @param annotations | ||
575 | - * @param annotationType | ||
576 | - * @return | ||
577 | - */ | ||
578 | - private AnnotationNode getAnnotation(List<AnnotationNode> annotations, String annotationType) | ||
579 | - { | ||
580 | - if (annotations != null) | ||
581 | - { | ||
582 | - for (AnnotationNode annotation : annotations) | ||
583 | - { | ||
584 | - if (annotationType.equals(annotation.desc)) | ||
585 | - return annotation; | ||
586 | - } | ||
587 | - } | ||
588 | - | ||
589 | - return null; | ||
590 | - } | ||
591 | - | ||
592 | - /** | ||
593 | - * Get the value of an annotation node | ||
594 | - * | ||
595 | - * @param annotation | ||
596 | - * @return | ||
597 | - */ | ||
598 | - private <T> T getAnnotationValue(AnnotationNode annotation) | ||
599 | - { | ||
600 | - return this.getAnnotationValue(annotation, "value"); | ||
601 | - } | ||
602 | - | ||
603 | - /** | ||
604 | - * @param annotation | ||
605 | - * @param key | ||
606 | - * @return | ||
607 | - */ | ||
608 | - @SuppressWarnings("unchecked") | ||
609 | - private <T> T getAnnotationValue(AnnotationNode annotation, String key) | ||
610 | - { | ||
611 | - boolean getNextValue = false; | ||
612 | - for (Object value : annotation.values) | ||
613 | - { | ||
614 | - if (getNextValue) return (T)value; | ||
615 | - if (value.equals(key)) getNextValue = true; | ||
616 | - } | ||
617 | - return null; | ||
618 | - } | ||
619 | - | ||
620 | - /** | ||
621 | * @param transformedName | 487 | * @param transformedName |
622 | * @return | 488 | * @return |
623 | * @throws InvalidOverlayException | 489 | * @throws InvalidOverlayException |
java/common/com/mumfrey/liteloader/transformers/ClassTransformer.java
1 | package com.mumfrey.liteloader.transformers; | 1 | package com.mumfrey.liteloader.transformers; |
2 | 2 | ||
3 | +import net.minecraft.launchwrapper.IClassTransformer; | ||
4 | + | ||
3 | import org.objectweb.asm.ClassReader; | 5 | import org.objectweb.asm.ClassReader; |
4 | import org.objectweb.asm.ClassWriter; | 6 | import org.objectweb.asm.ClassWriter; |
5 | import org.objectweb.asm.tree.ClassNode; | 7 | import org.objectweb.asm.tree.ClassNode; |
6 | 8 | ||
7 | -import net.minecraft.launchwrapper.IClassTransformer; | ||
8 | - | ||
9 | /** | 9 | /** |
10 | * Base class for transformers which work via ClassNode | 10 | * Base class for transformers which work via ClassNode |
11 | * | 11 | * |
@@ -13,6 +13,8 @@ import net.minecraft.launchwrapper.IClassTransformer; | @@ -13,6 +13,8 @@ import net.minecraft.launchwrapper.IClassTransformer; | ||
13 | */ | 13 | */ |
14 | public abstract class ClassTransformer implements IClassTransformer | 14 | public abstract class ClassTransformer implements IClassTransformer |
15 | { | 15 | { |
16 | + public static final String HORIZONTAL_RULE = "----------------------------------------------------------------------------------------------------"; | ||
17 | + | ||
16 | private ClassReader classReader; | 18 | private ClassReader classReader; |
17 | private ClassNode classNode; | 19 | private ClassNode classNode; |
18 | 20 | ||
@@ -52,4 +54,11 @@ public abstract class ClassTransformer implements IClassTransformer | @@ -52,4 +54,11 @@ public abstract class ClassTransformer implements IClassTransformer | ||
52 | classNode.accept(writer); | 54 | classNode.accept(writer); |
53 | return writer.toByteArray(); | 55 | return writer.toByteArray(); |
54 | } | 56 | } |
57 | + | ||
58 | + protected static String getSimpleClassName(ClassNode classNode) | ||
59 | + { | ||
60 | + String className = classNode.name.replace('/', '.'); | ||
61 | + int dotPos = className.lastIndexOf('.'); | ||
62 | + return dotPos == -1 ? className : className.substring(dotPos + 1); | ||
63 | + } | ||
55 | } | 64 | } |
56 | \ No newline at end of file | 65 | \ No newline at end of file |