3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-12-25 15:50:10 +01:00

Fix sign and banner placement in paperpatch

Dieser Commit ist enthalten in:
KennyTV 2019-04-26 11:16:53 +02:00
Ursprung 63fc733c88
Commit a5f5472853

Datei anzeigen

@ -25,15 +25,16 @@ public class PaperPatch extends ViaBukkitListener {
@EventHandler(ignoreCancelled = true)
public void onPlace(BlockPlaceEvent e) {
if (isOnPipe(e.getPlayer())) {
Location diff = e.getPlayer().getLocation().subtract(e.getBlock().getLocation().add(0.5D, 0, 0.5D));
Location location = e.getPlayer().getLocation();
Location diff = location.subtract(e.getBlock().getLocation().add(0.5D, 0, 0.5D));
Material block = e.getBlockPlaced().getType();
if (!block.isSolid()) {
if (isPlacable(block)) {
return;
}
if (e.getPlayer().getLocation().getBlock().equals(e.getBlock())) {
if (location.getBlock().equals(e.getBlock())) {
e.setCancelled(true);
} else {
if (e.getPlayer().getLocation().getBlock().getRelative(BlockFace.UP).equals(e.getBlock())) {
if (location.getBlock().getRelative(BlockFace.UP).equals(e.getBlock())) {
e.setCancelled(true);
} else {
// Within radius of block
@ -55,4 +56,18 @@ public class PaperPatch extends ViaBukkitListener {
}
}
}
private boolean isPlacable(Material material) {
if (!material.isSolid()) return true;
// signs and banners
switch (material.getId()) {
case 63:
case 68:
case 176:
case 177:
return true;
default:
return false;
}
}
}