forked from SteamWar/SteamWar
Merge pull request '[fightsystem]: Fix broken kit system' (#322) from bugfix/fightsystem-broken-kits into main
Reviewed-on: SteamWar/SteamWar#322 Reviewed-by: Chaoscaot <max@chaoscaot.de>
This commit is contained in:
+1
-5
@@ -24,10 +24,6 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
public class FlatteningWrapper21 extends FlatteningWrapper14 {
|
public class FlatteningWrapper21 extends FlatteningWrapper14 {
|
||||||
@Override
|
@Override
|
||||||
public boolean hasAttributeModifier(ItemStack stack) {
|
public boolean hasAttributeModifier(ItemStack stack) {
|
||||||
if (!stack.getDataTypes().isEmpty()) {
|
return stack.hasItemMeta() && stack.getItemMeta() != null && stack.getItemMeta().hasAttributeModifiers();
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.hasAttributeModifier(stack);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,27 @@ public class ReflectionWrapper21 implements ReflectionWrapper {
|
|||||||
FORBIDDEN_TYPES.add(DataComponentTypes.BLOCKS_ATTACKS);
|
FORBIDDEN_TYPES.add(DataComponentTypes.BLOCKS_ATTACKS);
|
||||||
FORBIDDEN_TYPES.add(DataComponentTypes.BUNDLE_CONTENTS);
|
FORBIDDEN_TYPES.add(DataComponentTypes.BUNDLE_CONTENTS);
|
||||||
FORBIDDEN_TYPES.add(DataComponentTypes.CUSTOM_MODEL_DATA);
|
FORBIDDEN_TYPES.add(DataComponentTypes.CUSTOM_MODEL_DATA);
|
||||||
|
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.ATTRIBUTE_MODIFIERS);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.TOOL);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.WEAPON);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.FOOD);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.CONSUMABLE);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.POTION_CONTENTS);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.STORED_ENCHANTMENTS);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.CAN_BREAK);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.CAN_PLACE_ON);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.MAX_DAMAGE);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.USE_REMAINDER);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.USE_COOLDOWN);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.SUSPICIOUS_STEW_EFFECTS);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.CHARGED_PROJECTILES);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.INTANGIBLE_PROJECTILE);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.FIREWORKS);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.FIREWORK_EXPLOSION);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.EQUIPPABLE);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.REPAIR_COST);
|
||||||
|
FORBIDDEN_TYPES.add(DataComponentTypes.ENCHANTABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+9
-24
@@ -35,10 +35,7 @@ import org.bukkit.entity.HumanEntity;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.inventory.InventoryAction;
|
import org.bukkit.event.inventory.*;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
|
||||||
import org.bukkit.event.inventory.InventoryOpenEvent;
|
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
import org.bukkit.event.player.PlayerMoveEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
@@ -81,25 +78,8 @@ public class PersonalKitCreator implements Listener {
|
|||||||
if(!openKitCreators.containsKey(e.getWhoClicked()))
|
if(!openKitCreators.containsKey(e.getWhoClicked()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Player player = (Player) e.getWhoClicked();
|
|
||||||
//Deny bad items
|
|
||||||
if(Kit.isBadItem(e.getCursor()))
|
if(Kit.isBadItem(e.getCursor()))
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
|
|
||||||
/* Should the inventory reset? */
|
|
||||||
if(e.getAction() != InventoryAction.PLACE_ALL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
ItemStack[] items = e.getWhoClicked().getInventory().getContents();
|
|
||||||
for(int i = 0; i < items.length; i++){
|
|
||||||
ItemStack stack = items[i];
|
|
||||||
if(stack != null && i != e.getSlot())
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
FightPlayer fightPlayer = Fight.getFightPlayer(player);
|
|
||||||
assert fightPlayer != null;
|
|
||||||
Bukkit.getScheduler().runTaskLater(FightSystem.getPlugin(), () -> fightPlayer.getKit().loadToPlayer(player), 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@@ -117,7 +97,10 @@ public class PersonalKitCreator implements Listener {
|
|||||||
if(backup == null)
|
if(backup == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
backup.close();
|
InventoryType type = e.getInventory().getType();
|
||||||
|
if(type != InventoryType.PLAYER && type != InventoryType.CREATIVE) {
|
||||||
|
backup.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@@ -126,7 +109,7 @@ public class PersonalKitCreator implements Listener {
|
|||||||
if(backup == null)
|
if(backup == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
backup.close();
|
Bukkit.getScheduler().runTaskLater(FightSystem.getPlugin(), backup::close, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@@ -151,9 +134,11 @@ public class PersonalKitCreator implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void close(){
|
private void close(){
|
||||||
openKitCreators.remove(player);
|
|
||||||
Kit kit1 = new Kit(kit.getName(), player);
|
Kit kit1 = new Kit(kit.getName(), player);
|
||||||
kit1.removeBadItems();
|
kit1.removeBadItems();
|
||||||
|
|
||||||
|
|
||||||
|
openKitCreators.remove(player);
|
||||||
kit1.toPersonalKit(kit);
|
kit1.toPersonalKit(kit);
|
||||||
backup.loadToPlayer(player);
|
backup.loadToPlayer(player);
|
||||||
player.setGameMode(GameMode.SURVIVAL);
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
|
|||||||
Reference in New Issue
Block a user