Commit 53881326bb43260c8bc710c8de49d289a988dccb
1 parent
af8f47e8
Remove legacy proxy objects and move all logic into relevant mixins
Showing
18 changed files
with
191 additions
and
474 deletions
src/client/java/com/mumfrey/liteloader/client/ClientProxy.java deleted
100644 → 0
1 | -/* | |
2 | - * This file is part of LiteLoader. | |
3 | - * Copyright (C) 2012-16 Adam Mummery-Smith | |
4 | - * All Rights Reserved. | |
5 | - */ | |
6 | -package com.mumfrey.liteloader.client; | |
7 | - | |
8 | -import java.io.File; | |
9 | - | |
10 | -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | |
11 | -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; | |
12 | - | |
13 | -import com.mumfrey.liteloader.PlayerInteractionListener.MouseButton; | |
14 | -import com.mumfrey.liteloader.client.ducks.IFramebuffer; | |
15 | -import com.mumfrey.liteloader.core.Proxy; | |
16 | - | |
17 | -import net.minecraft.client.Minecraft; | |
18 | -import net.minecraft.client.entity.EntityPlayerSP; | |
19 | -import net.minecraft.client.gui.GuiNewChat; | |
20 | -import net.minecraft.client.renderer.RenderGlobal; | |
21 | -import net.minecraft.client.renderer.entity.Render; | |
22 | -import net.minecraft.client.renderer.entity.RenderManager; | |
23 | -import net.minecraft.client.shader.Framebuffer; | |
24 | -import net.minecraft.entity.Entity; | |
25 | -import net.minecraft.server.integrated.IntegratedServer; | |
26 | -import net.minecraft.util.text.ITextComponent; | |
27 | -import net.minecraft.world.WorldSettings; | |
28 | - | |
29 | -/** | |
30 | - * Proxy class which handles the redirected calls from the injected callbacks | |
31 | - * and routes them to the relevant liteloader handler classes. We do this rather | |
32 | - * than patching a bunch of bytecode into the packet classes themselves because | |
33 | - * this is easier to maintain. | |
34 | - * | |
35 | - * @author Adam Mummery-Smith | |
36 | - */ | |
37 | -public abstract class ClientProxy extends Proxy | |
38 | -{ | |
39 | - private static LiteLoaderEventBrokerClient broker; | |
40 | - | |
41 | - private ClientProxy() {} | |
42 | - | |
43 | - public static void onStartupComplete() | |
44 | - { | |
45 | - Proxy.onStartupComplete(); | |
46 | - | |
47 | - ClientProxy.broker = LiteLoaderEventBrokerClient.getInstance(); | |
48 | - | |
49 | - if (ClientProxy.broker == null) | |
50 | - { | |
51 | - throw new RuntimeException("LiteLoader failed to start up properly." | |
52 | - + " The game is in an unstable state and must shut down now. Check the developer log for startup errors"); | |
53 | - } | |
54 | - | |
55 | - ClientProxy.broker.onStartupComplete(); | |
56 | - } | |
57 | - | |
58 | - public static void onTimerUpdate() | |
59 | - { | |
60 | - ClientProxy.broker.onTimerUpdate(); | |
61 | - } | |
62 | - | |
63 | - public static void newTick() | |
64 | - { | |
65 | - } | |
66 | - | |
67 | - public static void onTick() | |
68 | - { | |
69 | - ClientProxy.broker.onTick(); | |
70 | - } | |
71 | - | |
72 | - public static void onRender() | |
73 | - { | |
74 | - ClientProxy.broker.onRender(); | |
75 | - } | |
76 | - | |
77 | - public static void preRenderGUI(float partialTicks) | |
78 | - { | |
79 | - ClientProxy.broker.preRenderGUI(partialTicks); | |
80 | - } | |
81 | - | |
82 | - public static void onSetupCameraTransform(int pass, float partialTicks, long timeSlice) | |
83 | - { | |
84 | - ClientProxy.broker.onSetupCameraTransform(pass, partialTicks, timeSlice); | |
85 | - } | |
86 | - | |
87 | - public static void postRenderEntities(int pass, float partialTicks, long timeSlice) | |
88 | - { | |
89 | - ClientProxy.broker.postRenderEntities(partialTicks, timeSlice); | |
90 | - } | |
91 | - | |
92 | - public static void postRender(float partialTicks, long timeSlice) | |
93 | - { | |
94 | - ClientProxy.broker.postRender(partialTicks, timeSlice); | |
95 | - } | |
96 | - | |
97 | - public static void onRenderHUD(float partialTicks) | |
98 | - { | |
99 | - ClientProxy.broker.onRenderHUD(partialTicks); | |
100 | - } | |
101 | - | |
102 | - public static void onRenderChat(GuiNewChat chatGui, float partialTicks) | |
103 | - { | |
104 | - ClientProxy.broker.onRenderChat(chatGui, partialTicks); | |
105 | - } | |
106 | - | |
107 | - public static void postRenderChat(GuiNewChat chatGui, float partialTicks) | |
108 | - { | |
109 | - ClientProxy.broker.postRenderChat(chatGui, partialTicks); | |
110 | - } | |
111 | - | |
112 | - public static void postRenderHUD(float partialTicks) | |
113 | - { | |
114 | - ClientProxy.broker.postRenderHUD(partialTicks); | |
115 | - } | |
116 | - | |
117 | - public static void onCreateIntegratedServer(IntegratedServer server, String folderName, String worldName, WorldSettings worldSettings) | |
118 | - { | |
119 | - ClientProxy.broker.onStartServer(server, folderName, worldName, worldSettings); | |
120 | - } | |
121 | - | |
122 | - public static void onOutboundChat(CallbackInfo e, String message) | |
123 | - { | |
124 | - ClientProxy.broker.onSendChatMessage(e, message); | |
125 | - } | |
126 | - | |
127 | - public static void onResize(Minecraft mc) | |
128 | - { | |
129 | - if (ClientProxy.broker == null) return; | |
130 | - ClientProxy.broker.onResize(mc); | |
131 | - } | |
132 | - | |
133 | - public static void preRenderFBO(Framebuffer frameBufferMc) | |
134 | - { | |
135 | - if (ClientProxy.broker == null) return; | |
136 | - if (frameBufferMc instanceof IFramebuffer) | |
137 | - { | |
138 | - ((IFramebuffer)frameBufferMc).setDispatchRenderEvent(true); | |
139 | - } | |
140 | - ClientProxy.broker.preRenderFBO(frameBufferMc); | |
141 | - } | |
142 | - | |
143 | - public static void postRenderFBO(Framebuffer frameBufferMc) | |
144 | - { | |
145 | - if (ClientProxy.broker == null) return; | |
146 | - ClientProxy.broker.postRenderFBO(frameBufferMc); | |
147 | - } | |
148 | - | |
149 | - public static void renderFBO(Framebuffer frameBufferMc, int width, int height, boolean flag) | |
150 | - { | |
151 | - if (ClientProxy.broker == null) return; | |
152 | - ClientProxy.broker.onRenderFBO(frameBufferMc, width, height); | |
153 | - } | |
154 | - | |
155 | - public static void onRenderWorld(float partialTicks, long timeSlice) | |
156 | - { | |
157 | - ClientProxy.broker.onRenderWorld(partialTicks, timeSlice); | |
158 | - } | |
159 | - | |
160 | - public static void onRenderSky(int pass, float partialTicks, long timeSlice) | |
161 | - { | |
162 | - ClientProxy.broker.onRenderSky(partialTicks, pass, timeSlice); | |
163 | - } | |
164 | - | |
165 | - public static void onRenderClouds(RenderGlobal renderGlobalIn, float partialTicks, int pass) | |
166 | - { | |
167 | - ClientProxy.broker.onRenderClouds(partialTicks, pass, renderGlobalIn); | |
168 | - } | |
169 | - | |
170 | - public static void onRenderTerrain(int pass, float partialTicks, long timeSlice) | |
171 | - { | |
172 | - ClientProxy.broker.onRenderTerrain(partialTicks, pass, timeSlice); | |
173 | - } | |
174 | - | |
175 | - public static void onSaveScreenshot(CallbackInfoReturnable<ITextComponent> ci, File gameDir, String name, int width, int height, | |
176 | - Framebuffer fbo) | |
177 | - { | |
178 | - ClientProxy.broker.onScreenshot(ci, name, width, height, fbo); | |
179 | - } | |
180 | - | |
181 | - public static <T extends Entity> void onRenderEntity(RenderManager source, Render<T> render, T entity, double x, double y, double z, | |
182 | - float yaw, float pTicks) | |
183 | - { | |
184 | - ClientProxy.broker.onRenderEntity(source, entity, x, y, z, yaw, pTicks, render); | |
185 | - } | |
186 | - | |
187 | - public static <T extends Entity> void onPostRenderEntity(RenderManager source, Render<T> render, T entity, double x, double y, double z, | |
188 | - float yaw, float pTicks) | |
189 | - { | |
190 | - ClientProxy.broker.onPostRenderEntity(source, entity, x, y, z, yaw, pTicks, render); | |
191 | - } | |
192 | - | |
193 | - public static boolean onClickMouse(EntityPlayerSP player, MouseButton button) | |
194 | - { | |
195 | - return ClientProxy.broker.onClickMouse(player, button); | |
196 | - } | |
197 | - | |
198 | - public static boolean onMouseHeld(EntityPlayerSP player, MouseButton button) | |
199 | - { | |
200 | - return ClientProxy.broker.onMouseHeld(player, button); | |
201 | - } | |
202 | -} |
src/client/java/com/mumfrey/liteloader/client/LiteLoaderEventBrokerClient.java
... | ... | @@ -286,7 +286,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
286 | 286 | * Late initialisation callback |
287 | 287 | */ |
288 | 288 | @Override |
289 | - protected void onStartupComplete() | |
289 | + public void onStartupComplete() | |
290 | 290 | { |
291 | 291 | this.engine.getResources().refreshResources(false); |
292 | 292 | |
... | ... | @@ -328,7 +328,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
328 | 328 | /** |
329 | 329 | * Callback from the tick hook, pre render |
330 | 330 | */ |
331 | - void onRender() | |
331 | + public void onRender() | |
332 | 332 | { |
333 | 333 | this.renderListeners.all().onRender(); |
334 | 334 | } |
... | ... | @@ -339,7 +339,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
339 | 339 | * @param partialTicks |
340 | 340 | * @param timeSlice |
341 | 341 | */ |
342 | - void postRenderEntities(float partialTicks, long timeSlice) | |
342 | + public void postRenderEntities(float partialTicks, long timeSlice) | |
343 | 343 | { |
344 | 344 | this.postRenderListeners.all().onPostRenderEntities(partialTicks); |
345 | 345 | } |
... | ... | @@ -350,7 +350,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
350 | 350 | * @param partialTicks |
351 | 351 | * @param timeSlice |
352 | 352 | */ |
353 | - void postRender(float partialTicks, long timeSlice) | |
353 | + public void postRender(float partialTicks, long timeSlice) | |
354 | 354 | { |
355 | 355 | ((IEntityRenderer)this.engineClient.getClient().entityRenderer).setupCamera(partialTicks, 0); |
356 | 356 | this.postRenderListeners.all().onPostRender(partialTicks); |
... | ... | @@ -359,7 +359,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
359 | 359 | /** |
360 | 360 | * Called immediately before the current GUI is rendered |
361 | 361 | */ |
362 | - void preRenderGUI(float partialTicks) | |
362 | + public void preRenderGUI(float partialTicks) | |
363 | 363 | { |
364 | 364 | this.renderListeners.all().onRenderGui(this.engineClient.getCurrentScreen()); |
365 | 365 | } |
... | ... | @@ -371,7 +371,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
371 | 371 | * @param timeSlice |
372 | 372 | * @param partialTicks |
373 | 373 | */ |
374 | - void onSetupCameraTransform(int pass, float partialTicks, long timeSlice) | |
374 | + public void onSetupCameraTransform(int pass, float partialTicks, long timeSlice) | |
375 | 375 | { |
376 | 376 | this.renderListeners.all().onSetupCameraTransform(); |
377 | 377 | this.preRenderListeners.all().onSetupCameraTransform(partialTicks, pass, timeSlice); |
... | ... | @@ -383,7 +383,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
383 | 383 | * @param chatGui |
384 | 384 | * @param partialTicks |
385 | 385 | */ |
386 | - void onRenderChat(GuiNewChat chatGui, float partialTicks) | |
386 | + public void onRenderChat(GuiNewChat chatGui, float partialTicks) | |
387 | 387 | { |
388 | 388 | this.chatRenderListeners.all().onPreRenderChat(this.screenWidth, this.screenHeight, chatGui); |
389 | 389 | } |
... | ... | @@ -394,7 +394,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
394 | 394 | * @param chatGui |
395 | 395 | * @param partialTicks |
396 | 396 | */ |
397 | - void postRenderChat(GuiNewChat chatGui, float partialTicks) | |
397 | + public void postRenderChat(GuiNewChat chatGui, float partialTicks) | |
398 | 398 | { |
399 | 399 | this.chatRenderListeners.all().onPostRenderChat(this.screenWidth, this.screenHeight, chatGui); |
400 | 400 | } |
... | ... | @@ -402,7 +402,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
402 | 402 | /** |
403 | 403 | * Callback when about to render the HUD |
404 | 404 | */ |
405 | - void onRenderHUD(float partialTicks) | |
405 | + public void onRenderHUD(float partialTicks) | |
406 | 406 | { |
407 | 407 | this.hudRenderListeners.all().onPreRenderHUD(this.screenWidth, this.screenHeight); |
408 | 408 | } |
... | ... | @@ -410,7 +410,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
410 | 410 | /** |
411 | 411 | * Callback when the HUD has just been rendered |
412 | 412 | */ |
413 | - void postRenderHUD(float partialTicks) | |
413 | + public void postRenderHUD(float partialTicks) | |
414 | 414 | { |
415 | 415 | this.hudRenderListeners.all().onPostRenderHUD(this.screenWidth, this.screenHeight); |
416 | 416 | } |
... | ... | @@ -418,7 +418,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
418 | 418 | /** |
419 | 419 | * Callback from the tick hook, called every frame when the timer is updated |
420 | 420 | */ |
421 | - void onTimerUpdate() | |
421 | + public void onTimerUpdate() | |
422 | 422 | { |
423 | 423 | Minecraft minecraft = this.engine.getClient(); |
424 | 424 | this.loopListeners.all().onRunGameLoop(minecraft); |
... | ... | @@ -427,7 +427,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
427 | 427 | /** |
428 | 428 | * Callback from the tick hook, ticks all tickable mods |
429 | 429 | */ |
430 | - void onTick() | |
430 | + public void onTick() | |
431 | 431 | { |
432 | 432 | this.profiler.endStartSection("litemods"); |
433 | 433 | |
... | ... | @@ -474,7 +474,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
474 | 474 | /** |
475 | 475 | * @param message |
476 | 476 | */ |
477 | - void onSendChatMessage(CallbackInfo e, String message) | |
477 | + public void onSendChatMessage(CallbackInfo e, String message) | |
478 | 478 | { |
479 | 479 | if (!this.outboundChatFilters.all().onSendChatMessage(message)) |
480 | 480 | { |
... | ... | @@ -485,7 +485,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
485 | 485 | /** |
486 | 486 | * @param framebuffer |
487 | 487 | */ |
488 | - void preRenderFBO(Framebuffer framebuffer) | |
488 | + public void preRenderFBO(Framebuffer framebuffer) | |
489 | 489 | { |
490 | 490 | this.frameBufferListeners.all().preRenderFBO(framebuffer); |
491 | 491 | } |
... | ... | @@ -495,7 +495,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
495 | 495 | * @param width |
496 | 496 | * @param height |
497 | 497 | */ |
498 | - void onRenderFBO(Framebuffer framebuffer, int width, int height) | |
498 | + public void onRenderFBO(Framebuffer framebuffer, int width, int height) | |
499 | 499 | { |
500 | 500 | this.frameBufferListeners.all().onRenderFBO(framebuffer, width, height); |
501 | 501 | } |
... | ... | @@ -503,7 +503,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
503 | 503 | /** |
504 | 504 | * @param framebuffer |
505 | 505 | */ |
506 | - void postRenderFBO(Framebuffer framebuffer) | |
506 | + public void postRenderFBO(Framebuffer framebuffer) | |
507 | 507 | { |
508 | 508 | this.frameBufferListeners.all().postRenderFBO(framebuffer); |
509 | 509 | } |
... | ... | @@ -512,7 +512,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
512 | 512 | * @param partialTicks |
513 | 513 | * @param timeSlice |
514 | 514 | */ |
515 | - void onRenderWorld(float partialTicks, long timeSlice) | |
515 | + public void onRenderWorld(float partialTicks, long timeSlice) | |
516 | 516 | { |
517 | 517 | this.preRenderListeners.all().onRenderWorld(partialTicks); |
518 | 518 | } |
... | ... | @@ -522,7 +522,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
522 | 522 | * @param pass |
523 | 523 | * @param timeSlice |
524 | 524 | */ |
525 | - void onRenderSky(float partialTicks, int pass, long timeSlice) | |
525 | + public void onRenderSky(float partialTicks, int pass, long timeSlice) | |
526 | 526 | { |
527 | 527 | this.preRenderListeners.all().onRenderSky(partialTicks, pass); |
528 | 528 | } |
... | ... | @@ -532,7 +532,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
532 | 532 | * @param pass |
533 | 533 | * @param renderGlobal |
534 | 534 | */ |
535 | - void onRenderClouds(float partialTicks, int pass, RenderGlobal renderGlobal) | |
535 | + public void onRenderClouds(float partialTicks, int pass, RenderGlobal renderGlobal) | |
536 | 536 | { |
537 | 537 | this.preRenderListeners.all().onRenderClouds(partialTicks, pass, renderGlobal); |
538 | 538 | } |
... | ... | @@ -542,7 +542,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
542 | 542 | * @param pass |
543 | 543 | * @param timeSlice |
544 | 544 | */ |
545 | - void onRenderTerrain(float partialTicks, int pass, long timeSlice) | |
545 | + public void onRenderTerrain(float partialTicks, int pass, long timeSlice) | |
546 | 546 | { |
547 | 547 | this.preRenderListeners.all().onRenderTerrain(partialTicks, pass); |
548 | 548 | } |
... | ... | @@ -554,7 +554,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
554 | 554 | * @param height |
555 | 555 | * @param fbo |
556 | 556 | */ |
557 | - void onScreenshot(CallbackInfoReturnable<ITextComponent> ci, String name, int width, int height, Framebuffer fbo) | |
557 | + public void onScreenshot(CallbackInfoReturnable<ITextComponent> ci, String name, int width, int height, Framebuffer fbo) | |
558 | 558 | { |
559 | 559 | ReturnValue<ITextComponent> ret = new ReturnValue<ITextComponent>(ci.getReturnValue()); |
560 | 560 | ... | ... |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinEntityPlayerSP.java
... | ... | @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.At; |
10 | 10 | import org.spongepowered.asm.mixin.injection.Inject; |
11 | 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
12 | 12 | |
13 | -import com.mumfrey.liteloader.client.ClientProxy; | |
13 | +import com.mumfrey.liteloader.client.LiteLoaderEventBrokerClient; | |
14 | 14 | |
15 | 15 | import net.minecraft.client.entity.AbstractClientPlayer; |
16 | 16 | import net.minecraft.client.entity.EntityPlayerSP; |
... | ... | @@ -26,6 +26,6 @@ public abstract class MixinEntityPlayerSP extends AbstractClientPlayer |
26 | 26 | @Inject(method = "sendChatMessage(Ljava/lang/String;)V", at = { @At("HEAD") }, cancellable = true) |
27 | 27 | public void onSendChatMessage(String message, CallbackInfo ci) |
28 | 28 | { |
29 | - ClientProxy.onOutboundChat(ci, message); | |
29 | + LiteLoaderEventBrokerClient.getInstance().onSendChatMessage(ci, message); | |
30 | 30 | } |
31 | 31 | } | ... | ... |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinEntityRenderer.java
... | ... | @@ -13,7 +13,7 @@ import org.spongepowered.asm.mixin.injection.At.Shift; |
13 | 13 | import org.spongepowered.asm.mixin.injection.Inject; |
14 | 14 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
15 | 15 | |
16 | -import com.mumfrey.liteloader.client.ClientProxy; | |
16 | +import com.mumfrey.liteloader.client.LiteLoaderEventBrokerClient; | |
17 | 17 | import com.mumfrey.liteloader.client.overlays.IEntityRenderer; |
18 | 18 | |
19 | 19 | import net.minecraft.client.renderer.EntityRenderer; |
... | ... | @@ -33,6 +33,8 @@ public abstract class MixinEntityRenderer implements IEntityRenderer |
33 | 33 | @Shadow abstract float getFOVModifier(float partialTicks, boolean useFOVSetting); |
34 | 34 | @Shadow abstract void setupCameraTransform(float partialTicks, int pass); |
35 | 35 | |
36 | + private LiteLoaderEventBrokerClient broker = LiteLoaderEventBrokerClient.getInstance(); | |
37 | + | |
36 | 38 | @Inject(method = "updateCameraAndRender(FJ)V", at = @At( |
37 | 39 | value = "INVOKE", |
38 | 40 | shift = Shift.AFTER, |
... | ... | @@ -40,7 +42,7 @@ public abstract class MixinEntityRenderer implements IEntityRenderer |
40 | 42 | )) |
41 | 43 | private void onPreRenderGUI(float partialTicks, long nanoTime, CallbackInfo ci) |
42 | 44 | { |
43 | - ClientProxy.preRenderGUI(partialTicks); | |
45 | + this.broker.preRenderGUI(partialTicks); | |
44 | 46 | } |
45 | 47 | |
46 | 48 | @Inject(method = "updateCameraAndRender(FJ)V", at = @At( |
... | ... | @@ -49,7 +51,7 @@ public abstract class MixinEntityRenderer implements IEntityRenderer |
49 | 51 | )) |
50 | 52 | private void onRenderHUD(float partialTicks, long nanoTime, CallbackInfo ci) |
51 | 53 | { |
52 | - ClientProxy.onRenderHUD(partialTicks); | |
54 | + this.broker.onRenderHUD(partialTicks); | |
53 | 55 | } |
54 | 56 | |
55 | 57 | @Inject(method = "updateCameraAndRender(FJ)V", at = @At( |
... | ... | @@ -59,7 +61,7 @@ public abstract class MixinEntityRenderer implements IEntityRenderer |
59 | 61 | )) |
60 | 62 | private void onPostRenderHUD(float partialTicks, long nanoTime, CallbackInfo ci) |
61 | 63 | { |
62 | - ClientProxy.postRenderHUD(partialTicks); | |
64 | + this.broker.postRenderHUD(partialTicks); | |
63 | 65 | } |
64 | 66 | |
65 | 67 | @Inject(method = "renderWorld(FJ)V", at = @At( |
... | ... | @@ -69,7 +71,7 @@ public abstract class MixinEntityRenderer implements IEntityRenderer |
69 | 71 | )) |
70 | 72 | private void onRenderWorld(float partialTicks, long timeSlice, CallbackInfo ci) |
71 | 73 | { |
72 | - ClientProxy.onRenderWorld(partialTicks, timeSlice); | |
74 | + this.broker.onRenderWorld(partialTicks, timeSlice); | |
73 | 75 | } |
74 | 76 | |
75 | 77 | @Inject(method = "renderWorld(FJ)V", at = @At( |
... | ... | @@ -79,7 +81,7 @@ public abstract class MixinEntityRenderer implements IEntityRenderer |
79 | 81 | )) |
80 | 82 | private void onPostRender(float partialTicks, long timeSlice, CallbackInfo ci) |
81 | 83 | { |
82 | - ClientProxy.postRender(partialTicks, timeSlice); | |
84 | + this.broker.postRender(partialTicks, timeSlice); | |
83 | 85 | } |
84 | 86 | |
85 | 87 | @Inject(method = "renderWorldPass(IFJ)V", at = @At( |
... | ... | @@ -89,7 +91,7 @@ public abstract class MixinEntityRenderer implements IEntityRenderer |
89 | 91 | )) |
90 | 92 | private void onSetupCameraTransform(int pass, float partialTicks, long timeSlice, CallbackInfo ci) |
91 | 93 | { |
92 | - ClientProxy.onSetupCameraTransform(pass, partialTicks, timeSlice); | |
94 | + this.broker.onSetupCameraTransform(pass, partialTicks, timeSlice); | |
93 | 95 | } |
94 | 96 | |
95 | 97 | @Inject(method = "renderWorldPass(IFJ)V", at = @At( |
... | ... | @@ -99,7 +101,7 @@ public abstract class MixinEntityRenderer implements IEntityRenderer |
99 | 101 | )) |
100 | 102 | private void onRenderSky(int pass, float partialTicks, long timeSlice, CallbackInfo ci) |
101 | 103 | { |
102 | - ClientProxy.onRenderSky(pass, partialTicks, timeSlice); | |
104 | + this.broker.onRenderSky(partialTicks, pass, timeSlice); | |
103 | 105 | } |
104 | 106 | |
105 | 107 | @Inject(method = "renderWorldPass(IFJ)V", at = @At( |
... | ... | @@ -109,8 +111,7 @@ public abstract class MixinEntityRenderer implements IEntityRenderer |
109 | 111 | )) |
110 | 112 | private void onRenderTerrain(int pass, float partialTicks, long timeSlice, CallbackInfo ci) |
111 | 113 | { |
112 | - ClientProxy.onRenderTerrain(pass, partialTicks, timeSlice); | |
113 | - | |
114 | + this.broker.onRenderTerrain(partialTicks, pass, timeSlice); | |
114 | 115 | } |
115 | 116 | |
116 | 117 | @Inject(method = "renderWorldPass(IFJ)V", at = @At( |
... | ... | @@ -120,7 +121,7 @@ public abstract class MixinEntityRenderer implements IEntityRenderer |
120 | 121 | )) |
121 | 122 | private void onPostRenderEntities(int pass, float partialTicks, long timeSlice, CallbackInfo ci) |
122 | 123 | { |
123 | - ClientProxy.postRenderEntities(pass, partialTicks, timeSlice); | |
124 | + this.broker.postRenderEntities(partialTicks, timeSlice); | |
124 | 125 | } |
125 | 126 | |
126 | 127 | @Inject(method = "renderCloudsCheck(Lnet/minecraft/client/renderer/RenderGlobal;FIDDD)V", at = @At( |
... | ... | @@ -129,7 +130,7 @@ public abstract class MixinEntityRenderer implements IEntityRenderer |
129 | 130 | )) |
130 | 131 | private void onRenderClouds(RenderGlobal renderGlobalIn, float partialTicks, int pass, double x, double y, double z, CallbackInfo ci) |
131 | 132 | { |
132 | - ClientProxy.onRenderClouds(renderGlobalIn, partialTicks, pass); | |
133 | + this.broker.onRenderClouds(partialTicks, pass, renderGlobalIn); | |
133 | 134 | } |
134 | 135 | |
135 | 136 | @Override | ... | ... |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinFramebuffer.java
... | ... | @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.At; |
10 | 10 | import org.spongepowered.asm.mixin.injection.Inject; |
11 | 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
12 | 12 | |
13 | -import com.mumfrey.liteloader.client.ClientProxy; | |
13 | +import com.mumfrey.liteloader.client.LiteLoaderEventBrokerClient; | |
14 | 14 | import com.mumfrey.liteloader.client.ducks.IFramebuffer; |
15 | 15 | |
16 | 16 | import net.minecraft.client.shader.Framebuffer; |
... | ... | @@ -18,6 +18,8 @@ import net.minecraft.client.shader.Framebuffer; |
18 | 18 | @Mixin(Framebuffer.class) |
19 | 19 | public abstract class MixinFramebuffer implements IFramebuffer |
20 | 20 | { |
21 | + private LiteLoaderEventBrokerClient broker; | |
22 | + | |
21 | 23 | private boolean dispatchRenderEvent; |
22 | 24 | |
23 | 25 | @Override |
... | ... | @@ -39,10 +41,15 @@ public abstract class MixinFramebuffer implements IFramebuffer |
39 | 41 | )) |
40 | 42 | private void onRenderFBO(int width, int height, boolean flag, CallbackInfo ci) |
41 | 43 | { |
42 | - if (this.dispatchRenderEvent) | |
44 | + if (this.broker == null) | |
45 | + { | |
46 | + this.broker = LiteLoaderEventBrokerClient.getInstance(); | |
47 | + } | |
48 | + | |
49 | + if (this.dispatchRenderEvent && this.broker != null) | |
43 | 50 | { |
44 | - ClientProxy.renderFBO((Framebuffer)(Object)this, width, height, flag); | |
45 | - this.dispatchRenderEvent = false; | |
51 | + this.broker.onRenderFBO((Framebuffer)(Object)this, width, height); | |
46 | 52 | } |
53 | + this.dispatchRenderEvent = false; | |
47 | 54 | } |
48 | 55 | } | ... | ... |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinGuiIngame.java
... | ... | @@ -13,7 +13,7 @@ import org.spongepowered.asm.mixin.injection.At.Shift; |
13 | 13 | import org.spongepowered.asm.mixin.injection.Inject; |
14 | 14 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
15 | 15 | |
16 | -import com.mumfrey.liteloader.client.ClientProxy; | |
16 | +import com.mumfrey.liteloader.client.LiteLoaderEventBrokerClient; | |
17 | 17 | |
18 | 18 | import net.minecraft.client.gui.Gui; |
19 | 19 | import net.minecraft.client.gui.GuiIngame; |
... | ... | @@ -24,13 +24,15 @@ public abstract class MixinGuiIngame extends Gui |
24 | 24 | { |
25 | 25 | @Shadow @Final private GuiNewChat persistantChatGUI; |
26 | 26 | |
27 | + private LiteLoaderEventBrokerClient broker = LiteLoaderEventBrokerClient.getInstance(); | |
28 | + | |
27 | 29 | @Inject(method = "renderGameOverlay(F)V", at = @At( |
28 | 30 | value = "INVOKE", |
29 | 31 | target = "Lnet/minecraft/client/gui/GuiNewChat;drawChat(I)V" |
30 | 32 | )) |
31 | 33 | private void onRenderChat(float partialTicks, CallbackInfo ci) |
32 | 34 | { |
33 | - ClientProxy.onRenderChat(this.persistantChatGUI, partialTicks); | |
35 | + this.broker.onRenderChat(this.persistantChatGUI, partialTicks); | |
34 | 36 | } |
35 | 37 | |
36 | 38 | @Inject(method = "renderGameOverlay(F)V", at = @At( |
... | ... | @@ -40,6 +42,6 @@ public abstract class MixinGuiIngame extends Gui |
40 | 42 | )) |
41 | 43 | private void postRenderChat(float partialTicks, CallbackInfo ci) |
42 | 44 | { |
43 | - ClientProxy.postRenderChat(this.persistantChatGUI, partialTicks); | |
45 | + this.broker.postRenderChat(this.persistantChatGUI, partialTicks); | |
44 | 46 | } |
45 | 47 | } | ... | ... |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinIntegratedServer.java
... | ... | @@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
14 | 14 | import com.mojang.authlib.GameProfileRepository; |
15 | 15 | import com.mojang.authlib.minecraft.MinecraftSessionService; |
16 | 16 | import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; |
17 | -import com.mumfrey.liteloader.client.ClientProxy; | |
17 | +import com.mumfrey.liteloader.client.LiteLoaderEventBrokerClient; | |
18 | 18 | |
19 | 19 | import net.minecraft.client.Minecraft; |
20 | 20 | import net.minecraft.server.MinecraftServer; |
... | ... | @@ -25,6 +25,8 @@ import net.minecraft.world.WorldSettings; |
25 | 25 | @Mixin(IntegratedServer.class) |
26 | 26 | public abstract class MixinIntegratedServer extends MinecraftServer |
27 | 27 | { |
28 | + private LiteLoaderEventBrokerClient broker = LiteLoaderEventBrokerClient.getInstance(); | |
29 | + | |
28 | 30 | public MixinIntegratedServer() |
29 | 31 | { |
30 | 32 | super(null, null, null, null, null, null, null); |
... | ... | @@ -38,7 +40,7 @@ public abstract class MixinIntegratedServer extends MinecraftServer |
38 | 40 | private void onConstructed(Minecraft mcIn, String folderName, String worldName, WorldSettings settings, YggdrasilAuthenticationService authSrv, |
39 | 41 | MinecraftSessionService sessionSrv, GameProfileRepository profileRepo, PlayerProfileCache profileCache, CallbackInfo ci) |
40 | 42 | { |
41 | - ClientProxy.onCreateIntegratedServer((IntegratedServer)(Object)this, folderName, worldName, settings); | |
43 | + this.broker.onStartServer(this, folderName, worldName, settings); | |
42 | 44 | } |
43 | 45 | |
44 | 46 | @Surrogate | ... | ... |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinMinecraft.java
... | ... | @@ -17,7 +17,8 @@ import org.spongepowered.asm.mixin.injection.Redirect; |
17 | 17 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
18 | 18 | |
19 | 19 | import com.mumfrey.liteloader.PlayerInteractionListener.MouseButton; |
20 | -import com.mumfrey.liteloader.client.ClientProxy; | |
20 | +import com.mumfrey.liteloader.client.LiteLoaderEventBrokerClient; | |
21 | +import com.mumfrey.liteloader.client.ducks.IFramebuffer; | |
21 | 22 | import com.mumfrey.liteloader.client.overlays.IMinecraft; |
22 | 23 | |
23 | 24 | import net.minecraft.client.Minecraft; |
... | ... | @@ -40,22 +41,35 @@ public abstract class MixinMinecraft implements IMinecraft |
40 | 41 | @Shadow private void rightClickMouse() {} |
41 | 42 | @Shadow private void middleClickMouse() {} |
42 | 43 | |
44 | + private LiteLoaderEventBrokerClient broker; | |
45 | + | |
43 | 46 | @Inject(method = "init()V", at = @At("RETURN")) |
44 | 47 | private void onStartupComplete(CallbackInfo ci) |
45 | 48 | { |
46 | - ClientProxy.onStartupComplete(); | |
49 | + this.broker = LiteLoaderEventBrokerClient.getInstance(); | |
50 | + | |
51 | + if (this.broker == null) | |
52 | + { | |
53 | + throw new RuntimeException("LiteLoader failed to start up properly." | |
54 | + + " The game is in an unstable state and must shut down now. Check the developer log for startup errors"); | |
55 | + } | |
56 | + | |
57 | + this.broker.onStartupComplete(); | |
47 | 58 | } |
48 | 59 | |
49 | 60 | @Inject(method = "updateFramebufferSize()V", at = @At("HEAD")) |
50 | 61 | private void onResize(CallbackInfo ci) |
51 | 62 | { |
52 | - ClientProxy.onResize((Minecraft)(Object)this); | |
63 | + if (this.broker != null) | |
64 | + { | |
65 | + this.broker.onResize((Minecraft)(Object)this); | |
66 | + } | |
53 | 67 | } |
54 | 68 | |
55 | 69 | @Inject(method = "runTick()V", at = @At("HEAD")) |
56 | 70 | private void newTick(CallbackInfo ci) |
57 | 71 | { |
58 | - ClientProxy.newTick(); | |
72 | +// ClientProxy.newTick(); | |
59 | 73 | } |
60 | 74 | |
61 | 75 | @Inject(method = "runGameLoop()V", at = @At( |
... | ... | @@ -65,7 +79,7 @@ public abstract class MixinMinecraft implements IMinecraft |
65 | 79 | )) |
66 | 80 | private void onTick(CallbackInfo ci) |
67 | 81 | { |
68 | - ClientProxy.onTick(); | |
82 | + this.broker.onTick(); | |
69 | 83 | } |
70 | 84 | |
71 | 85 | @Redirect(method = "runGameLoop()V", at = @At( |
... | ... | @@ -75,11 +89,17 @@ public abstract class MixinMinecraft implements IMinecraft |
75 | 89 | private void renderFBO(Framebuffer framebufferMc, int width, int height) |
76 | 90 | { |
77 | 91 | boolean fboEnabled = OpenGlHelper.isFramebufferEnabled(); |
78 | - if (fboEnabled) | |
92 | + if (fboEnabled && this.broker != null) | |
79 | 93 | { |
80 | - ClientProxy.preRenderFBO(framebufferMc); | |
94 | + if (framebufferMc instanceof IFramebuffer) | |
95 | + { | |
96 | + ((IFramebuffer)framebufferMc).setDispatchRenderEvent(true); | |
97 | + } | |
98 | + this.broker.preRenderFBO(framebufferMc); | |
99 | + | |
81 | 100 | framebufferMc.framebufferRender(width, height); |
82 | - ClientProxy.preRenderFBO(framebufferMc); | |
101 | + | |
102 | + this.broker.postRenderFBO(framebufferMc); | |
83 | 103 | } |
84 | 104 | else |
85 | 105 | { |
... | ... | @@ -94,7 +114,7 @@ public abstract class MixinMinecraft implements IMinecraft |
94 | 114 | )) |
95 | 115 | private void onTimerUpdate(CallbackInfo ci) |
96 | 116 | { |
97 | - ClientProxy.onTimerUpdate(); | |
117 | + this.broker.onTimerUpdate(); | |
98 | 118 | } |
99 | 119 | |
100 | 120 | @Inject(method = "runGameLoop()V", at = @At( |
... | ... | @@ -104,7 +124,7 @@ public abstract class MixinMinecraft implements IMinecraft |
104 | 124 | )) |
105 | 125 | private void onRender(CallbackInfo ci) |
106 | 126 | { |
107 | - ClientProxy.onRender(); | |
127 | + this.broker.onRender(); | |
108 | 128 | } |
109 | 129 | |
110 | 130 | @Redirect(method = "processKeyBinds()V", at = @At( |
... | ... | @@ -113,7 +133,7 @@ public abstract class MixinMinecraft implements IMinecraft |
113 | 133 | )) |
114 | 134 | private void onClickMouse(Minecraft self) |
115 | 135 | { |
116 | - if (ClientProxy.onClickMouse(self.player, MouseButton.LEFT)) | |
136 | + if (this.broker.onClickMouse(self.player, MouseButton.LEFT)) | |
117 | 137 | { |
118 | 138 | this.clickMouse(); |
119 | 139 | } |
... | ... | @@ -128,7 +148,7 @@ public abstract class MixinMinecraft implements IMinecraft |
128 | 148 | ) |
129 | 149 | private void onMouseHeld(boolean leftClick, CallbackInfo ci) |
130 | 150 | { |
131 | - if (!ClientProxy.onMouseHeld(((Minecraft)(Object)this).player, MouseButton.LEFT)) | |
151 | + if (!this.broker.onMouseHeld(((Minecraft)(Object)this).player, MouseButton.LEFT)) | |
132 | 152 | { |
133 | 153 | ci.cancel(); |
134 | 154 | } |
... | ... | @@ -141,7 +161,7 @@ public abstract class MixinMinecraft implements IMinecraft |
141 | 161 | )) |
142 | 162 | private void onRightClickMouse(Minecraft self) |
143 | 163 | { |
144 | - if (ClientProxy.onClickMouse(self.player, MouseButton.RIGHT)) | |
164 | + if (this.broker.onClickMouse(self.player, MouseButton.RIGHT)) | |
145 | 165 | { |
146 | 166 | this.rightClickMouse(); |
147 | 167 | } |
... | ... | @@ -154,7 +174,7 @@ public abstract class MixinMinecraft implements IMinecraft |
154 | 174 | )) |
155 | 175 | private void onRightMouseHeld(Minecraft self) |
156 | 176 | { |
157 | - if (ClientProxy.onMouseHeld(self.player, MouseButton.RIGHT)) | |
177 | + if (this.broker.onMouseHeld(self.player, MouseButton.RIGHT)) | |
158 | 178 | { |
159 | 179 | this.rightClickMouse(); |
160 | 180 | } |
... | ... | @@ -166,7 +186,7 @@ public abstract class MixinMinecraft implements IMinecraft |
166 | 186 | )) |
167 | 187 | private void onMiddleClickMouse(Minecraft self) |
168 | 188 | { |
169 | - if (ClientProxy.onClickMouse(self.player, MouseButton.MIDDLE)) | |
189 | + if (this.broker.onClickMouse(self.player, MouseButton.MIDDLE)) | |
170 | 190 | { |
171 | 191 | this.middleClickMouse(); |
172 | 192 | } | ... | ... |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinRenderManager.java
... | ... | @@ -13,7 +13,7 @@ import org.spongepowered.asm.mixin.Shadow; |
13 | 13 | import org.spongepowered.asm.mixin.injection.At; |
14 | 14 | import org.spongepowered.asm.mixin.injection.Redirect; |
15 | 15 | |
16 | -import com.mumfrey.liteloader.client.ClientProxy; | |
16 | +import com.mumfrey.liteloader.client.LiteLoaderEventBrokerClient; | |
17 | 17 | import com.mumfrey.liteloader.client.ducks.IRenderManager; |
18 | 18 | |
19 | 19 | import net.minecraft.client.renderer.entity.Render; |
... | ... | @@ -25,6 +25,8 @@ public abstract class MixinRenderManager implements IRenderManager |
25 | 25 | { |
26 | 26 | @Shadow @Final private Map<Class<? extends Entity>, Render<? extends Entity>> entityRenderMap; |
27 | 27 | |
28 | + private LiteLoaderEventBrokerClient broker; | |
29 | + | |
28 | 30 | @Override |
29 | 31 | public Map<Class<? extends Entity>, Render<? extends Entity>> getRenderMap() |
30 | 32 | { |
... | ... | @@ -37,9 +39,13 @@ public abstract class MixinRenderManager implements IRenderManager |
37 | 39 | )) |
38 | 40 | private <T extends Entity> void onRenderEntity(Render<T> render, T entity, double x, double y, double z, float entityYaw, float partialTicks) |
39 | 41 | { |
40 | - RenderManager source = (RenderManager)(Object)this; | |
41 | - ClientProxy.onRenderEntity(source, render, entity, x, y, z, entityYaw, partialTicks); | |
42 | + if (this.broker == null) | |
43 | + { | |
44 | + this.broker = LiteLoaderEventBrokerClient.getInstance(); | |
45 | + } | |
46 | + | |
47 | + this.broker.onRenderEntity((RenderManager)(Object)this, entity, x, y, z, entityYaw, partialTicks, render); | |
42 | 48 | render.doRender(entity, x, y, z, entityYaw, partialTicks); |
43 | - ClientProxy.onPostRenderEntity(source, render, entity, x, y, z, entityYaw, partialTicks); | |
49 | + this.broker.onPostRenderEntity((RenderManager)(Object)this, entity, x, y, z, entityYaw, partialTicks, render); | |
44 | 50 | } |
45 | 51 | } | ... | ... |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinScreenShotHelper.java
... | ... | @@ -12,7 +12,7 @@ import org.spongepowered.asm.mixin.injection.At; |
12 | 12 | import org.spongepowered.asm.mixin.injection.Inject; |
13 | 13 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; |
14 | 14 | |
15 | -import com.mumfrey.liteloader.client.ClientProxy; | |
15 | +import com.mumfrey.liteloader.client.LiteLoaderEventBrokerClient; | |
16 | 16 | |
17 | 17 | import net.minecraft.client.shader.Framebuffer; |
18 | 18 | import net.minecraft.util.ScreenShotHelper; |
... | ... | @@ -34,6 +34,6 @@ public abstract class MixinScreenShotHelper |
34 | 34 | ) |
35 | 35 | private static void onSaveScreenshot(File gameDir, String name, int width, int height, Framebuffer fbo, CallbackInfoReturnable<ITextComponent> ci) |
36 | 36 | { |
37 | - ClientProxy.onSaveScreenshot(ci, gameDir, name, width, height, fbo); | |
37 | + LiteLoaderEventBrokerClient.getInstance().onScreenshot(ci, name, width, height, fbo); | |
38 | 38 | } |
39 | 39 | } | ... | ... |
src/main/java/com/mumfrey/liteloader/common/mixin/MixinMinecraftServer.java
... | ... | @@ -10,16 +10,18 @@ import org.spongepowered.asm.mixin.injection.At; |
10 | 10 | import org.spongepowered.asm.mixin.injection.Inject; |
11 | 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
12 | 12 | |
13 | -import com.mumfrey.liteloader.core.Proxy; | |
13 | +import com.mumfrey.liteloader.core.LiteLoaderEventBroker; | |
14 | 14 | |
15 | 15 | import net.minecraft.server.MinecraftServer; |
16 | 16 | |
17 | 17 | @Mixin(MinecraftServer.class) |
18 | 18 | public abstract class MixinMinecraftServer |
19 | 19 | { |
20 | + LiteLoaderEventBroker<?, ?> broker = LiteLoaderEventBroker.getCommonBroker(); | |
21 | + | |
20 | 22 | @Inject(method = "updateTimeLightAndEntities()V", at = @At("HEAD")) |
21 | 23 | private void onServerTick(CallbackInfo ci) |
22 | 24 | { |
23 | - Proxy.onServerTick((MinecraftServer)(Object)this); | |
25 | + this.broker.onServerTick((MinecraftServer)(Object)this); | |
24 | 26 | } |
25 | 27 | } | ... | ... |
src/main/java/com/mumfrey/liteloader/common/mixin/MixinNetHandlerPlayServer.java
... | ... | @@ -15,12 +15,15 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
15 | 15 | import org.spongepowered.asm.mixin.injection.callback.LocalCapture; |
16 | 16 | |
17 | 17 | import com.mumfrey.liteloader.common.ducks.ITeleportHandler; |
18 | -import com.mumfrey.liteloader.core.Proxy; | |
18 | +import com.mumfrey.liteloader.core.LiteLoaderEventBroker; | |
19 | +import com.mumfrey.liteloader.core.LiteLoaderEventBroker.InteractType; | |
19 | 20 | |
21 | +import net.minecraft.entity.player.EntityPlayerMP; | |
20 | 22 | import net.minecraft.network.NetHandlerPlayServer; |
21 | 23 | import net.minecraft.network.play.client.CPacketAnimation; |
22 | 24 | import net.minecraft.network.play.client.CPacketPlayer; |
23 | 25 | import net.minecraft.network.play.client.CPacketPlayerDigging; |
26 | +import net.minecraft.network.play.client.CPacketPlayerDigging.Action; | |
24 | 27 | import net.minecraft.network.play.client.CPacketPlayerTryUseItem; |
25 | 28 | import net.minecraft.util.math.Vec3d; |
26 | 29 | import net.minecraft.world.WorldServer; |
... | ... | @@ -30,6 +33,9 @@ public abstract class MixinNetHandlerPlayServer implements ITeleportHandler |
30 | 33 | { |
31 | 34 | @Shadow private int teleportId; |
32 | 35 | @Shadow private Vec3d targetPos; |
36 | + @Shadow public EntityPlayerMP playerEntity;; | |
37 | + | |
38 | + LiteLoaderEventBroker<?, ?> broker = LiteLoaderEventBroker.getCommonBroker(); | |
33 | 39 | |
34 | 40 | @Inject( |
35 | 41 | method = "processTryUseItem(Lnet/minecraft/network/play/client/CPacketPlayerTryUseItem;)V", |
... | ... | @@ -43,7 +49,7 @@ public abstract class MixinNetHandlerPlayServer implements ITeleportHandler |
43 | 49 | ) |
44 | 50 | private void onPlaceBlock(CPacketPlayerTryUseItem packetIn, CallbackInfo ci) |
45 | 51 | { |
46 | - Proxy.onPlaceBlock(ci, (NetHandlerPlayServer)(Object)this, packetIn); | |
52 | +// this.onPlaceBlock(ci, (NetHandlerPlayServer)(Object)this, packetIn); | |
47 | 53 | } |
48 | 54 | |
49 | 55 | @Inject( |
... | ... | @@ -58,7 +64,10 @@ public abstract class MixinNetHandlerPlayServer implements ITeleportHandler |
58 | 64 | ) |
59 | 65 | private void onClickedAir(CPacketAnimation packetIn, CallbackInfo ci) |
60 | 66 | { |
61 | - Proxy.onClickedAir(ci, (NetHandlerPlayServer)(Object)this, packetIn); | |
67 | + if (!this.broker.onClickedAir(InteractType.LEFT_CLICK, ((NetHandlerPlayServer)(Object)this).playerEntity, packetIn.getHand())) | |
68 | + { | |
69 | + ci.cancel(); | |
70 | + } | |
62 | 71 | } |
63 | 72 | |
64 | 73 | @Inject( |
... | ... | @@ -73,7 +82,26 @@ public abstract class MixinNetHandlerPlayServer implements ITeleportHandler |
73 | 82 | ) |
74 | 83 | private void onPlayerDigging(CPacketPlayerDigging packetIn, CallbackInfo ci) |
75 | 84 | { |
76 | - Proxy.onPlayerDigging(ci, (NetHandlerPlayServer)(Object)this, packetIn); | |
85 | + NetHandlerPlayServer netHandler = (NetHandlerPlayServer)(Object)this; | |
86 | + Action action = packetIn.getAction(); | |
87 | + if (action == Action.START_DESTROY_BLOCK) | |
88 | + { | |
89 | + if (!this.broker.onPlayerDigging(InteractType.DIG_BLOCK_MAYBE, this.playerEntity, netHandler, packetIn.getPosition())) | |
90 | + { | |
91 | + ci.cancel(); | |
92 | + } | |
93 | + } | |
94 | + else if (action == Action.ABORT_DESTROY_BLOCK || action == Action.STOP_DESTROY_BLOCK) | |
95 | + { | |
96 | + this.broker.onPlayerDigging(InteractType.DIG_BLOCK_END, this.playerEntity, netHandler, packetIn.getPosition()); | |
97 | + } | |
98 | + else if (action == Action.SWAP_HELD_ITEMS) | |
99 | + { | |
100 | + if (!this.broker.onPlayerSwapItems(this.playerEntity)) | |
101 | + { | |
102 | + ci.cancel(); | |
103 | + } | |
104 | + } | |
77 | 105 | } |
78 | 106 | |
79 | 107 | @Inject( |
... | ... | @@ -89,7 +117,10 @@ public abstract class MixinNetHandlerPlayServer implements ITeleportHandler |
89 | 117 | ) |
90 | 118 | private void onPlayerMoved(CPacketPlayer packetIn, CallbackInfo ci, WorldServer world) |
91 | 119 | { |
92 | - Proxy.onPlayerMoved(ci, (NetHandlerPlayServer)(Object)this, packetIn, world); | |
120 | + if (!this.broker.onPlayerMove((NetHandlerPlayServer)(Object)this, packetIn, this.playerEntity, world)) | |
121 | + { | |
122 | + ci.cancel(); | |
123 | + } | |
93 | 124 | } |
94 | 125 | |
95 | 126 | @Override | ... | ... |
src/main/java/com/mumfrey/liteloader/common/mixin/MixinPlayerInteractionManager.java
... | ... | @@ -11,9 +11,11 @@ import org.spongepowered.asm.mixin.injection.Inject; |
11 | 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
12 | 12 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; |
13 | 13 | |
14 | -import com.mumfrey.liteloader.core.Proxy; | |
14 | +import com.mumfrey.liteloader.core.LiteLoaderEventBroker; | |
15 | +import com.mumfrey.liteloader.core.LiteLoaderEventBroker.InteractType; | |
15 | 16 | |
16 | 17 | import net.minecraft.entity.player.EntityPlayer; |
18 | +import net.minecraft.entity.player.EntityPlayerMP; | |
17 | 19 | import net.minecraft.item.ItemStack; |
18 | 20 | import net.minecraft.server.management.PlayerInteractionManager; |
19 | 21 | import net.minecraft.util.EnumActionResult; |
... | ... | @@ -25,6 +27,8 @@ import net.minecraft.world.World; |
25 | 27 | @Mixin(value = PlayerInteractionManager.class, priority = 2000) |
26 | 28 | public abstract class MixinPlayerInteractionManager |
27 | 29 | { |
30 | + LiteLoaderEventBroker<?, ?> broker = LiteLoaderEventBroker.getCommonBroker(); | |
31 | + | |
28 | 32 | @Inject( |
29 | 33 | method = "onBlockClicked(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/EnumFacing;)V", |
30 | 34 | cancellable = true, |
... | ... | @@ -32,7 +36,10 @@ public abstract class MixinPlayerInteractionManager |
32 | 36 | ) |
33 | 37 | private void onBlockClicked(BlockPos pos, EnumFacing side, CallbackInfo ci) |
34 | 38 | { |
35 | - Proxy.onBlockClicked(ci, (PlayerInteractionManager)(Object)this, pos, side); | |
39 | + if (!this.broker.onBlockClicked(pos, side, (PlayerInteractionManager)(Object)this)) | |
40 | + { | |
41 | + ci.cancel(); | |
42 | + } | |
36 | 43 | } |
37 | 44 | |
38 | 45 | @Inject( |
... | ... | @@ -45,7 +52,15 @@ public abstract class MixinPlayerInteractionManager |
45 | 52 | private void onRightClickBlock(EntityPlayer player, World worldIn, ItemStack stack, EnumHand hand, BlockPos pos, EnumFacing side, |
46 | 53 | float offsetX, float offsetY, float offsetZ, CallbackInfoReturnable<EnumActionResult> cir) |
47 | 54 | { |
48 | - Proxy.onRightClickBlock(cir, player, worldIn, stack, hand, pos, side, offsetX, offsetY, offsetZ); | |
55 | + if (!(player instanceof EntityPlayerMP)) | |
56 | + { | |
57 | + return; | |
58 | + } | |
59 | + | |
60 | + if (!this.broker.onUseItem((EntityPlayerMP)player, hand, stack, pos, side)) | |
61 | + { | |
62 | + cir.setReturnValue(EnumActionResult.FAIL); | |
63 | + } | |
49 | 64 | } |
50 | 65 | |
51 | 66 | // @Inject( |
... | ... | @@ -58,7 +73,12 @@ public abstract class MixinPlayerInteractionManager |
58 | 73 | // private void postRightClickBlock(EntityPlayer player, World worldIn, ItemStack stack, EnumHand hand, BlockPos pos, EnumFacing side, |
59 | 74 | // float offsetX, float offsetY, float offsetZ, CallbackInfoReturnable<EnumActionResult> cir) |
60 | 75 | // { |
61 | -// Proxy.postRightClickBlock(cir, player, worldIn, stack, hand, pos, side, offsetX, offsetY, offsetZ); | |
76 | +// if (!(player instanceof EntityPlayerMP)) | |
77 | +// { | |
78 | +// return; | |
79 | +// } | |
80 | +// | |
81 | +// System.err.printf("@@ postRightClickBlock: %s\n", cir.getReturnValue()); | |
62 | 82 | // } |
63 | 83 | |
64 | 84 | @Inject( |
... | ... | @@ -69,6 +89,14 @@ public abstract class MixinPlayerInteractionManager |
69 | 89 | ) |
70 | 90 | private void onRightClick(EntityPlayer player, World worldIn, ItemStack stack, EnumHand hand, CallbackInfoReturnable<EnumActionResult> cir) |
71 | 91 | { |
72 | - Proxy.onRightClick(cir, player, worldIn, stack, hand); | |
92 | + if (!(player instanceof EntityPlayerMP)) | |
93 | + { | |
94 | + return; | |
95 | + } | |
96 | + | |
97 | + if (!this.broker.onClickedAir(InteractType.RIGHT_CLICK, (EntityPlayerMP)player, hand)) | |
98 | + { | |
99 | + cir.setReturnValue(EnumActionResult.FAIL); | |
100 | + } | |
73 | 101 | } |
74 | 102 | } | ... | ... |
src/main/java/com/mumfrey/liteloader/common/mixin/MixinPlayerList.java
... | ... | @@ -13,7 +13,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
13 | 13 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; |
14 | 14 | |
15 | 15 | import com.mojang.authlib.GameProfile; |
16 | -import com.mumfrey.liteloader.core.Proxy; | |
16 | +import com.mumfrey.liteloader.core.LiteLoaderEventBroker; | |
17 | 17 | |
18 | 18 | import net.minecraft.entity.player.EntityPlayerMP; |
19 | 19 | import net.minecraft.network.NetHandlerPlayServer; |
... | ... | @@ -29,26 +29,26 @@ public abstract class MixinPlayerList |
29 | 29 | ) |
30 | 30 | private void onInitializePlayerConnection(NetworkManager netManager, EntityPlayerMP player, CallbackInfo ci) |
31 | 31 | { |
32 | - Proxy.onInitializePlayerConnection((PlayerList)(Object)this, netManager, player); | |
32 | + LiteLoaderEventBroker.getCommonBroker().onInitializePlayerConnection((PlayerList)(Object)this, netManager, player); | |
33 | 33 | } |
34 | 34 | |
35 | 35 | // Because, forge |
36 | 36 | @Surrogate |
37 | 37 | private void onInitializePlayerConnection(NetworkManager netManager, EntityPlayerMP player, NetHandlerPlayServer nhps, CallbackInfo ci) |
38 | 38 | { |
39 | - Proxy.onInitializePlayerConnection((PlayerList)(Object)this, netManager, player); | |
39 | + LiteLoaderEventBroker.getCommonBroker().onInitializePlayerConnection((PlayerList)(Object)this, netManager, player); | |
40 | 40 | } |
41 | 41 | |
42 | 42 | @Inject(method = "playerLoggedIn(Lnet/minecraft/entity/player/EntityPlayerMP;)V", at = @At("RETURN")) |
43 | 43 | private void onPlayerLogin(EntityPlayerMP player, CallbackInfo ci) |
44 | 44 | { |
45 | - Proxy.onPlayerLogin((PlayerList)(Object)this, player); | |
45 | + LiteLoaderEventBroker.getCommonBroker().onPlayerLogin((PlayerList)(Object)this, player); | |
46 | 46 | } |
47 | 47 | |
48 | 48 | @Inject(method = "playerLoggedOut(Lnet/minecraft/entity/player/EntityPlayerMP;)V", at = @At("RETURN")) |
49 | 49 | private void onPlayerLogout(EntityPlayerMP player, CallbackInfo ci) |
50 | 50 | { |
51 | - Proxy.onPlayerLogout((PlayerList)(Object)this, player); | |
51 | + LiteLoaderEventBroker.getCommonBroker().onPlayerLogout((PlayerList)(Object)this, player); | |
52 | 52 | } |
53 | 53 | |
54 | 54 | @Inject( |
... | ... | @@ -58,7 +58,7 @@ public abstract class MixinPlayerList |
58 | 58 | ) |
59 | 59 | private void onSpawnPlayer(GameProfile profile, CallbackInfoReturnable<EntityPlayerMP> cir) |
60 | 60 | { |
61 | - Proxy.onSpawnPlayer(cir, (PlayerList)(Object)this, profile); | |
61 | + LiteLoaderEventBroker.getCommonBroker().onSpawnPlayer((PlayerList)(Object)this, cir.getReturnValue(), profile); | |
62 | 62 | } |
63 | 63 | |
64 | 64 | @Inject( |
... | ... | @@ -68,6 +68,6 @@ public abstract class MixinPlayerList |
68 | 68 | ) |
69 | 69 | private void onRespawnPlayer(EntityPlayerMP player, int dimension, boolean conqueredEnd, CallbackInfoReturnable<EntityPlayerMP> cir) |
70 | 70 | { |
71 | - Proxy.onRespawnPlayer(cir, (PlayerList)(Object)this, player, dimension, conqueredEnd); | |
71 | + LiteLoaderEventBroker.getCommonBroker().onRespawnPlayer((PlayerList)(Object)this, cir.getReturnValue(), player, dimension, conqueredEnd); | |
72 | 72 | } |
73 | 73 | } | ... | ... |
src/main/java/com/mumfrey/liteloader/core/LiteLoaderEnumerator.java
src/main/java/com/mumfrey/liteloader/core/LiteLoaderEventBroker.java
... | ... | @@ -118,7 +118,7 @@ public abstract class LiteLoaderEventBroker<TClient, TServer extends MinecraftSe |
118 | 118 | /** |
119 | 119 | * Singleton |
120 | 120 | */ |
121 | - static LiteLoaderEventBroker<?, ?> broker; | |
121 | + protected static LiteLoaderEventBroker<?, ?> broker; | |
122 | 122 | |
123 | 123 | /** |
124 | 124 | * Reference to the loader instance |
... | ... | @@ -191,6 +191,12 @@ public abstract class LiteLoaderEventBroker<TClient, TServer extends MinecraftSe |
191 | 191 | |
192 | 192 | LiteLoaderEventBroker.broker = this; |
193 | 193 | } |
194 | + | |
195 | + @SuppressWarnings("unchecked") | |
196 | + public static <TClient, TServer extends MinecraftServer> LiteLoaderEventBroker<TClient, TServer> getCommonBroker() | |
197 | + { | |
198 | + return (LiteLoaderEventBroker<TClient, TServer>)LiteLoaderEventBroker.broker; | |
199 | + } | |
194 | 200 | |
195 | 201 | /** |
196 | 202 | * @param mods | ... | ... |
src/main/java/com/mumfrey/liteloader/core/Proxy.java deleted
100644 → 0
1 | -/* | |
2 | - * This file is part of LiteLoader. | |
3 | - * Copyright (C) 2012-16 Adam Mummery-Smith | |
4 | - * All Rights Reserved. | |
5 | - */ | |
6 | -package com.mumfrey.liteloader.core; | |
7 | - | |
8 | -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | |
9 | -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; | |
10 | - | |
11 | -import com.mojang.authlib.GameProfile; | |
12 | -import com.mumfrey.liteloader.core.LiteLoaderEventBroker.InteractType; | |
13 | - | |
14 | -import net.minecraft.entity.player.EntityPlayer; | |
15 | -import net.minecraft.entity.player.EntityPlayerMP; | |
16 | -import net.minecraft.item.ItemStack; | |
17 | -import net.minecraft.network.NetHandlerPlayServer; | |
18 | -import net.minecraft.network.NetworkManager; | |
19 | -import net.minecraft.network.play.client.CPacketAnimation; | |
20 | -import net.minecraft.network.play.client.CPacketPlayer; | |
21 | -import net.minecraft.network.play.client.CPacketPlayerDigging; | |
22 | -import net.minecraft.network.play.client.CPacketPlayerDigging.Action; | |
23 | -import net.minecraft.network.play.client.CPacketPlayerTryUseItem; | |
24 | -import net.minecraft.server.MinecraftServer; | |
25 | -import net.minecraft.server.management.PlayerInteractionManager; | |
26 | -import net.minecraft.server.management.PlayerList; | |
27 | -import net.minecraft.util.EnumActionResult; | |
28 | -import net.minecraft.util.EnumFacing; | |
29 | -import net.minecraft.util.EnumHand; | |
30 | -import net.minecraft.util.math.BlockPos; | |
31 | -import net.minecraft.world.World; | |
32 | -import net.minecraft.world.WorldServer; | |
33 | - | |
34 | -public abstract class Proxy | |
35 | -{ | |
36 | - private static LiteLoaderEventBroker<?, ?> broker; | |
37 | - | |
38 | - protected Proxy() {} | |
39 | - | |
40 | - protected static void onStartupComplete() | |
41 | - { | |
42 | - Proxy.broker = LiteLoaderEventBroker.broker; | |
43 | - | |
44 | - if (Proxy.broker == null) | |
45 | - { | |
46 | - throw new RuntimeException("LiteLoader failed to start up properly." | |
47 | - + " The game is in an unstable state and must shut down now. Check the developer log for startup errors"); | |
48 | - } | |
49 | - } | |
50 | - | |
51 | - public static void onInitializePlayerConnection(PlayerList source, NetworkManager netManager, EntityPlayerMP player) | |
52 | - { | |
53 | - Proxy.broker.onInitializePlayerConnection(source, netManager, player); | |
54 | - } | |
55 | - | |
56 | - public static void onPlayerLogin(PlayerList source, EntityPlayerMP player) | |
57 | - { | |
58 | - Proxy.broker.onPlayerLogin(source, player); | |
59 | - } | |
60 | - | |
61 | - public static void onPlayerLogout(PlayerList source, EntityPlayerMP player) | |
62 | - { | |
63 | - Proxy.broker.onPlayerLogout(source, player); | |
64 | - } | |
65 | - | |
66 | - public static void onSpawnPlayer(CallbackInfoReturnable<EntityPlayerMP> cir, PlayerList source, GameProfile profile) | |
67 | - { | |
68 | - Proxy.broker.onSpawnPlayer(source, cir.getReturnValue(), profile); | |
69 | - } | |
70 | - | |
71 | - public static void onRespawnPlayer(CallbackInfoReturnable<EntityPlayerMP> cir, PlayerList source, EntityPlayerMP oldPlayer, | |
72 | - int dimension, boolean won) | |
73 | - { | |
74 | - Proxy.broker.onRespawnPlayer(source, cir.getReturnValue(), oldPlayer, dimension, won); | |
75 | - } | |
76 | - | |
77 | - public static void onServerTick(MinecraftServer mcServer) | |
78 | - { | |
79 | - Proxy.broker.onServerTick(mcServer); | |
80 | - } | |
81 | - | |
82 | - public static void onPlaceBlock(CallbackInfo ci, NetHandlerPlayServer netHandler, CPacketPlayerTryUseItem packet) | |
83 | - { | |
84 | - // Potentially not needed any more | |
85 | -// if (!Proxy.broker.onPlaceBlock(netHandler, netHandler.playerEntity, packet.getPosition(), | |
86 | -// EnumFacing.getFront(packet.getPlacedBlockDirection()))) | |
87 | -// { | |
88 | -// ci.cancel(); | |
89 | -// } | |
90 | - } | |
91 | - | |
92 | - public static void onClickedAir(CallbackInfo ci, NetHandlerPlayServer netHandler, CPacketAnimation packet) | |
93 | - { | |
94 | - if (!Proxy.broker.onClickedAir(InteractType.LEFT_CLICK, netHandler.playerEntity, packet.getHand())) | |
95 | - { | |
96 | - ci.cancel(); | |
97 | - } | |
98 | - } | |
99 | - | |
100 | - public static void onPlayerDigging(CallbackInfo ci, NetHandlerPlayServer netHandler, CPacketPlayerDigging packet) | |
101 | - { | |
102 | - Action action = packet.getAction(); | |
103 | - EntityPlayerMP player = netHandler.playerEntity; | |
104 | - if (action == Action.START_DESTROY_BLOCK) | |
105 | - { | |
106 | - if (!Proxy.broker.onPlayerDigging(InteractType.DIG_BLOCK_MAYBE, player, netHandler, packet.getPosition())) | |
107 | - { | |
108 | - ci.cancel(); | |
109 | - } | |
110 | - } | |
111 | - else if (action == Action.ABORT_DESTROY_BLOCK || action == Action.STOP_DESTROY_BLOCK) | |
112 | - { | |
113 | - Proxy.broker.onPlayerDigging(InteractType.DIG_BLOCK_END, player, netHandler, packet.getPosition()); | |
114 | - } | |
115 | - else if (action == Action.SWAP_HELD_ITEMS) | |
116 | - { | |
117 | - if (!Proxy.broker.onPlayerSwapItems(player)) | |
118 | - { | |
119 | - ci.cancel(); | |
120 | - } | |
121 | - } | |
122 | - } | |
123 | - | |
124 | - public static void onRightClickBlock(CallbackInfoReturnable<EnumActionResult> ci, EntityPlayer player, World world, ItemStack stack, | |
125 | - EnumHand hand, BlockPos pos, EnumFacing side, float offsetX, float offsetY, float offsetZ) | |
126 | - { | |
127 | - if (!(player instanceof EntityPlayerMP)) | |
128 | - { | |
129 | - return; | |
130 | - } | |
131 | - | |
132 | - if (!Proxy.broker.onUseItem((EntityPlayerMP)player, hand, stack, pos, side)) | |
133 | - { | |
134 | - ci.setReturnValue(EnumActionResult.FAIL); | |
135 | - } | |
136 | - } | |
137 | - | |
138 | - public static void postRightClickBlock(CallbackInfoReturnable<EnumActionResult> cir, EntityPlayer player, World world, ItemStack stack, | |
139 | - EnumHand hand, BlockPos pos, EnumFacing side, float offsetX, float offsetY, float offsetZ) | |
140 | - { | |
141 | - if (!(player instanceof EntityPlayerMP)) | |
142 | - { | |
143 | - return; | |
144 | - } | |
145 | - | |
146 | - System.err.printf("@@ postRightClickBlock: %s\n", cir.getReturnValue()); | |
147 | - } | |
148 | - | |
149 | - public static void onRightClick(CallbackInfoReturnable<EnumActionResult> cir, EntityPlayer player, World worldIn, ItemStack stack, EnumHand hand) | |
150 | - { | |
151 | - if (!(player instanceof EntityPlayerMP)) | |
152 | - { | |
153 | - return; | |
154 | - } | |
155 | - | |
156 | - if (!Proxy.broker.onClickedAir(InteractType.RIGHT_CLICK, (EntityPlayerMP)player, hand)) | |
157 | - { | |
158 | - cir.setReturnValue(EnumActionResult.FAIL); | |
159 | - } | |
160 | - } | |
161 | - | |
162 | - public static void onBlockClicked(CallbackInfo ci, PlayerInteractionManager manager, BlockPos pos, EnumFacing side) | |
163 | - { | |
164 | - if (!Proxy.broker.onBlockClicked(pos, side, manager)) | |
165 | - { | |
166 | - ci.cancel(); | |
167 | - } | |
168 | - } | |
169 | - | |
170 | - public static void onPlayerMoved(CallbackInfo ci, NetHandlerPlayServer netHandler, CPacketPlayer packet, WorldServer world, double oldPosX, | |
171 | - double oldPosY, double oldPosZ) | |
172 | - { | |
173 | - if (!Proxy.broker.onPlayerMove(netHandler, packet, netHandler.playerEntity, world)) | |
174 | - { | |
175 | - ci.cancel(); | |
176 | - } | |
177 | - } | |
178 | - | |
179 | - public static void onPlayerMoved(CallbackInfo ci, NetHandlerPlayServer netHandler, CPacketPlayer packet, WorldServer world) | |
180 | - { | |
181 | - if (!Proxy.broker.onPlayerMove(netHandler, packet, netHandler.playerEntity, world)) | |
182 | - { | |
183 | - ci.cancel(); | |
184 | - } | |
185 | - } | |
186 | -} |
src/main/java/com/mumfrey/liteloader/crashreport/CrashSectionLaunchWrapper.java