mirror of
https://github.com/dmulloy2/ProtocolLib.git
synced 2024-11-07 03:10:33 +01:00
Make it possible to modify the player list in the ping packet.
This commit is contained in:
parent
a6f4aaa09a
commit
f41efdec60
@ -256,7 +256,7 @@ public class BukkitConverters {
|
|||||||
* @return An equivalent converter.
|
* @return An equivalent converter.
|
||||||
*/
|
*/
|
||||||
public static <T> EquivalentConverter<Iterable<? extends T>> getArrayConverter(
|
public static <T> EquivalentConverter<Iterable<? extends T>> getArrayConverter(
|
||||||
final Class<?> genericItemType, final EquivalentConverter<T> itemConverter) {
|
final Class<?> genericItemType, final EquivalentConverter<T> itemConverter) {
|
||||||
// Convert to and from the wrapper
|
// Convert to and from the wrapper
|
||||||
return new IgnoreNullConverter<Iterable<? extends T>>() {
|
return new IgnoreNullConverter<Iterable<? extends T>>() {
|
||||||
@Override
|
@Override
|
||||||
@ -279,7 +279,7 @@ public class BukkitConverters {
|
|||||||
@Override
|
@Override
|
||||||
protected Object getGenericValue(Class<?> genericType, Iterable<? extends T> specific) {
|
protected Object getGenericValue(Class<?> genericType, Iterable<? extends T> specific) {
|
||||||
List<T> list = Lists.newArrayList(specific);
|
List<T> list = Lists.newArrayList(specific);
|
||||||
Object[] output = (Object[]) Array.newInstance(genericType, list.size());
|
Object[] output = (Object[]) Array.newInstance(genericItemType, list.size());
|
||||||
|
|
||||||
// Convert each object
|
// Convert each object
|
||||||
for (int i = 0; i < output.length; i++) {
|
for (int i = 0; i < output.length; i++) {
|
||||||
|
@ -568,7 +568,7 @@ public class WrappedDataWatcher extends AbstractWrapper implements Iterable<Wrap
|
|||||||
VALUE_MAP_ACCESSOR = Accessors.getFieldAccessor(lookup, true);
|
VALUE_MAP_ACCESSOR = Accessors.getFieldAccessor(lookup, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Spigot workaround
|
// Spigot workaround (not necessary
|
||||||
initializeSpigot(fuzzy);
|
initializeSpigot(fuzzy);
|
||||||
|
|
||||||
// Initialize static type type
|
// Initialize static type type
|
||||||
@ -588,6 +588,7 @@ public class WrappedDataWatcher extends AbstractWrapper implements Iterable<Wrap
|
|||||||
initializeMethods(fuzzy);
|
initializeMethods(fuzzy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Remove, as this was fixed in build #1189 of Spigot
|
||||||
private static void initializeSpigot(FuzzyReflection fuzzy) {
|
private static void initializeSpigot(FuzzyReflection fuzzy) {
|
||||||
// See if the workaround is needed
|
// See if the workaround is needed
|
||||||
if (TYPE_MAP_ACCESSOR != null && VALUE_MAP_ACCESSOR != null)
|
if (TYPE_MAP_ACCESSOR != null && VALUE_MAP_ACCESSOR != null)
|
||||||
|
@ -46,7 +46,7 @@ public class WrappedServerPing extends AbstractWrapper {
|
|||||||
|
|
||||||
// For converting to the underlying array
|
// For converting to the underlying array
|
||||||
private static EquivalentConverter<Iterable<? extends WrappedGameProfile>> PROFILE_CONVERT =
|
private static EquivalentConverter<Iterable<? extends WrappedGameProfile>> PROFILE_CONVERT =
|
||||||
BukkitConverters.getArrayConverter(GameProfile[].class, BukkitConverters.getWrappedGameProfileConverter());
|
BukkitConverters.getArrayConverter(GameProfile.class, BukkitConverters.getWrappedGameProfileConverter());
|
||||||
|
|
||||||
// Server ping player sample fields
|
// Server ping player sample fields
|
||||||
private static Class<?> PLAYERS_CLASS = MinecraftReflection.getServerPingPlayerSampleClass();
|
private static Class<?> PLAYERS_CLASS = MinecraftReflection.getServerPingPlayerSampleClass();
|
||||||
|
Loading…
Reference in New Issue
Block a user