Archiviert
13
0

It's an injector container.

Dieser Commit ist enthalten in:
Kristian S. Stangeland 2013-02-27 01:10:21 +01:00
Ursprung c32d225ef3
Commit c7737ca96e
3 geänderte Dateien mit 10 neuen und 10 gelöschten Zeilen

Datei anzeigen

@ -110,8 +110,8 @@ public abstract class AbstractInputStreamLookup {
Player player = previous.getPlayer(); Player player = previous.getPlayer();
// Default implementation // Default implementation
if (player instanceof InjectContainer) { if (player instanceof InjectorContainer) {
InjectContainer container = (InjectContainer) player; InjectorContainer container = (InjectorContainer) player;
container.setInjector(current); container.setInjector(current);
} }
} }

Datei anzeigen

@ -6,7 +6,7 @@ package com.comphenix.protocol.injector.server;
* A necessary hack. * A necessary hack.
* @author Kristian * @author Kristian
*/ */
class InjectContainer { class InjectorContainer {
private volatile SocketInjector injector; private volatile SocketInjector injector;
public SocketInjector getInjector() { public SocketInjector getInjector() {

Datei anzeigen

@ -53,8 +53,8 @@ public class TemporaryPlayerFactory {
* @return The referenced player injector, or NULL if none can be found. * @return The referenced player injector, or NULL if none can be found.
*/ */
public static SocketInjector getInjectorFromPlayer(Player player) { public static SocketInjector getInjectorFromPlayer(Player player) {
if (player instanceof InjectContainer) { if (player instanceof InjectorContainer) {
return ((InjectContainer) player).getInjector(); return ((InjectorContainer) player).getInjector();
} }
return null; return null;
} }
@ -65,7 +65,7 @@ public class TemporaryPlayerFactory {
* @param injector - the injector to store. * @param injector - the injector to store.
*/ */
public static void setInjectorInPlayer(Player player, SocketInjector injector) { public static void setInjectorInPlayer(Player player, SocketInjector injector) {
((InjectContainer) player).setInjector(injector); ((InjectorContainer) player).setInjector(injector);
} }
/** /**
@ -96,7 +96,7 @@ public class TemporaryPlayerFactory {
public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
String methodName = method.getName(); String methodName = method.getName();
SocketInjector injector = ((InjectContainer) obj).getInjector(); SocketInjector injector = ((InjectorContainer) obj).getInjector();
if (injector == null) if (injector == null)
throw new IllegalStateException("Unable to find injector."); throw new IllegalStateException("Unable to find injector.");
@ -149,7 +149,7 @@ public class TemporaryPlayerFactory {
public int accept(Method method) { public int accept(Method method) {
// Do not override the object method or the superclass methods // Do not override the object method or the superclass methods
if (method.getDeclaringClass().equals(Object.class) || if (method.getDeclaringClass().equals(Object.class) ||
method.getDeclaringClass().equals(InjectContainer.class)) method.getDeclaringClass().equals(InjectorContainer.class))
return 0; return 0;
else else
return 1; return 1;
@ -159,7 +159,7 @@ public class TemporaryPlayerFactory {
// CGLib is amazing // CGLib is amazing
Enhancer ex = new Enhancer(); Enhancer ex = new Enhancer();
ex.setSuperclass(InjectContainer.class); ex.setSuperclass(InjectorContainer.class);
ex.setInterfaces(new Class[] { Player.class }); ex.setInterfaces(new Class[] { Player.class });
ex.setCallbacks(new Callback[] { NoOp.INSTANCE, implementation }); ex.setCallbacks(new Callback[] { NoOp.INSTANCE, implementation });
ex.setCallbackFilter(callbackFilter); ex.setCallbackFilter(callbackFilter);
@ -176,7 +176,7 @@ public class TemporaryPlayerFactory {
public Player createTemporaryPlayer(Server server, SocketInjector injector) { public Player createTemporaryPlayer(Server server, SocketInjector injector) {
Player temporary = createTemporaryPlayer(server); Player temporary = createTemporaryPlayer(server);
((InjectContainer) temporary).setInjector(injector); ((InjectorContainer) temporary).setInjector(injector);
return temporary; return temporary;
} }