Skip to content

Commit

Permalink
Block Helper Cleanup (#2361)
Browse files Browse the repository at this point in the history
  • Loading branch information
tal5 committed Aug 27, 2022
1 parent 14af4f1 commit 23d52cc
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 102 deletions.
Expand Up @@ -4,11 +4,10 @@
import com.denizenscript.denizen.objects.LocationTag;
import com.denizenscript.denizen.objects.WorldTag;
import com.denizenscript.denizen.events.BukkitScriptEvent;
import com.denizenscript.denizen.nms.NMSHandler;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.objects.ObjectTag;
import org.bukkit.Location;
import org.bukkit.block.BlockState;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.world.PortalCreateEvent;
Expand Down Expand Up @@ -55,21 +54,16 @@ public boolean matches(ScriptPath path) {

@Override
public ObjectTag getContext(String name) {
if (name.equals("entity") && event.getEntity() != null) {
return new EntityTag(event.getEntity()).getDenizenObject();
}
else if (name.equals("world")) {
return new WorldTag(event.getWorld());
}
else if (name.equals("reason")) {
return reason;
}
else if (name.equals("blocks")) {
ListTag blocks = new ListTag();
for (Location location : NMSHandler.blockHelper.getBlocksList(event)) {
blocks.addObject(new LocationTag(location));
}
return blocks;
switch (name) {
case "entity": return event.getEntity() != null ? new EntityTag(event.getEntity()).getDenizenObject() : null;
case "world": return new WorldTag(event.getWorld());
case "reason": return reason;
case "blocks":
ListTag blocks = new ListTag();
for (BlockState blockState : event.getBlocks()) {
blocks.addObject(new LocationTag(blockState.getLocation()));
}
return blocks;
}
return super.getContext(name);
}
Expand Down
Expand Up @@ -9,10 +9,8 @@
import org.bukkit.Material;
import org.bukkit.block.*;
import org.bukkit.block.data.BlockData;
import org.bukkit.event.world.PortalCreateEvent;
import org.bukkit.inventory.ItemStack;

import java.util.List;
import java.util.Set;

public interface BlockHelper {
Expand All @@ -34,13 +32,11 @@ public interface BlockHelper {

BlockState generateBlockState(Block block, Material mat);

List<Location> getBlocksList(PortalCreateEvent event);

String getPushReaction(Material mat);

void setPushReaction(Material mat, String reaction);

float getBlockStength(Material mat);
float getBlockStrength(Material mat);

void setBlockStrength(Material mat, float strength);

Expand All @@ -64,14 +60,9 @@ default BlockData parseBlockData(String text) {
material = text.substring(0, openBracket);
otherData = text.substring(openBracket);
}
if (material.startsWith("minecraft:")) {
material = material.substring("minecraft:".length());
}
return parseBlockData(Material.getMaterial(material.toUpperCase()), otherData);
return Material.matchMaterial(material).createBlockData(otherData);
}

BlockData parseBlockData(Material material, String otherData);

default void makeBlockStateRaw(BlockState state) {
throw new UnsupportedOperationException();
}
Expand Down
Expand Up @@ -558,8 +558,7 @@ public static void registerTags() {
// This is a representation of how much time mining is needed to break a block.
// -->
tagProcessor.registerTag(ElementTag.class, "block_strength", (attribute, object) -> {
float res = NMSHandler.blockHelper.getBlockStength(object.material);
return new ElementTag(res);
return new ElementTag(NMSHandler.blockHelper.getBlockStrength(object.material));
});

tagProcessor.registerTag(ElementTag.class, "has_vanilla_data_tag", (attribute, object) -> {
Expand Down
Expand Up @@ -16,20 +16,16 @@
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.Skull;
import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.v1_16_R3.CraftChunk;
import org.bukkit.craftbukkit.v1_16_R3.CraftWorld;
import org.bukkit.craftbukkit.v1_16_R3.block.CraftBlockEntityState;
import org.bukkit.craftbukkit.v1_16_R3.block.CraftBlockState;
import org.bukkit.craftbukkit.v1_16_R3.block.CraftSkull;
import org.bukkit.craftbukkit.v1_16_R3.block.data.CraftBlockData;
import org.bukkit.craftbukkit.v1_16_R3.util.CraftMagicNumbers;
import org.bukkit.event.world.PortalCreateEvent;

import java.lang.invoke.MethodHandle;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

public class BlockHelperImpl implements BlockHelper {
Expand All @@ -54,20 +50,6 @@ public void applyPhysics(Location location) {
((CraftWorld) location.getWorld()).getHandle().applyPhysics(pos, CraftMagicNumbers.getBlock(location.getBlock().getType()));
}

@Override
public BlockData parseBlockData(Material material, String otherData) {
return CraftBlockData.newData(material, otherData);
}

@Override
public List<Location> getBlocksList(PortalCreateEvent event) {
List<Location> blocks = new ArrayList<>();
for (org.bukkit.block.BlockState block : event.getBlocks()) {
blocks.add(block.getLocation());
}
return blocks;
}

public <T extends TileEntity> T getTE(CraftBlockEntityState<T> cbs) {
try {
return (T) craftBlockEntityState_tileEntity.get(cbs);
Expand Down Expand Up @@ -195,7 +177,7 @@ public void setPushReaction(Material mat, String reaction) {
}

@Override
public float getBlockStength(Material mat) {
public float getBlockStrength(Material mat) {
return getMaterialBlock(mat).getBlockData().strength;
}

Expand Down
Expand Up @@ -27,19 +27,15 @@
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.*;
import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.v1_17_R1.CraftChunk;
import org.bukkit.craftbukkit.v1_17_R1.CraftWorld;
import org.bukkit.craftbukkit.v1_17_R1.block.*;
import org.bukkit.craftbukkit.v1_17_R1.block.data.CraftBlockData;
import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack;
import org.bukkit.craftbukkit.v1_17_R1.util.CraftMagicNumbers;
import org.bukkit.event.world.PortalCreateEvent;

import java.lang.invoke.MethodHandle;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.UUID;

Expand All @@ -65,20 +61,6 @@ public void applyPhysics(Location location) {
((CraftWorld) location.getWorld()).getHandle().updateNeighborsAt(pos, CraftMagicNumbers.getBlock(location.getBlock().getType()));
}

@Override
public BlockData parseBlockData(Material material, String otherData) {
return CraftBlockData.newData(material, otherData);
}

@Override
public List<Location> getBlocksList(PortalCreateEvent event) {
List<Location> blocks = new ArrayList<>();
for (org.bukkit.block.BlockState block : event.getBlocks()) {
blocks.add(block.getLocation());
}
return blocks;
}

public static <T extends BlockEntity> T getTE(CraftBlockEntityState<T> cbs) {
try {
return (T) craftBlockEntityState_tileEntity.get(cbs);
Expand Down Expand Up @@ -213,7 +195,7 @@ public void setPushReaction(Material mat, String reaction) {
}

@Override
public float getBlockStength(Material mat) {
public float getBlockStrength(Material mat) {
return getMaterialBlock(mat).defaultBlockState().destroySpeed;
}

Expand Down
Expand Up @@ -37,7 +37,6 @@
import net.minecraft.world.level.material.PushReaction;
import org.bukkit.*;
import org.bukkit.block.*;
import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.v1_18_R2.CraftChunk;
import org.bukkit.craftbukkit.v1_18_R2.CraftServer;
import org.bukkit.craftbukkit.v1_18_R2.CraftWorld;
Expand All @@ -47,7 +46,6 @@
import org.bukkit.craftbukkit.v1_18_R2.tag.CraftBlockTag;
import org.bukkit.craftbukkit.v1_18_R2.util.CraftMagicNumbers;
import org.bukkit.entity.Player;
import org.bukkit.event.world.PortalCreateEvent;

import java.lang.invoke.MethodHandle;
import java.lang.reflect.Field;
Expand Down Expand Up @@ -76,20 +74,6 @@ public void applyPhysics(Location location) {
((CraftWorld) location.getWorld()).getHandle().updateNeighborsAt(pos, CraftMagicNumbers.getBlock(location.getBlock().getType()));
}

@Override
public BlockData parseBlockData(Material material, String otherData) {
return CraftBlockData.newData(material, otherData);
}

@Override
public List<Location> getBlocksList(PortalCreateEvent event) {
List<Location> blocks = new ArrayList<>();
for (org.bukkit.block.BlockState block : event.getBlocks()) {
blocks.add(block.getLocation());
}
return blocks;
}

public static <T extends BlockEntity> T getTE(CraftBlockEntityState<T> cbs) {
try {
return (T) craftBlockEntityState_tileEntity.get(cbs);
Expand Down Expand Up @@ -223,7 +207,7 @@ public void setPushReaction(Material mat, String reaction) {
}

@Override
public float getBlockStength(Material mat) {
public float getBlockStrength(Material mat) {
return getMaterialBlock(mat).defaultBlockState().destroySpeed;
}

Expand Down
Expand Up @@ -38,7 +38,6 @@
import net.minecraft.world.level.material.PushReaction;
import org.bukkit.*;
import org.bukkit.block.*;
import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.v1_19_R1.CraftChunk;
import org.bukkit.craftbukkit.v1_19_R1.CraftServer;
import org.bukkit.craftbukkit.v1_19_R1.CraftWorld;
Expand All @@ -48,7 +47,6 @@
import org.bukkit.craftbukkit.v1_19_R1.tag.CraftBlockTag;
import org.bukkit.craftbukkit.v1_19_R1.util.CraftMagicNumbers;
import org.bukkit.entity.Player;
import org.bukkit.event.world.PortalCreateEvent;

import java.lang.invoke.MethodHandle;
import java.lang.reflect.Field;
Expand Down Expand Up @@ -77,20 +75,6 @@ public void applyPhysics(Location location) {
((CraftWorld) location.getWorld()).getHandle().updateNeighborsAt(pos, CraftMagicNumbers.getBlock(location.getBlock().getType()));
}

@Override
public BlockData parseBlockData(Material material, String otherData) {
return CraftBlockData.newData(material, otherData);
}

@Override
public List<Location> getBlocksList(PortalCreateEvent event) {
List<Location> blocks = new ArrayList<>();
for (org.bukkit.block.BlockState block : event.getBlocks()) {
blocks.add(block.getLocation());
}
return blocks;
}

public static <T extends BlockEntity> T getTE(CraftBlockEntityState<T> cbs) {
try {
return (T) craftBlockEntityState_tileEntity.get(cbs);
Expand Down Expand Up @@ -224,7 +208,7 @@ public void setPushReaction(Material mat, String reaction) {
}

@Override
public float getBlockStength(Material mat) {
public float getBlockStrength(Material mat) {
return getMaterialBlock(mat).defaultBlockState().destroySpeed;
}

Expand Down

0 comments on commit 23d52cc

Please sign in to comment.