Package com.comphenix.protocol.reflect

Examples of com.comphenix.protocol.reflect.VolatileField


                    "NetServerHandler", MinecraftReflection.getNetServerHandlerClass());
        proxyServerField = getProxyField(notchEntity, serverHandlerField);
      }
     
      // Yo dawg
      serverHandlerRef = new VolatileField(serverHandlerField, notchEntity);
      serverHandler = serverHandlerRef.getValue();

      // Next, get the network manager
      if (networkManagerField == null)
        networkManagerField = FuzzyReflection.fromObject(serverHandler).getFieldByType(
View Full Code Here


      initializeNetworkManager(netLoginNetworkField, netLoginHandler);
    }
  }
 
  private void initializeNetworkManager(Field reference, Object container) {
    networkManagerRef = new VolatileField(reference, container);
    networkManager = networkManagerRef.getValue();
   
    // No, don't do it
    if (networkManager instanceof Factory) {
      return;
View Full Code Here

      @SuppressWarnings("rawtypes")
      StructureModifier<List> list = networkModifier.withType(List.class);

      // Subclass both send queues
      for (Field field : list.getFields()) {
        VolatileField overwriter = new VolatileField(field, networkManager, true);
       
        @SuppressWarnings("unchecked")
        List<Object> minecraftList = (List<Object>) overwriter.getOldValue();
       
        synchronized(syncObject) {
          // The list we'll be inserting
          List<Object> hackedList = new InjectedArrayList(this, ignoredPackets);
         
          // Add every previously stored packet
          for (Object packet : minecraftList) {
            hackedList.add(packet);
          }
         
          // Don' keep stale packets around
          minecraftList.clear();
          overwriter.setValue(Collections.synchronizedList(hackedList));
        }
       
        overridenLists.add(overwriter);
      }
    }
View Full Code Here

    if (!tryInjectManager()) {
      Class<?> serverHandlerClass = MinecraftReflection.getNetServerHandlerClass();
     
      // Try to override the proxied object
      if (proxyServerField != null) {
        serverHandlerRef = new VolatileField(proxyServerField, serverHandler, true);
        serverHandler = serverHandlerRef.getValue();
       
        if (serverHandler == null)
          throw new RuntimeException("Cannot hook player: Inner proxy object is NULL.");
        else
View Full Code Here

    }
  }
 
  @SuppressWarnings("unchecked")
  private void injectIntoList(Object instance, Field field) {
    VolatileField listFieldRef = new VolatileField(field, instance, true);
    List<Object> list = (List<Object>) listFieldRef.getValue();

    // Careful not to inject twice
    if (list instanceof ReplacedArrayList) {
      replacedLists.add((ReplacedArrayList<Object>) list);
    } else {
      ReplacedArrayList<Object> injectedList = createReplacement(list);
     
      replacedLists.add(injectedList);
      listFieldRef.setValue(injectedList);
      listFields.add(listFieldRef);
    }
  }
View Full Code Here

    private List<VolatileField> getBootstrapFields(Object serverConnection) {
      List<VolatileField> result = Lists.newArrayList();
     
      // Find and (possibly) proxy every list
      for (Field field : FuzzyReflection.fromObject(serverConnection, true).getFieldListByType(List.class)) {
        VolatileField volatileField = new VolatileField(field, serverConnection, true).toSynchronized();
       
        @SuppressWarnings("unchecked")
      List<Object> list = (List<Object>) volatileField.getValue();
       
        if (list.size() == 0 || list.get(0) instanceof ChannelFuture) {
          result.add(volatileField);
        }
      }
View Full Code Here

    this.channelListener = Preconditions.checkNotNull(channelListener, "channelListener cannot be NULL");
    this.factory = Preconditions.checkNotNull(factory, "factory cannot be NULL");
    this.processor = new NetworkProcessor(ProtocolLibrary.getErrorReporter());
   
    // Get the channel field
    this.channelField = new VolatileField(
      FuzzyReflection.fromObject(networkManager, true).
        getFieldByType("channel", Channel.class),
      networkManager, true);
  }
View Full Code Here

TOP

Related Classes of com.comphenix.protocol.reflect.VolatileField

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.