|
|
|
@@ -1,21 +1,16 @@
|
|
|
|
|
package com.gtnewhorizon.structurelib.structure;
|
|
|
|
|
|
|
|
|
|
import com.google.common.collect.ImmutableList;
|
|
|
|
|
import com.gtnewhorizon.structurelib.IStructureCompat;
|
|
|
|
|
import com.gtnewhorizon.structurelib.StructureEvent.StructureElementVisitedEvent;
|
|
|
|
|
import com.gtnewhorizon.structurelib.StructureLib;
|
|
|
|
|
import com.gtnewhorizon.structurelib.StructureLibAPI;
|
|
|
|
|
import com.gtnewhorizon.structurelib.alignment.constructable.ChannelDataAccessor;
|
|
|
|
|
import com.gtnewhorizon.structurelib.alignment.enumerable.ExtendedFacing;
|
|
|
|
|
import com.gtnewhorizon.structurelib.item.ItemConstructableTrigger;
|
|
|
|
|
import com.gtnewhorizon.structurelib.structure.IStructureElement.PlaceResult;
|
|
|
|
|
import com.gtnewhorizon.structurelib.structure.adders.IBlockAdder;
|
|
|
|
|
import com.gtnewhorizon.structurelib.structure.adders.ITileAdder;
|
|
|
|
|
import com.gtnewhorizon.structurelib.util.ItemStackPredicate;
|
|
|
|
|
import com.gtnewhorizon.structurelib.util.ItemStackPredicate.NBTMode;
|
|
|
|
|
import com.gtnewhorizon.structurelib.util.Vec3Impl;
|
|
|
|
|
import cpw.mods.fml.common.Loader;
|
|
|
|
|
import cpw.mods.fml.common.registry.GameRegistry;
|
|
|
|
|
import static com.gtnewhorizon.structurelib.StructureLib.LOGGER;
|
|
|
|
|
import static com.gtnewhorizon.structurelib.StructureLib.PANIC_MODE;
|
|
|
|
|
import static com.gtnewhorizon.structurelib.item.ModeToggleableItem.TriggerMode.*;
|
|
|
|
|
import static java.lang.Integer.MIN_VALUE;
|
|
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.Map.Entry;
|
|
|
|
|
import java.util.function.*;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Nullable;
|
|
|
|
|
|
|
|
|
|
import net.minecraft.block.Block;
|
|
|
|
|
import net.minecraft.entity.item.EntityItem;
|
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
@@ -31,18 +26,26 @@ import net.minecraft.util.IChatComponent;
|
|
|
|
|
import net.minecraft.util.IIcon;
|
|
|
|
|
import net.minecraft.world.World;
|
|
|
|
|
import net.minecraftforge.common.util.ForgeDirection;
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.apache.commons.lang3.tuple.Pair;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Nullable;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.Map.Entry;
|
|
|
|
|
import java.util.function.*;
|
|
|
|
|
import com.google.common.collect.ImmutableList;
|
|
|
|
|
import com.gtnewhorizon.structurelib.IStructureCompat;
|
|
|
|
|
import com.gtnewhorizon.structurelib.StructureEvent.StructureElementVisitedEvent;
|
|
|
|
|
import com.gtnewhorizon.structurelib.StructureLib;
|
|
|
|
|
import com.gtnewhorizon.structurelib.StructureLibAPI;
|
|
|
|
|
import com.gtnewhorizon.structurelib.alignment.constructable.ChannelDataAccessor;
|
|
|
|
|
import com.gtnewhorizon.structurelib.alignment.enumerable.ExtendedFacing;
|
|
|
|
|
import com.gtnewhorizon.structurelib.item.ItemConstructableTrigger;
|
|
|
|
|
import com.gtnewhorizon.structurelib.structure.IStructureElement.PlaceResult;
|
|
|
|
|
import com.gtnewhorizon.structurelib.structure.adders.IBlockAdder;
|
|
|
|
|
import com.gtnewhorizon.structurelib.structure.adders.ITileAdder;
|
|
|
|
|
import com.gtnewhorizon.structurelib.util.ItemStackPredicate;
|
|
|
|
|
import com.gtnewhorizon.structurelib.util.ItemStackPredicate.NBTMode;
|
|
|
|
|
import com.gtnewhorizon.structurelib.util.Vec3Impl;
|
|
|
|
|
|
|
|
|
|
import static com.gtnewhorizon.structurelib.StructureLib.LOGGER;
|
|
|
|
|
import static com.gtnewhorizon.structurelib.StructureLib.PANIC_MODE;
|
|
|
|
|
import static com.gtnewhorizon.structurelib.item.ModeToggleableItem.TriggerMode.*;
|
|
|
|
|
import static java.lang.Integer.MIN_VALUE;
|
|
|
|
|
import cpw.mods.fml.common.registry.GameRegistry;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* A brief index of everything contained
|
|
|
|
@@ -130,8 +133,6 @@ public class StructureUtility {
|
|
|
|
|
|
|
|
|
|
private static final String NICE_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz=|!@#$%&()[]{};:<>/?_,.*^'`";
|
|
|
|
|
|
|
|
|
|
private static final boolean isSULoaded = Loader.isModLoaded("serverutilities");
|
|
|
|
|
|
|
|
|
|
@SuppressWarnings("rawtypes")
|
|
|
|
|
private static final Map<Vec3Impl, IStructureNavigate> STEP = new HashMap<>();
|
|
|
|
|
|
|
|
|
@@ -3461,7 +3462,7 @@ public class StructureUtility {
|
|
|
|
|
|
|
|
|
|
public static boolean checkPermission(World world, EntityPlayer actor, int x, int y, int z) {
|
|
|
|
|
boolean res = true;
|
|
|
|
|
if (isSULoaded && StructureLib.COMPAT instanceof IStructureCompat isc) {
|
|
|
|
|
if (StructureLib.COMPAT instanceof IStructureCompat isc) {
|
|
|
|
|
res = isc.checkServerUtilitiesPermission(world, actor, x, z);
|
|
|
|
|
}
|
|
|
|
|
res = res && !world.getBlock(x, y, z).isAssociatedBlock(Blocks.bedrock);
|
|
|
|
|