Commit 6af93d68 authored by Ashijin's avatar Ashijin
Browse files

Fixed bug where gestures could leave you unable to swap your hotbar

parent 659fef75
...@@ -11,6 +11,8 @@ import io.lumine.cosmetics.managers.MCCosmeticsManager; ...@@ -11,6 +11,8 @@ import io.lumine.cosmetics.managers.MCCosmeticsManager;
import io.lumine.cosmetics.nms.cosmetic.VolatileEquipmentHelper; import io.lumine.cosmetics.nms.cosmetic.VolatileEquipmentHelper;
import io.lumine.utils.Events; import io.lumine.utils.Events;
import io.lumine.utils.files.Files; import io.lumine.utils.files.Files;
import lombok.Getter;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
...@@ -21,7 +23,7 @@ import java.util.Map; ...@@ -21,7 +23,7 @@ import java.util.Map;
public class GestureManager extends MCCosmeticsManager<Gesture> { public class GestureManager extends MCCosmeticsManager<Gesture> {
private final Map<Player, CustomPlayerModel> ticking = Maps.newConcurrentMap(); @Getter private final Map<Player, CustomPlayerModel> ticking = Maps.newConcurrentMap();
public GestureManager(MCCosmeticsPlugin plugin) { public GestureManager(MCCosmeticsPlugin plugin) {
super(plugin, Gesture.class); super(plugin, Gesture.class);
......
...@@ -142,20 +142,12 @@ public class VolatileGestureImpl implements VolatileEquipmentHelper { ...@@ -142,20 +142,12 @@ public class VolatileGestureImpl implements VolatileEquipmentHelper {
@Override @Override
public boolean read(Player sender, Object packet, boolean isCanceled) { public boolean read(Player sender, Object packet, boolean isCanceled) {
final var profile = MCCosmeticsPlugin.inst().getProfiles().getProfile(sender); if(!plugin.getGestureManager().getTicking().containsKey(sender)) {
if(profile == null) return true;
return true; }
final var maybeEquipped = profile.getEquipped(Gesture.class);
if(maybeEquipped.isEmpty()) {
return true;
}
var opt = maybeEquipped.get().getCosmetic();
if(!(opt instanceof Gesture gesture))
return true;
if(packet instanceof ServerboundPlayerInputPacket inputPacket) { if(packet instanceof ServerboundPlayerInputPacket inputPacket) {
final var manager = (GestureManager) gesture.getManager(); final var manager = (GestureManager) plugin.getGestureManager();
if(inputPacket.isShiftKeyDown()) if(inputPacket.isShiftKeyDown())
manager.quit(sender, QuitMethod.SNEAK); manager.quit(sender, QuitMethod.SNEAK);
if(inputPacket.isJumping()) if(inputPacket.isJumping())
......
...@@ -142,20 +142,12 @@ public class VolatileGestureImpl implements VolatileEquipmentHelper { ...@@ -142,20 +142,12 @@ public class VolatileGestureImpl implements VolatileEquipmentHelper {
@Override @Override
public boolean read(Player sender, Object packet, boolean isCanceled) { public boolean read(Player sender, Object packet, boolean isCanceled) {
final var profile = MCCosmeticsPlugin.inst().getProfiles().getProfile(sender); if(!plugin.getGestureManager().getTicking().containsKey(sender)) {
if(profile == null) return true;
return true; }
final var maybeEquipped = profile.getEquipped(Gesture.class);
if(maybeEquipped.isEmpty()) {
return true;
}
var opt = maybeEquipped.get().getCosmetic();
if(!(opt instanceof Gesture gesture))
return true;
if(packet instanceof ServerboundPlayerInputPacket inputPacket) { if(packet instanceof ServerboundPlayerInputPacket inputPacket) {
final var manager = (GestureManager) gesture.getManager(); final var manager = (GestureManager) plugin.getGestureManager();
if(inputPacket.isShiftKeyDown()) if(inputPacket.isShiftKeyDown())
manager.quit(sender, QuitMethod.SNEAK); manager.quit(sender, QuitMethod.SNEAK);
if(inputPacket.isJumping()) if(inputPacket.isJumping())
......
...@@ -142,20 +142,12 @@ public class VolatileGestureImpl implements VolatileEquipmentHelper { ...@@ -142,20 +142,12 @@ public class VolatileGestureImpl implements VolatileEquipmentHelper {
@Override @Override
public boolean read(Player sender, Object packet, boolean isCanceled) { public boolean read(Player sender, Object packet, boolean isCanceled) {
final var profile = MCCosmeticsPlugin.inst().getProfiles().getProfile(sender); if(!plugin.getGestureManager().getTicking().containsKey(sender)) {
if(profile == null) return true;
return true; }
final var maybeEquipped = profile.getEquipped(Gesture.class);
if(maybeEquipped.isEmpty()) {
return true;
}
var opt = maybeEquipped.get().getCosmetic();
if(!(opt instanceof Gesture gesture))
return true;
if(packet instanceof ServerboundPlayerInputPacket inputPacket) { if(packet instanceof ServerboundPlayerInputPacket inputPacket) {
final var manager = (GestureManager) gesture.getManager(); final var manager = (GestureManager) plugin.getGestureManager();
if(inputPacket.isShiftKeyDown()) if(inputPacket.isShiftKeyDown())
manager.quit(sender, QuitMethod.SNEAK); manager.quit(sender, QuitMethod.SNEAK);
if(inputPacket.isJumping()) if(inputPacket.isJumping())
......
...@@ -142,20 +142,12 @@ public class VolatileGestureImpl implements VolatileEquipmentHelper { ...@@ -142,20 +142,12 @@ public class VolatileGestureImpl implements VolatileEquipmentHelper {
@Override @Override
public boolean read(Player sender, Object packet, boolean isCanceled) { public boolean read(Player sender, Object packet, boolean isCanceled) {
final var profile = MCCosmeticsPlugin.inst().getProfiles().getProfile(sender); if(!plugin.getGestureManager().getTicking().containsKey(sender)) {
if(profile == null) return true;
return true; }
final var maybeEquipped = profile.getEquipped(Gesture.class);
if(maybeEquipped.isEmpty()) {
return true;
}
var opt = maybeEquipped.get().getCosmetic();
if(!(opt instanceof Gesture gesture))
return true;
if(packet instanceof ServerboundPlayerInputPacket inputPacket) { if(packet instanceof ServerboundPlayerInputPacket inputPacket) {
final var manager = (GestureManager) gesture.getManager(); final var manager = (GestureManager) plugin.getGestureManager();
if(inputPacket.isShiftKeyDown()) if(inputPacket.isShiftKeyDown())
manager.quit(sender, QuitMethod.SNEAK); manager.quit(sender, QuitMethod.SNEAK);
if(inputPacket.isJumping()) if(inputPacket.isJumping())
......
...@@ -142,20 +142,12 @@ public class VolatileGestureImpl implements VolatileEquipmentHelper { ...@@ -142,20 +142,12 @@ public class VolatileGestureImpl implements VolatileEquipmentHelper {
@Override @Override
public boolean read(Player sender, Object packet, boolean isCanceled) { public boolean read(Player sender, Object packet, boolean isCanceled) {
final var profile = MCCosmeticsPlugin.inst().getProfiles().getProfile(sender); if(!plugin.getGestureManager().getTicking().containsKey(sender)) {
if(profile == null)
return true;
final var maybeEquipped = profile.getEquipped(Gesture.class);
if(maybeEquipped.isEmpty()) {
return true; return true;
} }
var opt = maybeEquipped.get().getCosmetic();
if(!(opt instanceof Gesture gesture))
return true;
if(packet instanceof ServerboundPlayerInputPacket inputPacket) { if(packet instanceof ServerboundPlayerInputPacket inputPacket) {
final var manager = (GestureManager) gesture.getManager(); final var manager = (GestureManager) plugin.getGestureManager();
if(inputPacket.isShiftKeyDown()) if(inputPacket.isShiftKeyDown())
manager.quit(sender, QuitMethod.SNEAK); manager.quit(sender, QuitMethod.SNEAK);
if(inputPacket.isJumping()) if(inputPacket.isJumping())
......
...@@ -140,7 +140,7 @@ public class VolatileHatImpl implements VolatileEquipmentHelper { ...@@ -140,7 +140,7 @@ public class VolatileHatImpl implements VolatileEquipmentHelper {
} }
public void handleSpawn(Profile profile) { public void handleSpawn(Profile profile) {
final var maybeEquipped = profile.getEquipped(Hat.class); final var maybeEquipped = profile.getEquipped(Hat.class);
if(maybeEquipped.isEmpty()) { if(maybeEquipped.isEmpty()) {
return; return;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment