mirror of
https://github.com/ChestShop-authors/ChestShop-3.git
synced 2025-02-15 09:51:20 +01:00
Remove all usage of old MaterialData and other outdated code
This should make it more future-proof and possibly even work with 1.14 already.
This commit is contained in:
parent
6773f89221
commit
c538f4a3dc
@ -1,12 +1,10 @@
|
|||||||
package com.Acrobot.Breeze.Utils;
|
package com.Acrobot.Breeze.Utils;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.block.DoubleChest;
|
import org.bukkit.block.DoubleChest;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.block.data.Directional;
|
import org.bukkit.block.data.Directional;
|
||||||
import org.bukkit.block.data.Rotatable;
|
|
||||||
import org.bukkit.block.data.type.Sign;
|
import org.bukkit.block.data.type.Sign;
|
||||||
import org.bukkit.block.data.type.WallSign;
|
import org.bukkit.block.data.type.WallSign;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -24,8 +22,8 @@ public class BlockUtil {
|
|||||||
* @return Is this block a sign?
|
* @return Is this block a sign?
|
||||||
*/
|
*/
|
||||||
public static boolean isSign(Block block) {
|
public static boolean isSign(Block block) {
|
||||||
return block.getType() == Material.SIGN
|
BlockData data = block.getBlockData();
|
||||||
|| block.getType() == Material.WALL_SIGN;
|
return data instanceof Sign || data instanceof WallSign;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -4,7 +4,6 @@ import com.Acrobot.Breeze.Utils.BlockUtil;
|
|||||||
import com.Acrobot.ChestShop.ChestShop;
|
import com.Acrobot.ChestShop.ChestShop;
|
||||||
import com.Acrobot.ChestShop.Configuration.Properties;
|
import com.Acrobot.ChestShop.Configuration.Properties;
|
||||||
import com.Acrobot.ChestShop.Events.ShopDestroyedEvent;
|
import com.Acrobot.ChestShop.Events.ShopDestroyedEvent;
|
||||||
import com.Acrobot.ChestShop.Permission;
|
|
||||||
import com.Acrobot.ChestShop.Signs.ChestShopSign;
|
import com.Acrobot.ChestShop.Signs.ChestShopSign;
|
||||||
import com.Acrobot.ChestShop.UUIDs.NameManager;
|
import com.Acrobot.ChestShop.UUIDs.NameManager;
|
||||||
import com.Acrobot.ChestShop.Utils.uBlock;
|
import com.Acrobot.ChestShop.Utils.uBlock;
|
||||||
@ -20,8 +19,6 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.*;
|
import org.bukkit.event.block.*;
|
||||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||||
import org.bukkit.material.Directional;
|
|
||||||
import org.bukkit.material.PistonBaseMaterial;
|
|
||||||
import org.bukkit.metadata.FixedMetadataValue;
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -78,7 +75,7 @@ public class SignBreak implements Listener {
|
|||||||
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public static void onBlockPistonExtend(BlockPistonExtendEvent event) {
|
public static void onBlockPistonExtend(BlockPistonExtendEvent event) {
|
||||||
for (Block block : getExtendBlocks(event)) {
|
for (Block block : event.getBlocks()) {
|
||||||
if (!canBlockBeBroken(block, null)) {
|
if (!canBlockBeBroken(block, null)) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
@ -88,7 +85,7 @@ public class SignBreak implements Listener {
|
|||||||
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public static void onBlockPistonRetract(BlockPistonRetractEvent event) {
|
public static void onBlockPistonRetract(BlockPistonRetractEvent event) {
|
||||||
for (Block block : getRetractBlocks(event)) {
|
for (Block block : event.getBlocks()) {
|
||||||
if (!canBlockBeBroken(block, null)) {
|
if (!canBlockBeBroken(block, null)) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
@ -189,55 +186,4 @@ public class SignBreak implements Listener {
|
|||||||
return attachedSigns;
|
return attachedSigns;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Block> getRetractBlocks(BlockPistonRetractEvent event) {
|
|
||||||
try {
|
|
||||||
return event.getBlocks();
|
|
||||||
} catch (NoSuchMethodError outdated) { // backwards compatiblity
|
|
||||||
List<Block> blocks = new ArrayList<>();
|
|
||||||
Block block = getRetractLocationBlock(event);
|
|
||||||
if (block != null && !BlockUtil.isSign(block)) {
|
|
||||||
blocks.add(block);
|
|
||||||
}
|
|
||||||
return blocks;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Those are fixes for a very old CraftBukkit's piston bug, where piston appears not to be a piston.
|
|
||||||
private static BlockFace getPistonDirection(Block block) {
|
|
||||||
return block.getState().getData() instanceof PistonBaseMaterial ? ((Directional) block.getState().getData()).getFacing() : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Block getRetractLocationBlock(BlockPistonRetractEvent event) {
|
|
||||||
BlockFace pistonDirection = getPistonDirection(event.getBlock());
|
|
||||||
return pistonDirection != null ? event.getBlock().getRelative((pistonDirection), 2).getLocation().getBlock() : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static List<Block> getExtendBlocks(BlockPistonExtendEvent event) {
|
|
||||||
try {
|
|
||||||
return event.getBlocks();
|
|
||||||
} catch (NoSuchMethodError outdated) { // backwards compatiblity
|
|
||||||
BlockFace pistonDirection = getPistonDirection(event.getBlock());
|
|
||||||
|
|
||||||
if (pistonDirection == null) {
|
|
||||||
return new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
Block piston = event.getBlock();
|
|
||||||
List<Block> pushedBlocks = new ArrayList<>();
|
|
||||||
|
|
||||||
for (int currentBlock = 1; currentBlock < event.getLength() + 1; currentBlock++) {
|
|
||||||
Block block = piston.getRelative(pistonDirection, currentBlock);
|
|
||||||
Material blockType = block.getType();
|
|
||||||
|
|
||||||
if (blockType == Material.AIR) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
pushedBlocks.add(block);
|
|
||||||
}
|
|
||||||
|
|
||||||
return pushedBlocks;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,8 @@ import org.bukkit.block.Container;
|
|||||||
import org.bukkit.block.Sign;
|
import org.bukkit.block.Sign;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.block.data.type.Chest;
|
import org.bukkit.block.data.type.Chest;
|
||||||
|
import org.bukkit.block.data.type.WallSign;
|
||||||
import org.bukkit.inventory.InventoryHolder;
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
import org.bukkit.material.Attachable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Acrobot
|
* @author Acrobot
|
||||||
@ -46,8 +46,9 @@ public class uBlock {
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public static org.bukkit.block.Chest findConnectedChest(Sign sign) {
|
public static org.bukkit.block.Chest findConnectedChest(Sign sign) {
|
||||||
BlockFace signFace = null;
|
BlockFace signFace = null;
|
||||||
if (((org.bukkit.material.Sign) sign.getData()).isWallSign()) {
|
BlockData data = sign.getBlockData();
|
||||||
signFace = ((Attachable) sign.getData()).getAttachedFace();
|
if (data instanceof WallSign) {
|
||||||
|
signFace = ((WallSign) data).getFacing().getOppositeFace();
|
||||||
}
|
}
|
||||||
return findConnectedChest(sign.getBlock(), signFace);
|
return findConnectedChest(sign.getBlock(), signFace);
|
||||||
}
|
}
|
||||||
@ -59,9 +60,9 @@ public class uBlock {
|
|||||||
public static org.bukkit.block.Chest findConnectedChest(Block block) {
|
public static org.bukkit.block.Chest findConnectedChest(Block block) {
|
||||||
BlockFace signFace = null;
|
BlockFace signFace = null;
|
||||||
if (BlockUtil.isSign(block)) {
|
if (BlockUtil.isSign(block)) {
|
||||||
Sign sign = (Sign) block.getState();
|
BlockData data = block.getBlockData();
|
||||||
if (((org.bukkit.material.Sign) sign.getData()).isWallSign()) {
|
if (data instanceof WallSign) {
|
||||||
signFace = ((Attachable) sign.getData()).getAttachedFace();
|
signFace = ((WallSign) data).getFacing().getOppositeFace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return findConnectedChest(block, signFace);
|
return findConnectedChest(block, signFace);
|
||||||
@ -92,19 +93,18 @@ public class uBlock {
|
|||||||
|
|
||||||
public static Container findConnectedContainer(Sign sign) {
|
public static Container findConnectedContainer(Sign sign) {
|
||||||
BlockFace signFace = null;
|
BlockFace signFace = null;
|
||||||
if (((org.bukkit.material.Sign) sign.getData()).isWallSign()) {
|
BlockData data = sign.getBlockData();
|
||||||
signFace = ((Attachable) sign.getData()).getAttachedFace();
|
if (data instanceof WallSign) {
|
||||||
|
signFace = ((WallSign) data).getFacing().getOppositeFace();
|
||||||
}
|
}
|
||||||
return findConnectedContainer(sign.getLocation(), signFace);
|
return findConnectedContainer(sign.getLocation(), signFace);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Container findConnectedContainer(Block block) {
|
public static Container findConnectedContainer(Block block) {
|
||||||
BlockFace signFace = null;
|
BlockFace signFace = null;
|
||||||
if (BlockUtil.isSign(block)) {
|
BlockData data = block.getBlockData();
|
||||||
Sign sign = (Sign) block.getState();
|
if (data instanceof WallSign) {
|
||||||
if (((org.bukkit.material.Sign) sign.getData()).isWallSign()) {
|
signFace = ((WallSign) data).getFacing().getOppositeFace();
|
||||||
signFace = ((Attachable) sign.getData()).getAttachedFace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return findConnectedContainer(block.getLocation(), signFace);
|
return findConnectedContainer(block.getLocation(), signFace);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user