Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-11-20 06:50:08 +01:00
Merge branch 'pr/987'
Dieser Commit ist enthalten in:
Commit
6457ff315f
@ -185,6 +185,11 @@ public class BukkitConfigAPI extends Config implements ViaVersionConfig {
|
|||||||
return getString("reload-disconnect-msg", "Server reload, please rejoin!");
|
return getString("reload-disconnect-msg", "Server reload, please rejoin!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isMinimizeCooldown() {
|
||||||
|
return getBoolean("minimize-cooldown", true);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public URL getDefaultConfigURL() {
|
public URL getDefaultConfigURL() {
|
||||||
return BukkitConfigAPI.class.getClassLoader().getResource("assets/viaversion/config.yml");
|
return BukkitConfigAPI.class.getClassLoader().getResource("assets/viaversion/config.yml");
|
||||||
|
@ -224,6 +224,11 @@ public class BungeeConfigAPI extends Config implements ViaVersionConfig {
|
|||||||
return getString("reload-disconnect-msg", "Server reload, please rejoin!");
|
return getString("reload-disconnect-msg", "Server reload, please rejoin!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isMinimizeCooldown() {
|
||||||
|
return getBoolean("minimize-cooldown", true);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* What is the interval for checking servers via ping
|
* What is the interval for checking servers via ping
|
||||||
* -1 for disabled
|
* -1 for disabled
|
||||||
|
17
common/src/main/java/us/myles/ViaVersion/api/Triple.java
Normale Datei
17
common/src/main/java/us/myles/ViaVersion/api/Triple.java
Normale Datei
@ -0,0 +1,17 @@
|
|||||||
|
package us.myles.ViaVersion.api;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class Triple<A, B, C> {
|
||||||
|
private A first;
|
||||||
|
private B second;
|
||||||
|
private C third;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Triple{" + first + ", " + second + ", " + third + '}';
|
||||||
|
}
|
||||||
|
}
|
@ -259,4 +259,11 @@ public interface ViaVersionConfig {
|
|||||||
* @return True if enabled
|
* @return True if enabled
|
||||||
*/
|
*/
|
||||||
boolean isDisable1_13AutoComplete();
|
boolean isDisable1_13AutoComplete();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tries to minimize cooldown animation.
|
||||||
|
*
|
||||||
|
* @return True if enabled
|
||||||
|
*/
|
||||||
|
boolean isMinimizeCooldown();
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
package us.myles.ViaVersion.protocols.protocol1_9to1_8.packets;
|
package us.myles.ViaVersion.protocols.protocol1_9to1_8.packets;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
|
import us.myles.ViaVersion.api.Pair;
|
||||||
|
import us.myles.ViaVersion.api.Triple;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
import us.myles.ViaVersion.api.minecraft.item.Item;
|
import us.myles.ViaVersion.api.minecraft.item.Item;
|
||||||
import us.myles.ViaVersion.api.minecraft.metadata.Metadata;
|
import us.myles.ViaVersion.api.minecraft.metadata.Metadata;
|
||||||
@ -17,7 +20,7 @@ import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
|
|||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.MetadataRewriter;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.MetadataRewriter;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.EntityTracker;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.EntityTracker;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
|
|
||||||
public class EntityPackets {
|
public class EntityPackets {
|
||||||
public static final ValueTransformer<Byte, Short> toNewShort = new ValueTransformer<Byte, Short>(Type.SHORT) {
|
public static final ValueTransformer<Byte, Short> toNewShort = new ValueTransformer<Byte, Short>(Type.SHORT) {
|
||||||
@ -269,9 +272,64 @@ public class EntityPackets {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
/* Packets which do not have any field remapping or handlers */
|
// Entity Properties Packet
|
||||||
|
protocol.registerOutgoing(State.PLAY, 0x20, 0x4B, new PacketRemapper() {
|
||||||
|
@Override
|
||||||
|
public void registerMap() {
|
||||||
|
map(Type.VAR_INT);
|
||||||
|
handler(new PacketHandler() {
|
||||||
|
@Override
|
||||||
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
|
if (!Via.getConfig().isMinimizeCooldown()) return;
|
||||||
|
if (wrapper.get(Type.VAR_INT, 0) != wrapper.user().get(EntityTracker.class).getEntityID()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int propertiesToRead = wrapper.read(Type.INT);
|
||||||
|
Map<String, Pair<Double, List<Triple<UUID, Double, Byte>>>> properties = new HashMap<>(propertiesToRead);
|
||||||
|
for (int i = 0; i < propertiesToRead; i++) {
|
||||||
|
String key = wrapper.read(Type.STRING);
|
||||||
|
Double value = wrapper.read(Type.DOUBLE);
|
||||||
|
int modifiersToRead = wrapper.read(Type.VAR_INT);
|
||||||
|
List<Triple<UUID, Double, Byte>> modifiers = new ArrayList<>(modifiersToRead);
|
||||||
|
for (int j = 0; j < modifiersToRead; j++) {
|
||||||
|
modifiers.add(
|
||||||
|
new Triple<>(
|
||||||
|
wrapper.read(Type.UUID),
|
||||||
|
wrapper.read(Type.DOUBLE), // Amount
|
||||||
|
wrapper.read(Type.BYTE) // Operation
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
properties.put(key, new Pair<>(value, modifiers));
|
||||||
|
}
|
||||||
|
|
||||||
protocol.registerOutgoing(State.PLAY, 0x20, 0x4B); // Entity Properties Packet
|
// == Why 15.9? ==
|
||||||
|
// Higher values hides the cooldown but it bugs visual animation on hand
|
||||||
|
// when removing item from hand with inventory gui
|
||||||
|
properties.put("generic.attackSpeed", new Pair<Double, List<Triple<UUID, Double, Byte>>>(15.9, ImmutableList.of( // Neutralize modifiers
|
||||||
|
new Triple<>(UUID.fromString("FA233E1C-4180-4865-B01B-BCCE9785ACA3"), 0.0, (byte) 0), // Tool and weapon modifier
|
||||||
|
new Triple<>(UUID.fromString("AF8B6E3F-3328-4C0A-AA36-5BA2BB9DBEF3"), 0.0, (byte) 2), // Dig speed
|
||||||
|
new Triple<>(UUID.fromString("55FCED67-E92A-486E-9800-B47F202C4386"), 0.0, (byte) 2) // Dig slow down
|
||||||
|
)));
|
||||||
|
|
||||||
|
wrapper.write(Type.INT, properties.size());
|
||||||
|
for (Map.Entry<String, Pair<Double, List<Triple<UUID, Double, Byte>>>> entry : properties.entrySet()) {
|
||||||
|
wrapper.write(Type.STRING, entry.getKey()); // Key
|
||||||
|
wrapper.write(Type.DOUBLE, entry.getValue().getKey()); // Value
|
||||||
|
wrapper.write(Type.VAR_INT, entry.getValue().getValue().size());
|
||||||
|
for (Triple<UUID, Double, Byte> modifier : entry.getValue().getValue()) {
|
||||||
|
wrapper.write(Type.UUID, modifier.getFirst());
|
||||||
|
wrapper.write(Type.DOUBLE, modifier.getSecond()); // Amount
|
||||||
|
wrapper.write(Type.BYTE, modifier.getThird()); // Operation
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/* Packets which do not have any field remapping or handlers */
|
||||||
|
|
||||||
protocol.registerOutgoing(State.PLAY, 0x1A, 0x1B); // Entity Status Packet
|
protocol.registerOutgoing(State.PLAY, 0x1A, 0x1B); // Entity Status Packet
|
||||||
protocol.registerOutgoing(State.PLAY, 0x16, 0x27); // Entity Look Packet
|
protocol.registerOutgoing(State.PLAY, 0x16, 0x27); // Entity Look Packet
|
||||||
|
@ -127,4 +127,6 @@ replace-pistons: false
|
|||||||
# What id should we replace with, default is air. (careful of players getting stuck standing on them)
|
# What id should we replace with, default is air. (careful of players getting stuck standing on them)
|
||||||
replacement-piston-id: 0
|
replacement-piston-id: 0
|
||||||
# Force the string -> json transform
|
# Force the string -> json transform
|
||||||
force-json-transform: false
|
force-json-transform: false
|
||||||
|
# Minimize the cooldown animation in 1.8 servers
|
||||||
|
minimize-cooldown: true
|
@ -206,6 +206,11 @@ public class SpongeConfigAPI extends Config implements ViaVersionConfig {
|
|||||||
return getString("reload-disconnect-msg", "Server reload, please rejoin!");
|
return getString("reload-disconnect-msg", "Server reload, please rejoin!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isMinimizeCooldown() {
|
||||||
|
return getBoolean("minimize-cooldown", true);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean is1_13TeamColourFix() {
|
public boolean is1_13TeamColourFix() {
|
||||||
return getBoolean("team-colour-fix", true);
|
return getBoolean("team-colour-fix", true);
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren