mirror of
https://github.com/dmulloy2/ProtocolLib.git
synced 2024-08-19 03:52:51 +02:00
Make async packets less scary
This commit is contained in:
parent
923f4f4c4a
commit
37123c0aa1
|
@ -404,7 +404,6 @@ public class AsyncMarker implements Serializable, Comparable<AsyncMarker> {
|
||||||
* @return TRUE if it does, FALSE otherwise.
|
* @return TRUE if it does, FALSE otherwise.
|
||||||
*/
|
*/
|
||||||
public boolean isMinecraftAsync(PacketEvent event) throws FieldAccessException {
|
public boolean isMinecraftAsync(PacketEvent event) throws FieldAccessException {
|
||||||
|
|
||||||
if (isMinecraftAsync == null && !alwaysSync) {
|
if (isMinecraftAsync == null && !alwaysSync) {
|
||||||
try {
|
try {
|
||||||
isMinecraftAsync = FuzzyReflection.fromClass(MinecraftReflection.getPacketClass()).getMethodByName("a_.*");
|
isMinecraftAsync = FuzzyReflection.fromClass(MinecraftReflection.getPacketClass()).getMethodByName("a_.*");
|
||||||
|
@ -419,7 +418,7 @@ public class AsyncMarker implements Serializable, Comparable<AsyncMarker> {
|
||||||
} else if (methods.size() == 1) {
|
} else if (methods.size() == 1) {
|
||||||
// We're in 1.2.5
|
// We're in 1.2.5
|
||||||
alwaysSync = true;
|
alwaysSync = true;
|
||||||
} else if (MinecraftVersion.getCurrentVersion().equals(MinecraftVersion.BOUNTIFUL_UPDATE)) {
|
} else if (MinecraftVersion.getCurrentVersion().isAtLeast(MinecraftVersion.BOUNTIFUL_UPDATE)) {
|
||||||
// The centralized async marker was removed in 1.8
|
// The centralized async marker was removed in 1.8
|
||||||
// Incoming chat packets can be async
|
// Incoming chat packets can be async
|
||||||
if (event.getPacketType() == PacketType.Play.Client.CHAT) {
|
if (event.getPacketType() == PacketType.Play.Client.CHAT) {
|
||||||
|
@ -436,7 +435,8 @@ public class AsyncMarker implements Serializable, Comparable<AsyncMarker> {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ProtocolLibrary.log(Level.WARNING, "Cannot determine asynchronous state of packets!");
|
ProtocolLibrary.log(Level.INFO, "Could not determine asynchronous state of packets.");
|
||||||
|
ProtocolLibrary.log(Level.INFO, "This can probably be ignored.");
|
||||||
alwaysSync = true;
|
alwaysSync = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ import com.google.common.collect.Lists;
|
||||||
*
|
*
|
||||||
* @author Kristian
|
* @author Kristian
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("unused") // Java 8 compat
|
||||||
public abstract class MethodInfo implements GenericDeclaration, Member {
|
public abstract class MethodInfo implements GenericDeclaration, Member {
|
||||||
/**
|
/**
|
||||||
* Wraps a method as a MethodInfo object.
|
* Wraps a method as a MethodInfo object.
|
||||||
|
@ -222,7 +223,7 @@ public abstract class MethodInfo implements GenericDeclaration, Member {
|
||||||
public abstract String toGenericString();
|
public abstract String toGenericString();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an array of Class objects that represent the types of the exceptions declared to be thrown by the
|
* Returns an array of Class objects that represent the types of the exceptions declared to be thrown by the
|
||||||
* underlying method or constructor represented by this MethodInfo object.
|
* underlying method or constructor represented by this MethodInfo object.
|
||||||
* @return The exception types declared as being thrown by the method or constructor this object represents.
|
* @return The exception types declared as being thrown by the method or constructor this object represents.
|
||||||
* @see Method#getExceptionTypes()
|
* @see Method#getExceptionTypes()
|
||||||
|
@ -231,8 +232,8 @@ public abstract class MethodInfo implements GenericDeclaration, Member {
|
||||||
public abstract Class<?>[] getExceptionTypes();
|
public abstract Class<?>[] getExceptionTypes();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a Class object that represents the formal return type of the method or constructor
|
* Returns a Class object that represents the formal return type of the method or constructor
|
||||||
* represented by this MethodInfo object.
|
* represented by this MethodInfo object.
|
||||||
* <p>
|
* <p>
|
||||||
* This is always {@link Void} for constructors.
|
* This is always {@link Void} for constructors.
|
||||||
* @return The return value, or Void if a constructor.
|
* @return The return value, or Void if a constructor.
|
||||||
|
@ -241,10 +242,10 @@ public abstract class MethodInfo implements GenericDeclaration, Member {
|
||||||
public abstract Class<?> getReturnType();
|
public abstract Class<?> getReturnType();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an array of Class objects that represent the formal parameter types, in declaration order,
|
* Returns an array of Class objects that represent the formal parameter types, in declaration order,
|
||||||
* of the method or constructor represented by this MethodInfo object.
|
* of the method or constructor represented by this MethodInfo object.
|
||||||
* @return The parameter types for the method or constructor this object represents.
|
* @return The parameter types for the method or constructor this object represents.
|
||||||
* @see Method#getParameterTypes()
|
* @see Method#getParameterTypes()
|
||||||
* @see Constructor#getParameterTypes()
|
* @see Constructor#getParameterTypes()
|
||||||
*/
|
*/
|
||||||
public abstract Class<?>[] getParameterTypes();
|
public abstract Class<?>[] getParameterTypes();
|
||||||
|
|
|
@ -255,6 +255,13 @@ public class MinecraftVersion implements Comparable<MinecraftVersion>, Serializa
|
||||||
compare(getSnapshot(), o.getSnapshot(), Ordering.natural().nullsFirst()).
|
compare(getSnapshot(), o.getSnapshot(), Ordering.natural().nullsFirst()).
|
||||||
result();
|
result();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isAtLeast(MinecraftVersion other) {
|
||||||
|
if (other == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return compareTo(other) >= 0;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user