diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/DynamicSpawnControl.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/DynamicSpawnControl.java index 1606d56..fc98736 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/DynamicSpawnControl.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/DynamicSpawnControl.java @@ -12,14 +12,15 @@ import net.minecraftforge.fml.common.network.NetworkRegistry; import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; -import org.imesense.dynamicspawncontrol.ai.spider.utils.event.EventHandler; -import org.imesense.dynamicspawncontrol.ai.spider.utils.attackweb.WebSlingerCapability; +import org.imesense.dynamicspawncontrol.ai.spider.util.event.WebAttackEvent; +import org.imesense.dynamicspawncontrol.ai.spider.util.attackweb.WebSlingerCapability; +import org.imesense.dynamicspawncontrol.ai.zombie.event.BreakTorchEvent; import org.imesense.dynamicspawncontrol.debug.CheckDebugger; import org.imesense.dynamicspawncontrol.gameplay.recipes.IRecipes; import org.imesense.dynamicspawncontrol.gameplay.recipes.CraftItemWeb; import org.imesense.dynamicspawncontrol.technical.eventprocessor.primitive.OnUpdateTimeWorld; import org.imesense.dynamicspawncontrol.technical.eventprocessor.primitive.OnWindowTitle; -import org.imesense.dynamicspawncontrol.technical.initializer.RegisterCfgClasses; +import org.imesense.dynamicspawncontrol.technical.initializer.RegisterConfigClasses; import org.imesense.dynamicspawncontrol.technical.initializer.RegisterGameplayClasses; import org.imesense.dynamicspawncontrol.technical.initializer.RegisterCommandsClasses; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -40,90 +41,12 @@ * Main class of modification */ @Mod( - modid = DynamicSpawnControl.STRUCT_INFO_MOD.MOD_ID, - name = DynamicSpawnControl.STRUCT_INFO_MOD.NAME, - version = DynamicSpawnControl.STRUCT_INFO_MOD.VERSION + modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID, + name = ProjectStructure.STRUCT_INFO_MOD.NAME, + version = ProjectStructure.STRUCT_INFO_MOD.VERSION ) public class DynamicSpawnControl { - /** - * - */ - public static final class STRUCT_INFO_MOD - { - /** - * Modification ID - */ - public static final String MOD_ID = "dynamicspawncontrol"; - - /** - * Modification name - */ - public static final String NAME = "Dynamic Spawn Control"; - - /** - * Minecraft version - */ - public static final String VERSION = "1.12.2-14.23.5.2860"; - } - - /** - * - */ - public static final class STRUCT_FILES_DIRS - { - /** - * - */ - public static final String NAME_DIRECTORY = "DynamicSpawnControl"; - - /** - * - */ - public static final String NAME_DIR_CONFIGS = "configs"; - - /** - * - */ - public static final String NAME_DIR_PLUGINS = "plugins"; - - /** - * - */ - public static final String NAME_DIR_SCRIPTS = "scripts"; - - /** - * - */ - public static final String NAME_DIR_SINGLE_SCRIPTS = "single_scripts"; - - /** - * - */ - public static final String NAME_DIR_LOGS = "logs"; - - /** - * - */ - public static final String NAME_DIR_CACHE = "cache"; - } - - /** - * - */ - public static final class STRUCT_FILES_EXTENSION - { - /** - * - */ - public static final String SCRIPT_FILE_EXTENSION = ".json"; - - /** - * - */ - public static final String LOG_FILE_EXTENSION = ".txt"; - } - /** * Main class instance */ @@ -193,7 +116,7 @@ public synchronized void preInit(FMLPreInitializationEvent event) globalDirectory = event.getModConfigurationDirectory(); // - Log.createLogFile(globalDirectory.getPath() + File.separator + STRUCT_FILES_DIRS.NAME_DIRECTORY, CheckDebugger.instance.IsRunDebugger); + Log.createLogFile(globalDirectory.getPath() + File.separator + ProjectStructure.STRUCT_FILES_DIRS.NAME_DIRECTORY, CheckDebugger.instance.IsRunDebugger); Log.writeDataToLogFile(1, "Debugger is running: " + (CheckDebugger.instance.IsRunDebugger ? "true" : "false")); // @@ -204,7 +127,7 @@ public synchronized void preInit(FMLPreInitializationEvent event) PlayerInWebMessage.register(networkWrapper); // - RegisterCfgClasses.initializeConfigs(); + RegisterConfigClasses.initializeConfigs(); // generalStorageData = new GeneralStorageData(); @@ -262,7 +185,9 @@ public synchronized void postInit(FMLPostInitializationEvent event) // Proxy.postInit(event); - MinecraftForge.EVENT_BUS.register( new EventHandler()); + //-' TODO: перенести это в отдельную инициализацию + MinecraftForge.EVENT_BUS.register(new WebAttackEvent()); + MinecraftForge.EVENT_BUS.register(new BreakTorchEvent()); } /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ProjectStructure.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ProjectStructure.java new file mode 100644 index 0000000..5add674 --- /dev/null +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ProjectStructure.java @@ -0,0 +1,85 @@ +package org.imesense.dynamicspawncontrol; + +/** + * + */ +public final class ProjectStructure +{ + /** + * + */ + public static final class STRUCT_INFO_MOD + { + /** + * Modification ID + */ + public static final String MOD_ID = "dynamicspawncontrol"; + + /** + * Modification name + */ + public static final String NAME = "Dynamic Spawn Control"; + + /** + * Minecraft version + */ + public static final String VERSION = "1.12.2-14.23.5.2860"; + } + + /** + * + */ + public static final class STRUCT_FILES_DIRS + { + /** + * + */ + public static final String NAME_DIRECTORY = "DynamicSpawnControl"; + + /** + * + */ + public static final String NAME_DIR_CONFIGS = "configs"; + + /** + * + */ + public static final String NAME_DIR_PLUGINS = "plugins"; + + /** + * + */ + public static final String NAME_DIR_SCRIPTS = "scripts"; + + /** + * + */ + public static final String NAME_DIR_SINGLE_SCRIPTS = "single_scripts"; + + /** + * + */ + public static final String NAME_DIR_LOGS = "logs"; + + /** + * + */ + public static final String NAME_DIR_CACHE = "cache"; + } + + /** + * + */ + public static final class STRUCT_FILES_EXTENSION + { + /** + * + */ + public static final String SCRIPT_FILE_EXTENSION = ".json"; + + /** + * + */ + public static final String LOG_FILE_EXTENSION = ".txt"; + } +} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/skeleton/AISkeletonAddFovTask.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/skeleton/AISkeletonAddFovTask.java deleted file mode 100644 index c96475d..0000000 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/skeleton/AISkeletonAddFovTask.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.imesense.dynamicspawncontrol.ai.skeleton; - -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -public class AISkeletonAddFovTask -{ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) { - - } -} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/task/AISpiderWebAttackTask.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/entityaibase/WebAttackTask.java similarity index 77% rename from dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/task/AISpiderWebAttackTask.java rename to dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/entityaibase/WebAttackTask.java index 594263f..e48d3f4 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/task/AISpiderWebAttackTask.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/entityaibase/WebAttackTask.java @@ -1,16 +1,18 @@ -package org.imesense.dynamicspawncontrol.ai.spider.task; +package org.imesense.dynamicspawncontrol.ai.spider.entityaibase; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.ai.EntityAIBase; import net.minecraft.world.World; -import org.imesense.dynamicspawncontrol.ai.spider.utils.attackweb.EntityThrowableWeb; +import org.imesense.dynamicspawncontrol.ai.spider.util.attackweb.EntityThrowableWeb; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.spiderattackweb.DataSpiderAttackWeb; +import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; /** * */ -public final class AISpiderWebAttackTask extends EntityAIBase +public final class WebAttackTask extends EntityAIBase { /** * @@ -26,8 +28,10 @@ public final class AISpiderWebAttackTask extends EntityAIBase * * @param entity */ - public AISpiderWebAttackTask(EntityLiving entity) + public WebAttackTask(EntityLiving entity) { + CodeGenericUtils.printInitClassToLog(this.getClass()); + this.parentEntity = entity; } @@ -38,8 +42,11 @@ public AISpiderWebAttackTask(EntityLiving entity) @Override public boolean shouldExecute() { - EntityLivingBase entitylivingbase = this.parentEntity != null ? this.parentEntity.getAttackTarget() : null; - return entitylivingbase != null && entitylivingbase.getDistanceSq(this.parentEntity) >= 4.0; + EntityLivingBase entitylivingbase = this.parentEntity != null ? + this.parentEntity.getAttackTarget() : null; + + return entitylivingbase != null && + entitylivingbase.getDistanceSq(this.parentEntity) >= 4.0; } /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/EntityThrowableWeb.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/EntityThrowableWeb.java similarity index 79% rename from dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/EntityThrowableWeb.java rename to dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/EntityThrowableWeb.java index b2c4d75..654681d 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/EntityThrowableWeb.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/EntityThrowableWeb.java @@ -1,24 +1,24 @@ -package org.imesense.dynamicspawncontrol.ai.spider.utils.attackweb; +package org.imesense.dynamicspawncontrol.ai.spider.util.attackweb; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.init.Blocks; import net.minecraft.util.DamageSource; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.SoundCategory; -import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import org.imesense.dynamicspawncontrol.DynamicSpawnControl; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.spiderattackweb.DataSpiderAttackWeb; +import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; import org.imesense.dynamicspawncontrol.technical.customlibrary.ObjectHandler; import org.imesense.dynamicspawncontrol.technical.network.PlayerInWebMessage; @@ -30,7 +30,7 @@ public final class EntityThrowableWeb extends EntityThrowable /** * */ - public static final EnumParticleTypes particleType; + public static final EnumParticleTypes PARTICLE_TYPES; /** * @@ -39,6 +39,8 @@ public final class EntityThrowableWeb extends EntityThrowable public EntityThrowableWeb(World worldIn) { super(worldIn); + + CodeGenericUtils.printInitClassToLog(this.getClass()); } /** @@ -49,53 +51,8 @@ public EntityThrowableWeb(World worldIn) public EntityThrowableWeb(World worldIn, EntityLivingBase throwerIn) { super(worldIn, throwerIn); - } - /** - * - * @param worldIn - * @param x - * @param y - * @param z - */ - public EntityThrowableWeb(World worldIn, double x, double y, double z) - { - super(worldIn, x, y, z); - } - - /** - * - * @param worldIn - * @param x - * @param y - * @param z - * @param accelX - * @param accelY - * @param accelZ - */ - public EntityThrowableWeb(World worldIn, double x, double y, double z, double accelX, double accelY, double accelZ) - { - super(worldIn); - this.setSize(1.0f, 1.0f); - this.setLocationAndAngles(x, y, z, this.rotationYaw, this.rotationPitch); - this.setPosition(x, y, z); - } - - /** - * - * @param id - */ - @SideOnly(Side.CLIENT) - public void handleStatusUpdate(byte id) - { - if (id == 3) - { - for(byte i = 0; i < 3; ++i) - { - this.world.spawnParticle(particleType, - this.posX, this.posY, this.posZ, 0.f, 0.f, 0.f); - } - } + CodeGenericUtils.printInitClassToLog(this.getClass()); } /** @@ -220,6 +177,6 @@ public static void onHit(World world, BlockPos pos, Entity source, Entity target */ static { - particleType = EnumParticleTypes.SNOWBALL; + PARTICLE_TYPES = EnumParticleTypes.SNOWBALL; } } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/IWebSlinger.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/IWebSlinger.java new file mode 100644 index 0000000..dbd7d32 --- /dev/null +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/IWebSlinger.java @@ -0,0 +1,17 @@ +package org.imesense.dynamicspawncontrol.ai.spider.util.attackweb; + +import org.imesense.dynamicspawncontrol.technical.customlibrary.thing.IThingBase; + +/** + * + */ +@FunctionalInterface +public interface IWebSlinger +{ + /** + * + * @param param1 + * @param param2 + */ + void checkInit(IThingBase param1, int param2); +} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/WebSlingerCapability.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/WebSlingerCapability.java similarity index 58% rename from dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/WebSlingerCapability.java rename to dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/WebSlingerCapability.java index d81e6b4..4043ab4 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/WebSlingerCapability.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/WebSlingerCapability.java @@ -1,4 +1,4 @@ -package org.imesense.dynamicspawncontrol.ai.spider.utils.attackweb; +package org.imesense.dynamicspawncontrol.ai.spider.util.attackweb; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; @@ -13,42 +13,78 @@ import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import org.imesense.dynamicspawncontrol.ai.spider.task.AISpiderWebAttackTask; +import org.imesense.dynamicspawncontrol.ProjectStructure; +import org.imesense.dynamicspawncontrol.ai.spider.entityaibase.WebAttackTask; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.spiderattackweb.DataSpiderAttackWeb; -import org.imesense.dynamicspawncontrol.technical.customlibrary.thing.EntityThing; -import org.imesense.dynamicspawncontrol.technical.customlibrary.thing.IThing; - -@Mod.EventBusSubscriber +import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; +import org.imesense.dynamicspawncontrol.technical.customlibrary.thing.EntityThingBase; +import org.imesense.dynamicspawncontrol.technical.customlibrary.thing.IThingBase; + +/** + * + */ +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class WebSlingerCapability implements IWebSlinger { + /** + * + */ + private IThingBase owner; + + /** + * + */ + public static final EnumFacing DEFAULT_FACING = null; + + /** + * + */ @CapabilityInject(IWebSlinger.class) public static final Capability CAPABILITY = null; - public static final EnumFacing DEFAULT_FACING = null; + /** + * + */ + public static final ResourceLocation ID = + new ResourceLocation("dynamicspawncontrol", "webslinger"); - public static final ResourceLocation ID = new ResourceLocation("dynamicspawncontrol", "webslinger"); - - IThing owner; + /** + * + */ + public WebSlingerCapability() + { + this.owner = null; + MinecraftForge.EVENT_BUS.register(this); + } - public void checkInit(IThing ownerIn, int taskPriority) + /** + * + * @param ownerIn + * @param taskPriority + */ + public void checkInit(IThingBase ownerIn, int taskPriority) { if (this.owner != ownerIn) { this.owner = ownerIn; this.initialize(taskPriority); } - } - protected EntityLiving getOwner() + /** + * + * @return + */ + private EntityLiving getOwner() { - if (this.owner instanceof EntityThing) + if (this.owner instanceof EntityThingBase) { - EntityThing thing = (EntityThing) CodeGenericUtils.as(this.owner, EntityThing.class); - EntityLiving living = (EntityLiving)CodeGenericUtils.as(thing.owner, EntityLiving.class); + EntityThingBase thing = CodeGenericUtils.as(this.owner, EntityThingBase.class); + + assert thing != null; - return living; + return CodeGenericUtils.as(thing.owner, EntityLiving.class); } else { @@ -56,7 +92,11 @@ protected EntityLiving getOwner() } } - protected void initialize(int taskPriority) + /** + * + * @param taskPriority + */ + private void initialize(int taskPriority) { if (DataSpiderAttackWeb.ConfigDataSpiderAttackWeb.instance.getSlingWebbing()) { @@ -64,56 +104,53 @@ protected void initialize(int taskPriority) if (living != null) { - living.tasks.addTask(taskPriority, new AISpiderWebAttackTask(living)); + living.tasks.addTask(taskPriority, new WebAttackTask(living)); } } - } + /** + * + */ public static void register() { - CapabilityManager.INSTANCE.register(IWebSlinger.class, new WebSlingerStorage(), () -> - { - return new WebSlingerCapability(); - }); - } - - WebSlingerCapability() - { - this.owner = null; - MinecraftForge.EVENT_BUS.register(this); - } - - WebSlingerCapability(IThing ownerIn, int taskPriority) - { - this(); - this.checkInit(ownerIn, taskPriority); + CapabilityManager.INSTANCE.register(IWebSlinger.class, new WebSlingerStorage(), WebSlingerCapability::new); } + /** + * + * @param event + */ @SubscribeEvent - public void onLivingAttack(LivingAttackEvent event) + public synchronized void onLivingAttack(LivingAttackEvent event) { - Entity immediateSource = event.getSource().getImmediateSource(); - Entity trueSource = event.getSource().getTrueSource(); Entity target = event.getEntity(); - EntityLiving myowner = this.getOwner(); + EntityLiving getOwner = this.getOwner(); + Entity trueSource = event.getSource().getTrueSource(); + Entity immediateSource = event.getSource().getImmediateSource(); - if (immediateSource != null && myowner != null && immediateSource == myowner && immediateSource == trueSource) + if (getOwner != null && immediateSource == getOwner && immediateSource == trueSource) { tryAttack(immediateSource, trueSource, target); } - } - protected static void tryAttack(Entity immediateSource, Entity source, Entity target) + /** + * + * @param immediateSource + * @param source + * @param target + */ + private static void tryAttack(Entity immediateSource, Entity source, Entity target) { World world = target.world; if (!(DataSpiderAttackWeb.ConfigDataSpiderAttackWeb.instance.getWebMeleeChance() <= world.rand.nextDouble())) { - if (target != null && immediateSource != null) + if (immediateSource != null) { double distance = immediateSource.getDistanceSq(target); + if (distance > 2.0D) { return; diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/WebSlingerProvider.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/WebSlingerProvider.java new file mode 100644 index 0000000..aae7633 --- /dev/null +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/WebSlingerProvider.java @@ -0,0 +1,53 @@ +package org.imesense.dynamicspawncontrol.ai.spider.util.attackweb; + +import net.minecraft.util.EnumFacing; +import net.minecraftforge.common.capabilities.Capability; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; +import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; +import org.imesense.dynamicspawncontrol.technical.customlibrary.SimpleCapabilityProvider; +import org.imesense.dynamicspawncontrol.technical.customlibrary.thing.IThingBase; + +import javax.annotation.Nullable; + +/** + * + */ +public final class WebSlingerProvider extends SimpleCapabilityProvider +{ + /** + * + */ + private final IThingBase OWNER; + + /** + * + */ + private final int TASK_PRIORITY; + + /** + * + * @param capability + * @param facing + * @param ownerIn + * @param taskPriorityIn + */ + public WebSlingerProvider(Capability capability, @Nullable EnumFacing facing, IThingBase ownerIn, int taskPriorityIn) + { + super(capability, facing, capability != null ? capability.getDefaultInstance() : null); + + this.OWNER = ownerIn; + this.TASK_PRIORITY = taskPriorityIn; + } + + /** + * + * @return + */ + public IWebSlinger getInstance() + { + final IWebSlinger CAP = super.getInstance(); + CAP.checkInit(this.OWNER, this.TASK_PRIORITY); + + return CAP; + } +} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/WebSlingerStorage.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/WebSlingerStorage.java new file mode 100644 index 0000000..28009f3 --- /dev/null +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/attackweb/WebSlingerStorage.java @@ -0,0 +1,48 @@ +package org.imesense.dynamicspawncontrol.ai.spider.util.attackweb; + +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.Capability.IStorage; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; +import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; + +/** + * + */ +public final class WebSlingerStorage implements IStorage +{ + /** + * + */ + public WebSlingerStorage() + { + CodeGenericUtils.printInitClassToLog(this.getClass()); + } + + /** + * + * @param capability + * @param instance + * @param side + * @return + */ + public NBTBase writeNBT(Capability capability, IWebSlinger instance, EnumFacing side) + { + return new NBTTagCompound(); + } + + /** + * + * @param capability + * @param instance + * @param side + * @param nbt + */ + public void readNBT(Capability capability, IWebSlinger instance, EnumFacing side, NBTBase nbt) + { + // Implementation is not required + } +} + diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/event/EventHandler.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/event/WebAttackEvent.java similarity index 55% rename from dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/event/EventHandler.java rename to dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/event/WebAttackEvent.java index f1f1800..81d2127 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/event/EventHandler.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/util/event/WebAttackEvent.java @@ -1,4 +1,4 @@ -package org.imesense.dynamicspawncontrol.ai.spider.utils.event; +package org.imesense.dynamicspawncontrol.ai.spider.util.event; import net.minecraft.entity.Entity; import net.minecraft.entity.monster.EntitySpider; @@ -6,18 +6,35 @@ import net.minecraftforge.event.AttachCapabilitiesEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import org.imesense.dynamicspawncontrol.ai.spider.utils.attackweb.WebSlingerCapability; -import org.imesense.dynamicspawncontrol.ai.spider.utils.attackweb.WebSlingerProvider; -import org.imesense.dynamicspawncontrol.technical.customlibrary.thing.EntityThing; -import org.imesense.dynamicspawncontrol.technical.customlibrary.thing.TileEntityThing; +import org.imesense.dynamicspawncontrol.ProjectStructure; +import org.imesense.dynamicspawncontrol.ai.spider.util.attackweb.WebSlingerCapability; +import org.imesense.dynamicspawncontrol.ai.spider.util.attackweb.WebSlingerProvider; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; +import org.imesense.dynamicspawncontrol.technical.customlibrary.thing.EntityThingBase; +import org.imesense.dynamicspawncontrol.technical.customlibrary.thing.TileEntityThingBase; -@Mod.EventBusSubscriber -public final class EventHandler +/** + * + */ +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) +public final class WebAttackEvent { + /** + * + */ + public WebAttackEvent() + { + CodeGenericUtils.printInitClassToLog(this.getClass()); + } + + /** + * + * @param event + */ @SubscribeEvent - public static void attachCapabilitiesTileEntity(AttachCapabilitiesEvent event) + public synchronized void attachCapabilitiesTileEntity(AttachCapabilitiesEvent event) { - TileEntity entity = (TileEntity)event.getObject(); + TileEntity entity = event.getObject(); int priority = getEntityPriority(entity); @@ -26,7 +43,7 @@ public static void attachCapabilitiesTileEntity(AttachCapabilitiesEvent event) + public synchronized void attachCapabilitiesEntity(AttachCapabilitiesEvent event) { - Entity entity = (Entity)event.getObject(); + Entity entity = event.getObject(); int priority = getEntityPriority(entity); @@ -46,7 +67,7 @@ public static void attachCapabilitiesEntity(AttachCapabilitiesEvent even WebSlingerProvider provider = new WebSlingerProvider( WebSlingerCapability.CAPABILITY, WebSlingerCapability.DEFAULT_FACING, - new EntityThing(entity), + new EntityThingBase(entity), priority ); @@ -54,6 +75,11 @@ public static void attachCapabilitiesEntity(AttachCapabilitiesEvent even } } + /** + * + * @param entity + * @return + */ private static int getEntityPriority(Object entity) { if (entity instanceof EntitySpider) @@ -66,6 +92,11 @@ private static int getEntityPriority(Object entity) } } + /** + * + * @param priority + * @return + */ private static boolean doesIt(int priority) { return priority > 0; diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/IWebSlinger.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/IWebSlinger.java deleted file mode 100644 index 8f27678..0000000 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/IWebSlinger.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.imesense.dynamicspawncontrol.ai.spider.utils.attackweb; - -import org.imesense.dynamicspawncontrol.technical.customlibrary.thing.IThing; - -/** - * - */ -@FunctionalInterface -public interface IWebSlinger -{ - /** - * - * @param var1 - * @param var2 - */ - void checkInit(IThing var1, int var2); -} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/WebSlingerProvider.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/WebSlingerProvider.java deleted file mode 100644 index 9ec47ee..0000000 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/WebSlingerProvider.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.imesense.dynamicspawncontrol.ai.spider.utils.attackweb; - -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; -import org.imesense.dynamicspawncontrol.technical.customlibrary.SimpleCapabilityProvider; -import org.imesense.dynamicspawncontrol.technical.customlibrary.thing.IThing; - -import javax.annotation.Nullable; - -public final class WebSlingerProvider extends SimpleCapabilityProvider -{ - IThing owner = null; - int taskPriority = -1; - - public WebSlingerProvider(Capability capability, @Nullable EnumFacing facing, IThing ownerIn, int taskPriorityIn) - { - super(capability, facing, capability != null ? (IWebSlinger)capability.getDefaultInstance() : null); - this.owner = ownerIn; - this.taskPriority = taskPriorityIn; - } - - public WebSlingerProvider(Capability capability, @Nullable EnumFacing facing, IWebSlinger instance, IThing ownerIn, int taskPriorityIn) - { - super(capability, facing, instance); - this.owner = ownerIn; - this.taskPriority = taskPriorityIn; - } - - public final IWebSlinger getInstance() - { - IWebSlinger cap = (IWebSlinger)super.getInstance(); - cap.checkInit(this.owner, this.taskPriority); - return cap; - } -} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/WebSlingerStorage.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/WebSlingerStorage.java deleted file mode 100644 index 7feb31a..0000000 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/spider/utils/attackweb/WebSlingerStorage.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.imesense.dynamicspawncontrol.ai.spider.utils.attackweb; - -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.Capability.IStorage; - -public final class WebSlingerStorage implements IStorage -{ - public NBTBase writeNBT(Capability capability, IWebSlinger instance, EnumFacing side) - { - NBTTagCompound tags = new NBTTagCompound(); - - if (instance != null) - { - - } - - return tags; - } - - public void readNBT(Capability capability, IWebSlinger instance, EnumFacing side, NBTBase nbt) - { - NBTTagCompound tags = (NBTTagCompound)nbt; - - if (tags != null && instance != null) - { - - } - } -} - diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/zombie/AIZombieBreakTorchTask.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/zombie/AIZombieBreakTorchTask.java deleted file mode 100644 index c7c4343..0000000 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/zombie/AIZombieBreakTorchTask.java +++ /dev/null @@ -1,121 +0,0 @@ -package org.imesense.dynamicspawncontrol.ai.zombie; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.monster.EntityZombie; -import net.minecraft.init.Blocks; -import net.minecraft.util.math.BlockPos; - -import java.util.ArrayList; -import java.util.List; - -/** - * - * OldSerpskiStalker - * TODO: Все моменты отвечающие за логику живых сущностей прописывать комментариями - */ -public class AIZombieBreakTorchTask extends EntityAIBase -{ - /** - * - */ - private BlockPos targetTorchPos; - - /** - * - */ - private final EntityZombie zombie; - - /** - * - * @param zombie - */ - public AIZombieBreakTorchTask(EntityZombie zombie) - { - this.zombie = zombie; - this.setMutexBits(3); //-' Устанавливаем флаги выполнения задачи (например, нельзя выполнять одновременно с атакой) - } - - /** - * - * @return - */ - @Override - public boolean shouldExecute() - { - //-' Ищем ближайший факел в радиусе 10 блоков - List nearbyTorches = findNearbyTorches(); - - if (!nearbyTorches.isEmpty()) - { - this.targetTorchPos = nearbyTorches.get(0); - return true; - } - - return false; - } - - /** - * - */ - @Override - public void startExecuting() - { - if (this.targetTorchPos != null) - { - //-' Зомби начинает движение к факелу - this.zombie.getNavigator().tryMoveToXYZ(this.targetTorchPos.getX(), this.targetTorchPos.getY(), this.targetTorchPos.getZ(), 1.0); - } - } - - /** - * - * @return - */ - @Override - public boolean shouldContinueExecuting() - { - //-' Продолжает выполнять, пока не достигнет факела - return !zombie.getNavigator().noPath() && this.targetTorchPos != null; - } - - /** - * - */ - @Override - public void updateTask() - { - //-' Проверяем, что зомби рядом с факелом, и если да, ломаем его - if (this.targetTorchPos != null && zombie.getDistanceSqToCenter(this.targetTorchPos) < 2.0) - { - IBlockState blockState = zombie.world.getBlockState(this.targetTorchPos); - - if (blockState.getBlock() == Blocks.TORCH) - { - zombie.world.destroyBlock(this.targetTorchPos, false); //-' Ломаем факел, не выпадает - this.targetTorchPos = null; //-' Сбрасываем цель - } - } - } - - /** - * - * @return - */ - private List findNearbyTorches() - { - //-' Поиск факелов в радиусе 10 блоков - BlockPos zombiePos = new BlockPos(zombie); - List torches = new ArrayList<>(); - - for (BlockPos pos : BlockPos.getAllInBox(zombiePos.add(-10, -10, -10), zombiePos.add(10, 10, 10))) - { - if (zombie.world.getBlockState(pos).getBlock() == Blocks.TORCH) - { - torches.add(pos); - } - } - - return torches; - } -} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/zombie/entityaibase/BreakTorchTask.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/zombie/entityaibase/BreakTorchTask.java new file mode 100644 index 0000000..70441ed --- /dev/null +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/zombie/entityaibase/BreakTorchTask.java @@ -0,0 +1,119 @@ +package org.imesense.dynamicspawncontrol.ai.zombie.entityaibase; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.ai.EntityAIBase; +import net.minecraft.entity.monster.EntityZombie; +import net.minecraft.init.Blocks; +import net.minecraft.util.math.BlockPos; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; +import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; + +import java.util.ArrayList; +import java.util.List; + +/** + * + */ +public class BreakTorchTask extends EntityAIBase +{ + /** + * + */ + private BlockPos targetTorchPos; + + /** + * + */ + private final EntityZombie ZOMBIE; + + /** + * + * @param zombie + */ + public BreakTorchTask(EntityZombie zombie) + { + this.ZOMBIE = zombie; + this.setMutexBits(3); + } + + /** + * + * @return + */ + @Override + public boolean shouldExecute() + { + List nearbyTorches = findNearbyTorches(); + + if (!nearbyTorches.isEmpty()) + { + this.targetTorchPos = nearbyTorches.get(0); + return true; + } + + return false; + } + + /** + * + */ + @Override + public void startExecuting() + { + if (this.targetTorchPos != null) + { + this.ZOMBIE.getNavigator().tryMoveToXYZ(this.targetTorchPos.getX(), + this.targetTorchPos.getY(), this.targetTorchPos.getZ(), 1.0); + } + } + + /** + * + * @return + */ + @Override + public boolean shouldContinueExecuting() + { + return !this.ZOMBIE.getNavigator().noPath() && this.targetTorchPos != null; + } + + /** + * + */ + @Override + public void updateTask() + { + if (this.targetTorchPos != null && + this.ZOMBIE.getDistanceSqToCenter(this.targetTorchPos) < 2.0) + { + IBlockState blockState = this.ZOMBIE.world.getBlockState(this.targetTorchPos); + + if (blockState.getBlock() == Blocks.TORCH) + { + this.ZOMBIE.world.destroyBlock(this.targetTorchPos, false); + this.targetTorchPos = null; + } + } + } + + /** + * + * @return + */ + private List findNearbyTorches() + { + BlockPos zombiePos = new BlockPos(this.ZOMBIE); + List torchesListPos = new ArrayList<>(); + + for (BlockPos pos : BlockPos.getAllInBox(zombiePos. + add(-10, -10, -10), zombiePos.add(10, 10, 10))) + { + if (this.ZOMBIE.world.getBlockState(pos).getBlock() == Blocks.TORCH) + { + torchesListPos.add(pos); + } + } + + return torchesListPos; + } +} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/zombie/event/BreakTorchEvent.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/zombie/event/BreakTorchEvent.java new file mode 100644 index 0000000..2d5fe95 --- /dev/null +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/ai/zombie/event/BreakTorchEvent.java @@ -0,0 +1,38 @@ +package org.imesense.dynamicspawncontrol.ai.zombie.event; + +import net.minecraft.entity.monster.EntityZombie; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; +import org.imesense.dynamicspawncontrol.ai.zombie.entityaibase.BreakTorchTask; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; + +/** + * + */ +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) +public final class BreakTorchEvent +{ + /** + * + */ + public BreakTorchEvent() + { + CodeGenericUtils.printInitClassToLog(this.getClass()); + } + + /** + * + * @param event + */ + @SubscribeEvent + public synchronized void onZombieSpawn(EntityJoinWorldEvent event) + { + if (event.getEntity() instanceof EntityZombie) + { + EntityZombie zombie = (EntityZombie) event.getEntity(); + zombie.tasks.addTask(1, new BreakTorchTask(zombie)); + } + } +} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/debug/CodeGenericUtils.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/debug/CodeGenericUtils.java index 278682e..5fb2ce0 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/debug/CodeGenericUtils.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/debug/CodeGenericUtils.java @@ -21,24 +21,6 @@ */ public final class CodeGenericUtils { - /** - * - * @param object - * @param message - * @return - * @param - */ - public static T checkObjectNotNull(final T object, final String message) - { - if (object == null) - { - Log.writeDataToLogFile(2, "Object or class return null: " + message); - throw new NullPointerException(message); - } - - return object; - } - /** * * @param mobMap @@ -138,38 +120,4 @@ public static T as(Object getObject, Class getClass) { return getClass.isInstance(getObject) ? getClass.cast(getObject) : null; } - - /** - * - * @param provider - * @param capability - * @param facing - * @return - * @param - */ - @Nullable - public static T fetchCapability(@Nullable ICapabilityProvider provider, Capability capability, @Nullable EnumFacing facing) - { - return provider != null && provider.hasCapability(capability, facing) ? provider.getCapability(capability, facing) : null; - } - - /** - * - * @param worldIn - * @param pos - * @param capability - * @param facing - * @return - * @param - */ - @Nullable - public static T fetchCapability(World worldIn, BlockPos pos, Capability capability, @Nullable EnumFacing facing) - { - TileEntity tileentity = worldIn.getTileEntity(pos); - return fetchCapability(tileentity, capability, facing); - } - - public static T getValueOrDefault(T value, T defaultValue) { - return value == null ? defaultValue : value; - } } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/debug/events/OnEventDummy.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/debug/events/OnEventDummy.java index 2a5a147..fe26940 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/debug/events/OnEventDummy.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/debug/events/OnEventDummy.java @@ -4,14 +4,15 @@ import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import org.imesense.dynamicspawncontrol.ai.zombie.AIZombieBreakTorchTask; +import org.imesense.dynamicspawncontrol.ProjectStructure; +import org.imesense.dynamicspawncontrol.ai.zombie.entityaibase.BreakTorchTask; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnEventDummy { /** @@ -34,15 +35,4 @@ public OnEventDummy() instanceExists = true; } - - // перенести это в отдельный класс - @SubscribeEvent - public static void onZombieSpawn(EntityJoinWorldEvent event) - { - if (event.getEntity() instanceof EntityZombie) - { - EntityZombie zombie = (EntityZombie) event.getEntity(); - zombie.tasks.addTask(1, new AIZombieBreakTorchTask(zombie)); //-' Добавляем новую задачу для зомби - } - } } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/events/OnUpdateTorchLogic.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/events/OnUpdateTorchLogic.java index ae8b2cd..619cc4e 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/events/OnUpdateTorchLogic.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/events/OnUpdateTorchLogic.java @@ -16,6 +16,7 @@ import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.gameplay.commands.cmdServerSingleScriptsReload; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -23,7 +24,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnUpdateTorchLogic { /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/items/DSCWeb.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/items/DSCWeb.java index 1d91c4d..b9c5897 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/items/DSCWeb.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/items/DSCWeb.java @@ -9,19 +9,40 @@ import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; import net.minecraft.world.World; -import org.imesense.dynamicspawncontrol.ai.spider.utils.attackweb.EntityThrowableWeb; +import org.imesense.dynamicspawncontrol.ai.spider.util.attackweb.EntityThrowableWeb; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.customlibrary.ObjectHandler; +import javax.annotation.Nonnull; +import java.util.Objects; + +/** + * + */ public final class DSCWeb extends Item { + /** + * + */ public DSCWeb() { + CodeGenericUtils.printInitClassToLog(this.getClass()); + this.maxStackSize = 1; this.setCreativeTab(CreativeTabs.MISC); + ObjectHandler.RegistrationHandler.nameHelper(this, "dynamicspawncontrol:webbing"); } - public ActionResult onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) + /** + * + * @param worldIn + * @param playerIn + * @param handIn + * @return + */ + @Nonnull + public ActionResult onItemRightClick(@Nonnull World worldIn, EntityPlayer playerIn, @Nonnull EnumHand handIn) { ItemStack itemstack = playerIn.getHeldItem(handIn); @@ -31,8 +52,8 @@ public ActionResult onItemRightClick(World worldIn, EntityPlayer play } EntityThrowableWeb.sling(worldIn, playerIn); - playerIn.addStat(StatList.getObjectUseStats(this)); + playerIn.addStat(Objects.requireNonNull(StatList.getObjectUseStats(this))); - return new ActionResult(EnumActionResult.SUCCESS, itemstack); + return new ActionResult<>(EnumActionResult.SUCCESS, itemstack); } } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/recipes/CraftItemWeb.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/recipes/CraftItemWeb.java index c300eaf..4bd7d87 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/recipes/CraftItemWeb.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/recipes/CraftItemWeb.java @@ -6,8 +6,14 @@ import net.minecraftforge.fml.common.registry.GameRegistry; import org.imesense.dynamicspawncontrol.technical.customlibrary.ObjectHandler; +/** + * + */ public final class CraftItemWeb implements IRecipes { + /** + * + */ @Override public void registry() { diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/recipes/IRecipes.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/recipes/IRecipes.java index 8aff1e4..101eee8 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/recipes/IRecipes.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/recipes/IRecipes.java @@ -1,7 +1,13 @@ package org.imesense.dynamicspawncontrol.gameplay.recipes; +/** + * + */ @FunctionalInterface public interface IRecipes { + /** + * + */ void registry(); } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/CfgClassAbstract.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/CfgClassAbstract.java index a16eaf2..98ab67b 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/CfgClassAbstract.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/CfgClassAbstract.java @@ -1,6 +1,7 @@ package org.imesense.dynamicspawncontrol.technical.config; import org.imesense.dynamicspawncontrol.DynamicSpawnControl; +import org.imesense.dynamicspawncontrol.ProjectStructure; import java.io.File; @@ -40,8 +41,8 @@ public CfgClassAbstract(String nameConfigFile, final Boolean isConfigFolder) protected String constructPathToDirectory(final Boolean isConfigFolder) { return DynamicSpawnControl.getGlobalPathToConfigs().getPath() + File.separator + - DynamicSpawnControl.STRUCT_FILES_DIRS.NAME_DIRECTORY + File.separator + - (isConfigFolder ? DynamicSpawnControl.STRUCT_FILES_DIRS.NAME_DIR_CONFIGS : - DynamicSpawnControl.STRUCT_FILES_DIRS.NAME_DIR_PLUGINS) + File.separator; + ProjectStructure.STRUCT_FILES_DIRS.NAME_DIRECTORY + File.separator + + (isConfigFolder ? ProjectStructure.STRUCT_FILES_DIRS.NAME_DIR_CONFIGS : + ProjectStructure.STRUCT_FILES_DIRS.NAME_DIR_PLUGINS) + File.separator; } } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/blockgenerator/CfgBlockWorldGenerator.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/blockgenerator/CfgBlockWorldGenerator.java index eee8802..0b24ca6 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/blockgenerator/CfgBlockWorldGenerator.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/blockgenerator/CfgBlockWorldGenerator.java @@ -17,7 +17,7 @@ /** * */ -@DCSSingleConfig(fileName = "cfg_block_world_generator.json") +@DCSSingleConfig(fileName = "cfg_block_world_generator") public final class CfgBlockWorldGenerator extends CfgClassAbstract { /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/cachedameworld/CfgCacheWorldGame.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/cachedameworld/CfgCacheWorldGame.java index fdc9162..86f10ac 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/cachedameworld/CfgCacheWorldGame.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/cachedameworld/CfgCacheWorldGame.java @@ -17,7 +17,7 @@ /** * */ -@DCSSingleConfig(fileName = "cfg_cache_world_game.json") +@DCSSingleConfig(fileName = "cfg_cache_world_game") public final class CfgCacheWorldGame extends CfgClassAbstract { /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/gamedebugger/CfgGameDebugger.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/gamedebugger/CfgGameDebugger.java index a80b351..6d149bd 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/gamedebugger/CfgGameDebugger.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/gamedebugger/CfgGameDebugger.java @@ -15,7 +15,7 @@ /** * */ -@DCSSingleConfig(fileName = "cfg_game_debugger.json") +@DCSSingleConfig(fileName = "cfg_game_debugger") public final class CfgGameDebugger extends CfgClassAbstract { /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/gameworldtime/CfgPluginWorldTime.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/gameworldtime/CfgPluginWorldTime.java index 1158e5a..acc133e 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/gameworldtime/CfgPluginWorldTime.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/gameworldtime/CfgPluginWorldTime.java @@ -17,7 +17,7 @@ /** * */ -@DCSSingleConfig(fileName = "cfg_plugin_world_time.json") +@DCSSingleConfig(fileName = "cfg_plugin_world_time") public final class CfgPluginWorldTime extends CfgClassAbstract { /** @@ -87,9 +87,9 @@ public void saveToFile() { Files.createDirectories(configPath); } - catch (IOException e) + catch (IOException exception) { - throw new RuntimeException(e); + throw new RuntimeException(exception); } } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/logfile/CfgLogFile.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/logfile/CfgLogFile.java index b166078..37b9fcb 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/logfile/CfgLogFile.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/logfile/CfgLogFile.java @@ -18,7 +18,7 @@ /** * */ -@DCSSingleConfig(fileName = "cfg_log_file.json") +@DCSSingleConfig(fileName = "cfg_log_file") public final class CfgLogFile extends CfgClassAbstract { /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/player/CfgPlayer.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/player/CfgPlayer.java index cb9d812..ec7328d 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/player/CfgPlayer.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/player/CfgPlayer.java @@ -17,7 +17,7 @@ /** * */ -@DCSSingleConfig(fileName = "cfg_player.json") +@DCSSingleConfig(fileName = "cfg_player") public final class CfgPlayer extends CfgClassAbstract { /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/rendernight/CfgRenderNight.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/rendernight/CfgRenderNight.java index 97ec41c..e63a175 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/rendernight/CfgRenderNight.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/rendernight/CfgRenderNight.java @@ -17,7 +17,7 @@ /** * */ -@DCSSingleConfig(fileName = "cfg_render_night.json") +@DCSSingleConfig(fileName = "cfg_plugin_render_night") public final class CfgRenderNight extends CfgClassAbstract { /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/skeletondropitem/CfgSkeletonDropItem.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/skeletondropitem/CfgSkeletonDropItem.java index fa65312..b4f8470 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/skeletondropitem/CfgSkeletonDropItem.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/skeletondropitem/CfgSkeletonDropItem.java @@ -17,7 +17,7 @@ /** * */ -@DCSSingleConfig(fileName = "cfg_skeleton_drop_item.json") +@DCSSingleConfig(fileName = "cfg_skeleton_drop_item") public final class CfgSkeletonDropItem extends CfgClassAbstract { /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/spiderattackweb/CfgSpiderAttackWeb.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/spiderattackweb/CfgSpiderAttackWeb.java index 76cf522..9c37b31 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/spiderattackweb/CfgSpiderAttackWeb.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/spiderattackweb/CfgSpiderAttackWeb.java @@ -19,7 +19,7 @@ /** * */ -@DCSSingleConfig(fileName = "cfg_plugin_spider_attack_web.json") +@DCSSingleConfig(fileName = "cfg_plugin_spider_attack_web") public final class CfgSpiderAttackWeb extends CfgClassAbstract { /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/windowtitle/CfgWindowTitle.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/windowtitle/CfgWindowTitle.java index 85ca58a..17dac51 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/windowtitle/CfgWindowTitle.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/windowtitle/CfgWindowTitle.java @@ -17,7 +17,7 @@ /** * */ -@DCSSingleConfig(fileName = "cfg_window_title.json") +@DCSSingleConfig(fileName = "cfg_window_title") public final class CfgWindowTitle extends CfgClassAbstract { /** @@ -112,13 +112,13 @@ public void loadFromFile() Log.writeDataToLogFile(2, "settings_block_nether_rack is missing in the config file."); } } - catch (FileNotFoundException e) + catch (FileNotFoundException exception) { - Log.writeDataToLogFile(2, "File not found: " + e.getMessage()); + Log.writeDataToLogFile(2, "File not found: " + exception.getMessage()); } - catch (IOException e) + catch (IOException exception) { - Log.writeDataToLogFile(2, "IO Exception while loading: " + e.getMessage()); + Log.writeDataToLogFile(2, "IO Exception while loading: " + exception.getMessage()); } } } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/windowtitle/DataWindowTitle.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/windowtitle/DataWindowTitle.java index 6cfccce..a1f5f22 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/windowtitle/DataWindowTitle.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/windowtitle/DataWindowTitle.java @@ -1,6 +1,7 @@ package org.imesense.dynamicspawncontrol.technical.config.windowtitle; import org.imesense.dynamicspawncontrol.DynamicSpawnControl; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import javax.annotation.Nonnull; @@ -29,7 +30,7 @@ public static final class ConfigDataWindowTitle * */ private String windowTitle = - String.format("Minecraft: %s + %s", DynamicSpawnControl.STRUCT_INFO_MOD.VERSION, DynamicSpawnControl.STRUCT_INFO_MOD.NAME); + String.format("Minecraft: %s + %s", ProjectStructure.STRUCT_INFO_MOD.VERSION, ProjectStructure.STRUCT_INFO_MOD.NAME); /** * diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/zombiedropitem/CfgZombieDropItem.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/zombiedropitem/CfgZombieDropItem.java index 7b6bb72..1dee97c 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/zombiedropitem/CfgZombieDropItem.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/config/zombiedropitem/CfgZombieDropItem.java @@ -17,7 +17,7 @@ /** * */ -@DCSSingleConfig(fileName = "cfg_zombie_drop_item.json") +@DCSSingleConfig(fileName = "cfg_zombie_drop_item") public final class CfgZombieDropItem extends CfgClassAbstract { /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/Log.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/Log.java index f00a609..c698d6f 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/Log.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/Log.java @@ -1,6 +1,7 @@ package org.imesense.dynamicspawncontrol.technical.customlibrary; import org.imesense.dynamicspawncontrol.DynamicSpawnControl; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.technical.config.logfile.DataLogFile; import java.io.*; @@ -39,7 +40,7 @@ public static void createLogFile(final String path, boolean isDebugMode) { try { - File logsDirectory = new File(path, DynamicSpawnControl.STRUCT_FILES_DIRS.NAME_DIR_LOGS); + File logsDirectory = new File(path, ProjectStructure.STRUCT_FILES_DIRS.NAME_DIR_LOGS); if (!logsDirectory.exists()) { @@ -62,7 +63,7 @@ public static void createLogFile(final String path, boolean isDebugMode) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); String currentDate = dateFormat.format(new Date()); - String fileName = logsDirectory + "/log_" + currentDate + DynamicSpawnControl.STRUCT_FILES_EXTENSION.LOG_FILE_EXTENSION; + String fileName = logsDirectory + "/log_" + currentDate + ProjectStructure.STRUCT_FILES_EXTENSION.LOG_FILE_EXTENSION; logFile = new File(fileName); } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/ObjectHandler.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/ObjectHandler.java index 21b197f..99442fe 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/ObjectHandler.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/ObjectHandler.java @@ -1,6 +1,5 @@ package org.imesense.dynamicspawncontrol.technical.customlibrary; - import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.init.SoundEvents; @@ -18,31 +17,72 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.registries.IForgeRegistry; -import org.imesense.dynamicspawncontrol.ai.spider.utils.attackweb.EntityThrowableWeb; +import org.imesense.dynamicspawncontrol.ProjectStructure; +import org.imesense.dynamicspawncontrol.ai.spider.util.attackweb.EntityThrowableWeb; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.gameplay.items.DSCWeb; import org.imesense.dynamicspawncontrol.technical.customlibrary.registrationhelpers.RegistrationHelpers; -@GameRegistry.ObjectHolder("dynamicspawncontrol") +/** + * + */ +@GameRegistry.ObjectHolder(ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class ObjectHandler { + /** + * + */ private static int entityID = 1; + + /** + * + */ public static Item webbing = null; + + /** + * + */ public static SoundEvent WEBBING_SHOOT; + + /** + * + */ public static SoundEvent WEBBING_STICK; + + /** + * + */ public static SoundEvent WEBBING_NONSTICK; - @Mod.EventBusSubscriber( - modid = "dynamicspawncontrol" - ) + /** + * + */ + @Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public static class RegistrationHandler extends RegistrationHelpers { + /** + * + */ + public RegistrationHandler() + { + CodeGenericUtils.printInitClassToLog(this.getClass()); + } + + /** + * + * @param event + */ @SubscribeEvent public static void registerItems(Register event) { IForgeRegistry registry = event.getRegistry(); - ObjectHandler.webbing = (Item)regHelper(registry, new DSCWeb()); + ObjectHandler.webbing = regHelper(registry, new DSCWeb()); } + /** + * + * @param event + */ @SubscribeEvent @SideOnly(Side.CLIENT) public static void registerRenders(ModelRegistryEvent event) @@ -50,17 +90,23 @@ public static void registerRenders(ModelRegistryEvent event) registerRender(ObjectHandler.webbing); RenderingRegistry.registerEntityRenderingHandler(EntityThrowableWeb.class, (manager) -> - { - return new RenderSnowball(manager, ObjectHandler.webbing, Minecraft.getMinecraft().getRenderItem()); - }); + new RenderSnowball<>(manager, ObjectHandler.webbing, Minecraft.getMinecraft().getRenderItem())); } + /** + * + * @param event + */ @SubscribeEvent public static void entityRegistration(Register event) { registerEntity(event.getRegistry()); } + /** + * + * @param registry + */ protected static void registerEntity(IForgeRegistry registry) { EntityEntry entry = @@ -71,6 +117,10 @@ protected static void registerEntity(IForgeRegistry registry) registry.register(entry); } + /** + * + * @param event + */ @SubscribeEvent public static void soundRegistration(Register event) { diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/SimpleCapabilityProvider.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/SimpleCapabilityProvider.java index 7e914f6..834539a 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/SimpleCapabilityProvider.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/SimpleCapabilityProvider.java @@ -1,53 +1,87 @@ package org.imesense.dynamicspawncontrol.technical.customlibrary; +import javax.annotation.Nonnull; import javax.annotation.Nullable; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.ICapabilitySerializable; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; +/** + * + * @param + */ public class SimpleCapabilityProvider implements ICapabilitySerializable { - private final Capability capability; - private final EnumFacing facing; - private final HANDLER instance; + /** + * + */ + private final HANDLER INSTANCE; - public SimpleCapabilityProvider() - { - this.capability = null; - this.facing = null; - this.instance = null; - } + /** + * + */ + private final EnumFacing FACING; - public SimpleCapabilityProvider(Capability capability, @Nullable EnumFacing facing) - { - this(capability, facing, capability != null ? capability.getDefaultInstance() : null); - } + /** + * + */ + private final Capability CAPABILITY; + /** + * + * @param capability + * @param facing + * @param instance + */ public SimpleCapabilityProvider(Capability capability, @Nullable EnumFacing facing, HANDLER instance) { - this.capability = capability; - this.instance = instance; - this.facing = facing; + this.CAPABILITY = capability; + this.INSTANCE = instance; + this.FACING = facing; } - public boolean hasCapability(Capability capability, @Nullable EnumFacing facing) + /** + * + * @param capability + * @param facing + * @return + */ + public boolean hasCapability(@Nonnull Capability capability, @Nullable EnumFacing facing) { - return capability != null && capability == this.getCapability(); + return capability == this.getCapability(); } + /** + * + * @param capability + * @param facing + * @return + * @param + */ @Nullable - public T getCapability(Capability capability, @Nullable EnumFacing facing) + public T getCapability(@Nonnull Capability capability, @Nullable EnumFacing facing) { - return this.hasCapability(capability, facing) ? this.getCapability().cast(this.getInstance()) : null; + return this.hasCapability(capability, facing) ? + this.getCapability().cast(this.getInstance()) : null; } + /** + * + * @return + */ public NBTBase serializeNBT() { - return (NBTBase)(this.getCapability() == null ? new NBTTagCompound() : this.getCapability().writeNBT(this.getInstance(), this.getFacing())); + return (this.getCapability() == null ? + new NBTTagCompound() : this.getCapability().writeNBT(this.getInstance(), this.getFacing())); } + /** + * + * @param nbt + */ public void deserializeNBT(NBTBase nbt) { if (this.getCapability() != null) @@ -56,19 +90,31 @@ public void deserializeNBT(NBTBase nbt) } } + /** + * + * @return + */ public final Capability getCapability() { - return this.capability; + return this.CAPABILITY; } + /** + * + * @return + */ @Nullable public EnumFacing getFacing() { - return this.facing; + return this.FACING; } + /** + * + * @return + */ public HANDLER getInstance() { - return this.instance; + return this.INSTANCE; } } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/registrationhelpers/IProcedure.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/registrationhelpers/IProcedure.java deleted file mode 100644 index 376703c..0000000 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/registrationhelpers/IProcedure.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.imesense.dynamicspawncontrol.technical.customlibrary.registrationhelpers; - -@FunctionalInterface -public interface IProcedure -{ - void run(); - - default IProcedure andThen(IProcedure after) - { - return () -> - { - this.run(); - after.run(); - }; - } - - default IProcedure compose(IProcedure before) - { - return () -> - { - before.run(); - this.run(); - }; - } -} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/registrationhelpers/RegistrationHelpers.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/registrationhelpers/RegistrationHelpers.java index a9b7410..4bdd7c0 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/registrationhelpers/RegistrationHelpers.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/registrationhelpers/RegistrationHelpers.java @@ -3,46 +3,52 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.fml.common.Loader; -import net.minecraftforge.fml.common.ModContainer; -import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.registries.GameData; import net.minecraftforge.registries.IForgeRegistry; import net.minecraftforge.registries.IForgeRegistryEntry; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; +import java.util.Objects; + +/** + * + */ public class RegistrationHelpers { - public static void run(IProcedure proc) + /** + * + */ + public RegistrationHelpers() { - proc.run(); + CodeGenericUtils.printInitClassToLog(this.getClass()); } - public static void cheat(IProcedure proc) + /** + * + * @param item + */ + @SideOnly(Side.CLIENT) + public static void registerRender(Item item) { - Loader l = Loader.instance(); - ModContainer k = l.activeModContainer(); - l.setActiveModContainer(l.getMinecraftModContainer()); - proc.run(); - l.setActiveModContainer(k); - } + assert item != null; - public static void setRegNameIllegally(IForgeRegistryEntry entry, String name) - { - cheat(() -> - { - entry.setRegistryName(new ResourceLocation("minecraft", name)); - }); + ModelResourceLocation loc = + new ModelResourceLocation(Objects.requireNonNull(item.getRegistryName()), "inventory"); + + ModelLoader.setCustomModelResourceLocation(item, 0, loc); } + /** + * + * @param registry + * @param thing + * @return + * @param + */ public static > T regHelper(IForgeRegistry registry, T thing) { assert thing != null; @@ -51,89 +57,13 @@ public static > T regHelper(IForgeRegistry r return thing; } - public static Item registerOreNames(Item thing, String[] oreNames) - { - assert thing != null; - - String[] var2 = oreNames; - int var3 = oreNames.length; - - for(int var4 = 0; var4 < var3; ++var4) - { - String oreName = var2[var4]; - OreDictionary.registerOre(oreName, thing); - } - - return thing; - } - - public static ItemStack registerOreNames(ItemStack thing, String[] oreNames) - { - assert thing != null; - - String[] var2 = oreNames; - int var3 = oreNames.length; - - for(int var4 = 0; var4 < var3; ++var4) - { - String oreName = var2[var4]; - OreDictionary.registerOre(oreName, thing); - } - - return thing; - } - - public static Item regHelperOre(IForgeRegistry registry, Item thing, String[] oreNames) - { - assert thing != null; - - registry.register(thing); - return registerOreNames(thing, oreNames); - } - - public static > T regHelper(IForgeRegistry registry, T thing, String name) - { - return regHelper(registry, thing, name, true); - } - - public static > T regHelper(IForgeRegistry registry, T thing, String name, boolean doTransKey, boolean shouldCheat) - { - assert thing != null; - - assert name != null; - - IProcedure nameIt = () -> - { - nameHelper(thing, name, doTransKey); - }; - - if (shouldCheat) - { - cheat(nameIt); - } - else - { - run(nameIt); - } - - return regHelper(registry, thing); - } - - public static > T regHelper(IForgeRegistry registry, T thing, String name, boolean doTransKey) - { - return regHelper(registry, thing, name, doTransKey, false); - } - - public static > T regHelper(IForgeRegistry registry, T thing, ResourceLocation loc) - { - assert thing != null; - - assert loc != null; - - nameHelper(thing, loc, true); - return regHelper(registry, thing); - } - + /** + * + * @param thing + * @param loc + * @param doTransKey + * @param + */ public static > void nameHelper(T thing, ResourceLocation loc, boolean doTransKey) { assert thing != null; @@ -144,113 +74,45 @@ public static > void nameHelper(T thing, Resour if (doTransKey) { - String dotname = loc.getResourceDomain() + "." + loc.getResourcePath(); + String dotName = loc.getResourceDomain() + "." + loc.getResourcePath(); if (thing instanceof Block) { - ((Block)thing).setUnlocalizedName(dotname); + ((Block)thing).setUnlocalizedName(dotName); } else if (thing instanceof Item) { - ((Item)thing).setUnlocalizedName(dotname); + ((Item)thing).setUnlocalizedName(dotName); } } } - public static > void nameHelper(T thing, ResourceLocation loc) - { - nameHelper(thing, loc, true); - } - + /** + * + * @param thing + * @param name + * @param doTransKey + * @param + */ public static > void nameHelper(T thing, String name, boolean doTransKey) { assert thing != null; - assert name != null; + @Deprecated ResourceLocation loc = GameData.checkPrefix(name); + nameHelper(thing, loc, doTransKey); } + /** + * + * @param thing + * @param name + * @param + */ public static > void nameHelper(T thing, String name) { nameHelper(thing, name, true); } - - public static SoundEvent registerSound(IForgeRegistry registry, String name) - { - assert name != null; - - ResourceLocation loc = GameData.checkPrefix(name); - SoundEvent event = new SoundEvent(loc); - regHelper(registry, event, (ResourceLocation)loc); - return event; - } - - @SideOnly(Side.CLIENT) - public static void registerRender(Item item) - { - assert item != null; - - ModelResourceLocation loc = new ModelResourceLocation(item.getRegistryName(), "inventory"); - ModelLoader.setCustomModelResourceLocation(item, 0, loc); - } - - @SideOnly(Side.CLIENT) - public static void registerRender(Block block) - { - assert block != null; - - Item item = Item.getItemFromBlock(block); - registerRender(block, item); - } - - @SideOnly(Side.CLIENT) - public static void registerRender(Block block, Item item) - { - assert block != null; - - assert item != null; - - ModelResourceLocation loc = new ModelResourceLocation(item.getRegistryName(), "inventory"); - ModelLoader.setCustomModelResourceLocation(item, 0, loc); - } - - public static ItemBlock registerItemBlock(IForgeRegistry registry, Block block) - { - assert block != null; - - ItemBlock item = new ItemBlock(block); - regHelper(registry, item, (ResourceLocation)block.getRegistryName()); - return item; - } - - public static ItemBlock registerItemBlockOre(IForgeRegistry registry, Block block, String[] oreNames) - { - assert block != null; - - ItemBlock item = registerItemBlock(registry, block); - String[] var4 = oreNames; - int var5 = oreNames.length; - - for(int var6 = 0; var6 < var5; ++var6) - { - String oreName = var4[var6]; - OreDictionary.registerOre(oreName, item); - OreDictionary.registerOre(oreName, block); - } - - return item; - } - - public static void registerTileEntity(Class tileEntityClass, String key) - { - assert key != null; - - ResourceLocation loc = GameData.checkPrefix(key); - - assert loc != null; - - GameRegistry.registerTileEntity(tileEntityClass, loc); - } } \ No newline at end of file diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/EntityThing.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/EntityThing.java deleted file mode 100644 index d89f05e..0000000 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/EntityThing.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.imesense.dynamicspawncontrol.technical.customlibrary.thing; - -import net.minecraft.entity.Entity; -//import org.imesense.dynamicspawncontrol.technical.config.spiderattackweb.MatchingConfig; - -import java.util.ArrayList; - -public final class EntityThing extends EntityThingBase implements IThing -{ - public EntityThing(Entity entity) - { - super(entity); - } - - //public ArrayList getNameKeys() { - // return MatchingConfig.getNameKeys(this.owner); - //} -} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/EntityThingBase.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/EntityThingBase.java index 0e34e37..23ffebd 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/EntityThingBase.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/EntityThingBase.java @@ -4,74 +4,33 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.capabilities.ICapabilityProvider; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; +/** + * + */ public class EntityThingBase implements IThingBase { + /** + * + */ public Entity owner; + /** + * + * @param ownerIn + */ public EntityThingBase(Entity ownerIn) { this.owner = ownerIn; } - public World getWorld() - { - return this.owner != null ? this.owner.getEntityWorld() : null; - } - - public BlockPos getPos() - { - return this.owner != null ? this.owner.getPosition() : null; - } - - public boolean isInvalid() - { - return this.owner == null || this.owner.isDead; - } - - public void markDirty() - { - - } - - public void invalidate() - { - if (this.owner != null) - { - this.owner.setDead(); - } - - this.owner = null; - } - - public boolean sameAs(IThing entity) - { - if (entity instanceof EntityThingBase) - { - return this.owner == ((EntityThingBase)entity).owner; - } - else - { - return false; - } - } - - public Object object() - { - return this.owner; - } - + /** + * + * @return + */ public ICapabilityProvider capProvider() { return this.owner; } - - public void forceUpdate() - { - if (this.owner != null) - { - BlockPos pos = this.getPos(); - this.owner.setPositionAndUpdate((double)pos.getX(), (double)pos.getY(), (double)pos.getZ()); - } - } } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/IThing.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/IThing.java deleted file mode 100644 index 4140f87..0000000 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/IThing.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.imesense.dynamicspawncontrol.technical.customlibrary.thing; - -import java.util.ArrayList; - -public interface IThing extends IThingBase -{ - //ArrayList getNameKeys(); -} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/IThingBase.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/IThingBase.java index 0e4a1f2..82f817b 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/IThingBase.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/IThingBase.java @@ -1,7 +1,5 @@ package org.imesense.dynamicspawncontrol.technical.customlibrary.thing; -//import com.wumple.util.base.misc.Util; -//import com.wumple.util.capability.CapabilityUtils; import javax.annotation.Nonnull; import javax.annotation.Nullable; import net.minecraft.util.EnumFacing; @@ -9,66 +7,41 @@ import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.ICapabilityProvider; -import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; +/** + * + */ public interface IThingBase extends ICapabilityProvider { - World getWorld(); - - BlockPos getPos(); - - boolean isInvalid(); - - void markDirty(); - - void invalidate(); - - boolean sameAs(IThing var1); - - Object object(); - - default World getWorldBackup(World otherWorld) - { - World myWorld = this.getWorld(); - return myWorld != null ? myWorld : otherWorld; - } - - default int getCount() - { - return 1; - } - - default T as(Class t) - { - return CodeGenericUtils.as(this.object(), t); - } - - default boolean is(Class t) - { - return t.isInstance(this.object()); - } - + /** + * + * @return + */ ICapabilityProvider capProvider(); + /** + * + * @param capability + * @param facing + * @return + */ default boolean hasCapability(@Nonnull Capability capability, @Nullable EnumFacing facing) { ICapabilityProvider provider = this.capProvider(); - return provider != null ? provider.hasCapability(capability, facing) : false; + return provider != null && provider.hasCapability(capability, facing); } + /** + * + * @param capability + * @param facing + * @return + * @param + */ @Nullable default T getCapability(@Nonnull Capability capability, @Nullable EnumFacing facing) { ICapabilityProvider provider = this.capProvider(); return provider != null ? provider.getCapability(capability, facing) : null; } - - @Nullable - default T fetchCapability(@Nonnull Capability capability, @Nullable EnumFacing facing) - { - ICapabilityProvider provider = this.capProvider(); - return CodeGenericUtils.fetchCapability(provider, capability, facing); - } - - void forceUpdate(); } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/TileEntityThing.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/TileEntityThing.java deleted file mode 100644 index 1edb710..0000000 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/TileEntityThing.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.imesense.dynamicspawncontrol.technical.customlibrary.thing; - -import java.util.ArrayList; -import net.minecraft.tileentity.TileEntity; -//import org.imesense.dynamicspawncontrol.technical.config.spiderattackweb.MatchingConfig; - -public final class TileEntityThing extends TileEntityThingBase implements IThing -{ - public TileEntityThing(TileEntity ownerIn) { - super(ownerIn); - } - - // public ArrayList getNameKeys() { - // return MatchingConfig.getNameKeys(this.owner); - //} -} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/TileEntityThingBase.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/TileEntityThingBase.java index 48876ae..66c6196 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/TileEntityThingBase.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/customlibrary/thing/TileEntityThingBase.java @@ -5,98 +5,33 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.capabilities.ICapabilityProvider; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; +/** + * + */ public class TileEntityThingBase implements IThingBase { - public TileEntity owner = null; - + /** + * + */ + public final TileEntity OWNER; + + /** + * + * @param ownerIn + */ public TileEntityThingBase(TileEntity ownerIn) { - this.owner = ownerIn; - } - - public World getWorld() - { - return this.owner != null ? this.owner.getWorld() : null; - } - - public BlockPos getPos() - { - return this.owner != null ? this.owner.getPos() : null; - } - - public boolean isInvalid() - { - return this.owner == null || this.owner.isInvalid(); - } - - public void markDirty() - { - if (this.owner != null) - { - this.owner.markDirty(); - } - - } - - public void invalidate() - { - if (this.owner != null) - { - World world = this.getWorld(); - BlockPos pos = this.getPos(); - - if (world != null && pos != null) - { - world.setBlockToAir(pos); - world.removeTileEntity(pos); - } - - this.owner.invalidate(); - this.owner.updateContainingBlockInfo(); - } - - this.owner = null; - } - - public boolean sameAs(IThing entity) - { - if (entity instanceof TileEntityThingBase) - { - return this.owner == ((TileEntityThingBase)entity).owner; - } - else - { - return false; - } - } - - public Object object() - { - return this.owner; + this.OWNER = ownerIn; } + /** + * + * @return + */ public ICapabilityProvider capProvider() { - return this.owner; - } - - public void forceUpdate() - { - if (this.owner != null) - { - BlockPos pos = this.getPos(); - World world = this.getWorld(); - - if (world != null && pos != null) - { - IBlockState state = world.getBlockState(pos); - world.markBlockRangeForRenderUpdate(pos, pos); - world.notifyBlockUpdate(pos, state, state, 3); - world.scheduleBlockUpdate(pos, this.owner.getBlockType(), 0, 0); - } - - this.owner.markDirty(); - } + return this.OWNER; } } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnComplexityBiomes.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnComplexityBiomes.java index a2954fb..9efc720 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnComplexityBiomes.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnComplexityBiomes.java @@ -9,6 +9,7 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -17,7 +18,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnComplexityBiomes { //* TODO: Реализовать 'высоту' сложности, например 5 черепков от 5 до 20 высота в шахте и так далее @@ -82,8 +83,8 @@ public OnComplexityBiomes() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) - public void onPlayerTick(LivingEvent.LivingUpdateEvent event) + @SubscribeEvent + public synchronized void onPlayerTick(LivingEvent.LivingUpdateEvent event) { if (event.getEntity() instanceof EntityPlayerMP) { @@ -111,8 +112,8 @@ public void onPlayerTick(LivingEvent.LivingUpdateEvent event) * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) - public void onRenderOverlay(RenderGameOverlayEvent.Text event) + @SubscribeEvent + public synchronized void onRenderOverlay(RenderGameOverlayEvent.Text event) { long currentTime = System.currentTimeMillis(); @@ -146,10 +147,17 @@ public void onRenderOverlay(RenderGameOverlayEvent.Text event) ResourceLocation[] skullTextures = { - new ResourceLocation("dynamicspawncontrol", "textures/gui/red_skull.png"), - new ResourceLocation("dynamicspawncontrol", "textures/gui/orange_skull.png"), - new ResourceLocation("dynamicspawncontrol", "textures/gui/red_skull_part.png"), - new ResourceLocation("dynamicspawncontrol", "textures/gui/orange_skull_part.png") + new ResourceLocation("dynamicspawncontrol", + "textures/gui/red_skull.png"), + + new ResourceLocation("dynamicspawncontrol", + "textures/gui/orange_skull.png"), + + new ResourceLocation("dynamicspawncontrol", + "textures/gui/red_skull_part.png"), + + new ResourceLocation("dynamicspawncontrol", + "textures/gui/orange_skull_part.png") }; int totalSkulls = skullCounts[0] + skullCounts[1] + skullCounts[2] + skullCounts[3]; @@ -231,6 +239,8 @@ private int getOrangeSkullCountForBiome(Biome biome) return 1; case "Savanna": return 1; + case "Savanna Plateau": + return 3; case "Desert": return 2; case "Swampland": diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnDropSkeletonItems.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnDropSkeletonItems.java index eb849df..cd25090 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnDropSkeletonItems.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnDropSkeletonItems.java @@ -9,6 +9,7 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.skeletondropitem.DataSkeletonDropItem; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -19,7 +20,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnDropSkeletonItems { /** @@ -47,7 +48,7 @@ public OnDropSkeletonItems() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdateLivingDropsEvent_0(LivingDropsEvent event) { if (event.getEntity() instanceof EntitySkeleton) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnDropZombieItems.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnDropZombieItems.java index 3f7152e..c607802 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnDropZombieItems.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnDropZombieItems.java @@ -9,6 +9,7 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.zombiedropitem.DataZombieDropItem; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -19,7 +20,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnDropZombieItems { /** @@ -47,7 +48,7 @@ public OnDropZombieItems() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdateLivingDropsEvent_0(LivingDropsEvent event) { if (event.getEntity() instanceof EntityZombie) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnPlayerEvents.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnPlayerEvents.java index 1ea63a2..6e28150 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnPlayerEvents.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnPlayerEvents.java @@ -13,6 +13,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent; import net.minecraftforge.fml.common.network.FMLNetworkEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.player.DataPlayer; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -23,7 +24,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnPlayerEvents { /** @@ -56,7 +57,7 @@ public OnPlayerEvents() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdateEntityJoinWorld_0(EntityJoinWorldEvent event) { if (event.getEntity() instanceof EntityPlayerMP && !(event.getEntity() instanceof FakePlayer)) @@ -75,7 +76,7 @@ public synchronized void onUpdateEntityJoinWorld_0(EntityJoinWorldEvent event) * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdatePlayerLoggedOut_1(PlayerEvent.PlayerLoggedOutEvent event) { EntityPlayerMP player = (EntityPlayerMP) event.player; @@ -87,7 +88,7 @@ public synchronized void onUpdatePlayerLoggedOut_1(PlayerEvent.PlayerLoggedOutEv * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdatePlayerLogin_0(FMLNetworkEvent.ClientConnectedToServerEvent event) { Log.writeDataToLogFile(0, "ClientConnectedToServerEvent " + event); @@ -97,7 +98,7 @@ public synchronized void onUpdatePlayerLogin_0(FMLNetworkEvent.ClientConnectedTo * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdatePlayerLoginServer_0(PlayerEvent.PlayerLoggedInEvent event) { Log.writeDataToLogFile(0, "PlayerLoggedInEvent " + event.player.getName() + " logged in."); @@ -107,7 +108,7 @@ public synchronized void onUpdatePlayerLoginServer_0(PlayerEvent.PlayerLoggedInE * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdatePlayerLogout_0(FMLNetworkEvent.ClientDisconnectionFromServerEvent event) { Log.writeDataToLogFile(0, "ClientDisconnectionFromServerEvent " + event); @@ -117,8 +118,8 @@ public synchronized void onUpdatePlayerLogout_0(FMLNetworkEvent.ClientDisconnect * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) - public void onPlayerRespawn_0(PlayerEvent.PlayerRespawnEvent event) + @SubscribeEvent + public synchronized void onPlayerRespawn_0(PlayerEvent.PlayerRespawnEvent event) { EntityPlayerMP player = (EntityPlayerMP) event.player; World world = player.world; diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnUpdateTimeWorld.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnUpdateTimeWorld.java index d325517..121fb1d 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnUpdateTimeWorld.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnUpdateTimeWorld.java @@ -15,6 +15,7 @@ import net.minecraftforge.fml.common.gameevent.PlayerEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; import net.minecraftforge.fml.relauncher.Side; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.gameplay.gameworld.WorldTime; import org.imesense.dynamicspawncontrol.technical.config.gameworldtime.DataPluginWorldTime; @@ -27,7 +28,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnUpdateTimeWorld { /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnWindowTitle.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnWindowTitle.java index 1fad438..7d3361e 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnWindowTitle.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/primitive/OnWindowTitle.java @@ -6,6 +6,7 @@ import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.windowtitle.DataWindowTitle; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -17,7 +18,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnWindowTitle { /** @@ -51,7 +52,7 @@ public OnWindowTitle() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdateClientTick_0(TickEvent.ClientTickEvent event) { replace(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnBlockBreakEvent.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnBlockBreakEvent.java index 3563c1f..19b51a5 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnBlockBreakEvent.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnBlockBreakEvent.java @@ -7,6 +7,7 @@ import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.gamedebugger.DataGameDebugger; @@ -17,7 +18,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnBlockBreakEvent { /** @@ -45,7 +46,7 @@ public OnBlockBreakEvent() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdateBlockBreakEvent_0(BlockEvent.BreakEvent event) { if (event.getWorld().isRemote) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnBlockPlaceEvent.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnBlockPlaceEvent.java index a2a3f15..d35c618 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnBlockPlaceEvent.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnBlockPlaceEvent.java @@ -7,6 +7,7 @@ import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.gamedebugger.DataGameDebugger; @@ -17,7 +18,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnBlockPlaceEvent { /** @@ -46,7 +47,7 @@ public OnBlockPlaceEvent() * @param event */ @Deprecated - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdateBlockPaceEvent_0(BlockEvent.PlaceEvent event) { if (event.getWorld().isRemote) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnEntitySpawnEvent.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnEntitySpawnEvent.java index 65f5c40..bd51c6e 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnEntitySpawnEvent.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnEntitySpawnEvent.java @@ -7,6 +7,7 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.gamedebugger.DataGameDebugger; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -16,7 +17,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnEntitySpawnEvent { /** @@ -44,7 +45,7 @@ public OnEntitySpawnEvent() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdateEntitySpawnEvent_0(LivingSpawnEvent.CheckSpawn event) { if (event.getWorld().isRemote) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnLeftClickEvent.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnLeftClickEvent.java index a34fdf0..1a45a07 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnLeftClickEvent.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnLeftClickEvent.java @@ -7,6 +7,7 @@ import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.gamedebugger.DataGameDebugger; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -16,7 +17,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnLeftClickEvent { /** @@ -44,7 +45,7 @@ public OnLeftClickEvent() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdateLeftClickEvent_0(PlayerInteractEvent.LeftClickBlock event) { if (event.getWorld().isRemote) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnLivingDrops.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnLivingDrops.java index aebb813..b8b6375 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnLivingDrops.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnLivingDrops.java @@ -13,6 +13,7 @@ import net.minecraftforge.event.entity.living.LivingDropsEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.gamedebugger.DataGameDebugger; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -22,7 +23,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnLivingDrops { /** @@ -50,7 +51,7 @@ public OnLivingDrops() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdateLivingDrops_0(LivingDropsEvent event) { AtomicInteger i = new AtomicInteger(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnLivingExperienceDrop.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnLivingExperienceDrop.java index a7219a3..04a9994 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnLivingExperienceDrop.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnLivingExperienceDrop.java @@ -7,6 +7,7 @@ import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.event.entity.living.LivingExperienceDropEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.gamedebugger.DataGameDebugger; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -16,7 +17,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnLivingExperienceDrop { /** @@ -44,7 +45,7 @@ public OnLivingExperienceDrop() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdateLivingExperienceDrop_0(LivingExperienceDropEvent event) { AtomicInteger i = new AtomicInteger(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnMobTaskManager.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnMobTaskManager.java index bcaec81..2f48e91 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnMobTaskManager.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnMobTaskManager.java @@ -7,6 +7,7 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; import org.imesense.dynamicspawncontrol.technical.eventprocessor.generic.GenericMobTaskManager; @@ -15,7 +16,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnMobTaskManager { /** @@ -43,7 +44,7 @@ public OnMobTaskManager() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdateEntityJoinWorld_0(EntityJoinWorldEvent event) { if (!(event.getEntity() instanceof EntityLiving)) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnPlayerTick.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnPlayerTick.java index 2584082..a292813 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnPlayerTick.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnPlayerTick.java @@ -8,6 +8,7 @@ import net.minecraftforge.fml.common.gameevent.TickEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.gamedebugger.DataGameDebugger; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -17,7 +18,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnPlayerTick { /** @@ -37,7 +38,7 @@ public OnPlayerTick() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdatePlayerTick_0(TickEvent.PlayerTickEvent event) { if (event.phase != TickEvent.Phase.END || event.side != Side.SERVER) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnPotentialSpawn.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnPotentialSpawn.java index 7f1d4bd..e98f711 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnPotentialSpawn.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnPotentialSpawn.java @@ -10,6 +10,7 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.gamedebugger.DataGameDebugger; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -21,7 +22,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnPotentialSpawn { /** @@ -50,7 +51,7 @@ public OnPotentialSpawn() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdatePotentialSpawns_0(WorldEvent.PotentialSpawns event) { if (event.getWorld().isRemote) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnRightClickEvent.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnRightClickEvent.java index b94ea53..26d2678 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnRightClickEvent.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/multiple/OnRightClickEvent.java @@ -7,6 +7,7 @@ import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.gamedebugger.DataGameDebugger; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -16,7 +17,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnRightClickEvent { /** @@ -44,7 +45,7 @@ public OnRightClickEvent() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onUpdateRightClickEvent_0(PlayerInteractEvent.RightClickBlock event) { if (event.getWorld().isRemote) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/single/OnSingleJsonCheckSpawn.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/single/OnSingleJsonCheckSpawn.java index ff1a6ef..ae32579 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/single/OnSingleJsonCheckSpawn.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/single/OnSingleJsonCheckSpawn.java @@ -7,6 +7,7 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; import org.imesense.dynamicspawncontrol.technical.parsers.GeneralStorageData; @@ -16,7 +17,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnSingleJsonCheckSpawn { /** @@ -44,7 +45,7 @@ public OnSingleJsonCheckSpawn() * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) + @SubscribeEvent public synchronized void onCheckSpawn_0(LivingSpawnEvent.CheckSpawn event) { if (event.getWorld().isRemote) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/single/OnSingleZombieSummonAID.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/single/OnSingleZombieSummonAID.java index 295d563..7495e16 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/single/OnSingleZombieSummonAID.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/script/single/OnSingleZombieSummonAID.java @@ -13,6 +13,7 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; import org.imesense.dynamicspawncontrol.technical.parsers.GeneralStorageData; @@ -22,7 +23,7 @@ /** * */ -@Mod.EventBusSubscriber +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class OnSingleZombieSummonAID { /** @@ -124,8 +125,8 @@ public boolean hasSufficientSpace(World world, BlockPos pos, int width, int heig * * @param event */ - @SubscribeEvent(priority = EventPriority.LOWEST) - public void onZombieAttack_0(LivingAttackEvent event) + @SubscribeEvent + public synchronized void onZombieAttack_0(LivingAttackEvent event) { if (event.getEntityLiving() instanceof EntityZombie) { diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterCfgClasses.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterConfigClasses.java similarity index 86% rename from dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterCfgClasses.java rename to dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterConfigClasses.java index 73f3e9a..790dff2 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterCfgClasses.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterConfigClasses.java @@ -1,5 +1,6 @@ package org.imesense.dynamicspawncontrol.technical.initializer; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.blockgenerator.CfgBlockWorldGenerator; import org.imesense.dynamicspawncontrol.technical.config.cachedameworld.CfgCacheWorldGame; @@ -20,7 +21,7 @@ /** * */ -public final class RegisterCfgClasses +public final class RegisterConfigClasses { /** * @@ -43,7 +44,7 @@ public final class RegisterCfgClasses /** * */ - public RegisterCfgClasses() + public RegisterConfigClasses() { CodeGenericUtils.printInitClassToLog(this.getClass()); } @@ -71,10 +72,10 @@ private static void initializeConfig(Class configClass) if (configClass.isAnnotationPresent(DCSSingleConfig.class)) { DCSSingleConfig configAnnotation = configClass.getAnnotation(DCSSingleConfig.class); - String configFileName = configAnnotation.fileName(); + String configFileName = configAnnotation.fileName() + ProjectStructure.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION; Constructor constructor = configClass.getConstructor(String.class); - T configInstance = constructor.newInstance(configFileName); + final T configInstance = constructor.newInstance(configFileName); Log.writeDataToLogFile(0, "Initialized config: " + configFileName); Log.writeDataToLogFile(0, "configClass: " + configClass + " " + configInstance); @@ -84,14 +85,14 @@ private static void initializeConfig(Class configClass) Log.writeDataToLogFile(2, "No ConfigClass annotation found in: " + configClass.getName()); } } - catch (NoSuchMethodException e) + catch (NoSuchMethodException exception) { - Log.writeDataToLogFile(2, "Constructor with String parameter not found in class: " + configClass.getName() + " - " + e.getMessage()); + Log.writeDataToLogFile(2, "Constructor with String parameter not found in class: " + configClass.getName() + " - " + exception.getMessage()); } - catch (Exception e) + catch (Exception exception) { - Log.writeDataToLogFile(2, "Exception in class: " + configClass.getName() + " - " + e.getMessage()); - throw new RuntimeException(e); + Log.writeDataToLogFile(2, "Exception in class: " + configClass.getName() + " - " + exception.getMessage()); + throw new RuntimeException(exception); } } } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterGameplayClasses.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterGameplayClasses.java index 98f3512..047c5f4 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterGameplayClasses.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterGameplayClasses.java @@ -1,7 +1,6 @@ package org.imesense.dynamicspawncontrol.technical.initializer; import net.minecraftforge.common.MinecraftForge; -import org.imesense.dynamicspawncontrol.ai.skeleton.AISkeletonAddFovTask; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.gameplay.events.OnUpdateTorchLogic; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -22,8 +21,7 @@ public final class RegisterGameplayClasses OnUpdateTorchLogic.class, OnDropZombieItems.class, OnDropSkeletonItems.class, - OnComplexityBiomes.class, - AISkeletonAddFovTask.class + OnComplexityBiomes.class }; /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/network/PlayerInWebMessage.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/network/PlayerInWebMessage.java index 4184e9b..89a45d4 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/network/PlayerInWebMessage.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/network/PlayerInWebMessage.java @@ -9,26 +9,48 @@ import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; import net.minecraftforge.fml.relauncher.Side; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; -public class PlayerInWebMessage implements IMessage +/** + * + */ +public final class PlayerInWebMessage implements IMessage { + /** + * + */ public BlockPos pos; + /** + * + */ public PlayerInWebMessage() { - + CodeGenericUtils.printInitClassToLog(this.getClass()); } + /** + * + * @param pos + */ public PlayerInWebMessage(BlockPos pos) { this.pos = pos; } + /** + * + * @param buf + */ public void fromBytes(ByteBuf buf) { this.pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt()); } + /** + * + * @param buf + */ public void toBytes(ByteBuf buf) { buf.writeInt(this.pos.getX()); @@ -36,23 +58,46 @@ public void toBytes(ByteBuf buf) buf.writeInt(this.pos.getZ()); } + /** + * + * @param netWrapper + */ public static void register(SimpleNetworkWrapper netWrapper) { - netWrapper.registerMessage(PlayerInWebMessage.Handler.class, PlayerInWebMessage.class, 0, Side.CLIENT); + netWrapper.registerMessage(PlayerInWebMessage.Handler.class, + PlayerInWebMessage.class, 0, Side.CLIENT); } + /** + * + */ public static class Handler implements IMessageHandler { + /** + * + * @param msg The message + * @param ctx + * @return + */ public IMessage onMessage(final PlayerInWebMessage msg, MessageContext ctx) { - final Minecraft mc = Minecraft.getMinecraft(); + /** + * + */ + Minecraft getMinecraft = Minecraft.getMinecraft(); - mc.addScheduledTask(new Runnable() + /** + * + */ + getMinecraft.addScheduledTask(new Runnable() { + /** + * + */ public void run() { - mc.world.setBlockState(msg.pos, Blocks.WEB.getDefaultState()); - mc.player.setInWeb(); + getMinecraft.world.setBlockState(msg.pos, Blocks.WEB.getDefaultState()); + getMinecraft.player.setInWeb(); } }); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/IBetaParsers.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/IBetaParsers.java index 7d8ac03..7c22a5d 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/IBetaParsers.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/IBetaParsers.java @@ -1,6 +1,7 @@ package org.imesense.dynamicspawncontrol.technical.parsers; import org.imesense.dynamicspawncontrol.DynamicSpawnControl; +import org.imesense.dynamicspawncontrol.ProjectStructure; import java.io.File; @@ -29,10 +30,8 @@ public interface IBetaParsers */ default File getConfigFile(boolean initialization, final String directory, final String filename) { - return (initialization) - ? new File(DynamicSpawnControl.getGlobalPathToConfigs().getPath() + File.separator + - DynamicSpawnControl.STRUCT_FILES_DIRS.NAME_DIRECTORY + - File.separator + directory, filename) - : new File("config/DynamicSpawnControl/" + directory + "/" + filename); + return initialization ? new File(DynamicSpawnControl.getGlobalPathToConfigs().getPath() + File.separator + + ProjectStructure.STRUCT_FILES_DIRS.NAME_DIRECTORY + File.separator + directory, filename) : + new File("config/DynamicSpawnControl/" + directory + "/" + filename); } } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/ParserGenericJsonScripts.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/ParserGenericJsonScripts.java index 89d50ab..a5b354e 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/ParserGenericJsonScripts.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/ParserGenericJsonScripts.java @@ -2,6 +2,7 @@ import com.google.gson.JsonElement; import com.google.gson.JsonParser; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.DynamicSpawnControl; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -121,43 +122,43 @@ public static void readRules() private static void readAllRules() { // - CodeGenericUtils.readAndLogRules(path, "DropAllItems" + DynamicSpawnControl.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, + CodeGenericUtils.readAndLogRules(path, "DropAllItems" + ProjectStructure.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, GenericDropLoot::parse, GENERIC_DROP_LOOT_LIST, ARRAY_TYPE_SCRIPT[0]); // - CodeGenericUtils.readAndLogRules(path, "DropAllExperience" + DynamicSpawnControl.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, + CodeGenericUtils.readAndLogRules(path, "DropAllExperience" + ProjectStructure.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, GenericExperience::parse, GENERIC_EXPERIENCE_LIST, ARRAY_TYPE_SCRIPT[0]); // - CodeGenericUtils.readAndLogRules(path, "MainPotentialSpawn" + DynamicSpawnControl.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, + CodeGenericUtils.readAndLogRules(path, "MainPotentialSpawn" + ProjectStructure.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, GenericPotentialSpawn::parse, GENERIC_POTENTIAL_SPAWN_LIST, ARRAY_TYPE_SCRIPT[4]); // - CodeGenericUtils.readAndLogRules(path, "SpawnConditions" + DynamicSpawnControl.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, + CodeGenericUtils.readAndLogRules(path, "SpawnConditions" + ProjectStructure.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, GenericSpawnConditions::parse, GENERIC_SPAWN_CONDITIONS_LIST, ARRAY_TYPE_SCRIPT[4]); // - CodeGenericUtils.readAndLogRules(path, "MobTaskManager" + DynamicSpawnControl.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, + CodeGenericUtils.readAndLogRules(path, "MobTaskManager" + ProjectStructure.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, GenericMobTaskManager::parse, GENERIC_MOBS_TASK_MANAGER_LIST, ARRAY_TYPE_SCRIPT[4]); // - CodeGenericUtils.readAndLogRules(path, "EventEffects" + DynamicSpawnControl.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, + CodeGenericUtils.readAndLogRules(path, "EventEffects" + ProjectStructure.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, GenericMapEffectsActions::parse, GENERIC_MAP_EFFECTS_ACTIONS_LIST, ARRAY_TYPE_SCRIPT[2]); // - CodeGenericUtils.readAndLogRules(path, "EventBlockPlace" + DynamicSpawnControl.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, + CodeGenericUtils.readAndLogRules(path, "EventBlockPlace" + ProjectStructure.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, GenericBlockPlaceActions::parse, GENERIC_BLOCK_PLACE_ACTIONS_LIST, ARRAY_TYPE_SCRIPT[1]); // - CodeGenericUtils.readAndLogRules(path, "EventBlockBreak" + DynamicSpawnControl.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, + CodeGenericUtils.readAndLogRules(path, "EventBlockBreak" + ProjectStructure.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, GenericBlockBreakActions::parse, GENERIC_BLOCK_BREAK_ACTIONS_LIST, ARRAY_TYPE_SCRIPT[1]); // - CodeGenericUtils.readAndLogRules(path, "EventLeftMouseClick" + DynamicSpawnControl.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, + CodeGenericUtils.readAndLogRules(path, "EventLeftMouseClick" + ProjectStructure.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, GenericLeftClickActions::parse, GENERIC_LEFT_CLICK_ACTIONS_LIST, ARRAY_TYPE_SCRIPT[3]); // - CodeGenericUtils.readAndLogRules(path, "EventRightMouseClick" + DynamicSpawnControl.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, + CodeGenericUtils.readAndLogRules(path, "EventRightMouseClick" + ProjectStructure.STRUCT_FILES_EXTENSION.SCRIPT_FILE_EXTENSION, GenericRightClickActions::parse, GENERIC_RIGHT_CLICK_ACTIONS_LIST, ARRAY_TYPE_SCRIPT[3]); } @@ -220,8 +221,8 @@ private static JsonElement getRootElement(final String path, final String filena } else { - File infinityForceSpawnConfigsDir = new File(path + File.separator + DynamicSpawnControl.STRUCT_FILES_DIRS.NAME_DIRECTORY); - File scriptsDir = new File(infinityForceSpawnConfigsDir, DynamicSpawnControl.STRUCT_FILES_DIRS.NAME_DIR_SCRIPTS + File.separator + getTypeScript); + File infinityForceSpawnConfigsDir = new File(path + File.separator + ProjectStructure.STRUCT_FILES_DIRS.NAME_DIRECTORY); + File scriptsDir = new File(infinityForceSpawnConfigsDir, ProjectStructure.STRUCT_FILES_DIRS.NAME_DIR_SCRIPTS + File.separator + getTypeScript); if (!scriptsDir.exists()) { @@ -291,7 +292,7 @@ private static void makeEmptyRuleFile(File file) writer.println("["); writer.println("//-' OldSerpskiStalker, acidicMercury8"); - writer.println("//-' Dynamic Spawn Control for Minecraft: " + DynamicSpawnControl.STRUCT_INFO_MOD.VERSION); + writer.println("//-' Dynamic Spawn Control for Minecraft: " + ProjectStructure.STRUCT_INFO_MOD.VERSION); writer.println("//-' Our organization: https://github.com/imesense"); writer.println("]"); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/beta/ParserSingleScriptCheckSpawn.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/beta/ParserSingleScriptCheckSpawn.java index 484969a..e9ec4f6 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/beta/ParserSingleScriptCheckSpawn.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/beta/ParserSingleScriptCheckSpawn.java @@ -3,6 +3,7 @@ import com.google.gson.*; import com.google.gson.reflect.TypeToken; import org.imesense.dynamicspawncontrol.DynamicSpawnControl; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.customlibrary.EnumSingleScripts; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -44,7 +45,7 @@ public void reloadConfig() */ public void loadConfig(boolean initialization) { - File file = getConfigFile(initialization, DynamicSpawnControl.STRUCT_FILES_DIRS.NAME_DIR_SINGLE_SCRIPTS, + File file = getConfigFile(initialization, ProjectStructure.STRUCT_FILES_DIRS.NAME_DIR_SINGLE_SCRIPTS, EnumSingleScripts.SCRIPT_MOBS_LIST_SEE_SKY.getKeyword()); if (!file.exists()) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/beta/ParserSingleScriptSettingsCache.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/beta/ParserSingleScriptSettingsCache.java index 182b997..7d58ee0 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/beta/ParserSingleScriptSettingsCache.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/beta/ParserSingleScriptSettingsCache.java @@ -3,6 +3,7 @@ import com.google.gson.*; import net.minecraft.util.ResourceLocation; import org.imesense.dynamicspawncontrol.DynamicSpawnControl; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.customlibrary.EnumSingleScripts; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -43,7 +44,7 @@ public void reloadConfig() */ public void loadConfig(boolean initialization) { - File file = getConfigFile(initialization, DynamicSpawnControl.STRUCT_FILES_DIRS.NAME_DIR_CACHE, + File file = getConfigFile(initialization, ProjectStructure.STRUCT_FILES_DIRS.NAME_DIR_CACHE, EnumSingleScripts.SCRIPT_CACHE_MOBS.getKeyword()); if (!file.exists()) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/beta/ParserSingleZombieSummonAID.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/beta/ParserSingleZombieSummonAID.java index b16bd47..cd66a96 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/beta/ParserSingleZombieSummonAID.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/parsers/beta/ParserSingleZombieSummonAID.java @@ -6,6 +6,7 @@ import com.google.gson.JsonSyntaxException; import com.google.gson.reflect.TypeToken; import org.imesense.dynamicspawncontrol.DynamicSpawnControl; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.customlibrary.EnumSingleScripts; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; @@ -49,7 +50,7 @@ public void loadConfig(boolean initialization) { GeneralStorageData.instance.EquipmentConfigs = new ArrayList<>(); - File file = getConfigFile(initialization, DynamicSpawnControl.STRUCT_FILES_DIRS.NAME_DIR_SINGLE_SCRIPTS, + File file = getConfigFile(initialization, ProjectStructure.STRUCT_FILES_DIRS.NAME_DIR_SINGLE_SCRIPTS, EnumSingleScripts.SCRIPT_ZOMBIE_SUMMON_AID.getKeyword()); if (!file.exists()) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/plugins/LoadingPluginNight.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/plugins/LoadingPluginNight.java index c6d4d2f..ce82d64 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/plugins/LoadingPluginNight.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/plugins/LoadingPluginNight.java @@ -5,7 +5,7 @@ import net.minecraftforge.common.ForgeVersion; import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; -import org.imesense.dynamicspawncontrol.DynamicSpawnControl; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.technical.asm.EntityRendererTransformer; import org.imesense.dynamicspawncontrol.technical.asm.WorldProviderTransformer; @@ -15,7 +15,7 @@ * -Dfml.coreMods.load=org.imesense.dynamicspawncontrol.technical.plugins.LoadingPluginNight */ @IFMLLoadingPlugin.MCVersion(ForgeVersion.mcVersion) -@IFMLLoadingPlugin.Name(DynamicSpawnControl.STRUCT_INFO_MOD.MOD_ID) +@IFMLLoadingPlugin.Name(ProjectStructure.STRUCT_INFO_MOD.MOD_ID) @IFMLLoadingPlugin.SortingIndex(LoadingPluginNight.AFTER_DEOBF) public final class LoadingPluginNight implements IFMLLoadingPlugin { diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ClientProxy.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ClientProxy.java index 6f74e8a..eb94781 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ClientProxy.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ClientProxy.java @@ -36,6 +36,7 @@ public void preInit(FMLPreInitializationEvent event) @Override public void init(FMLInitializationEvent event) { + } /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ServerProxy.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ServerProxy.java index 8326ac6..09f6103 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ServerProxy.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ServerProxy.java @@ -75,7 +75,7 @@ public EntityPlayerSP getClientPlayer() * @return Task result */ @Override - public ListenableFuture addScheduledTaskClient(Callable callableToSchedule) + public synchronized ListenableFuture addScheduledTaskClient(Callable callableToSchedule) { throw new IllegalStateException("The server cannot process this function, the call occurs from the client side!"); } @@ -87,7 +87,7 @@ public ListenableFuture addScheduledTaskClient(Callable callableToSche * @return Task result */ @Override - public ListenableFuture addScheduledTaskClient(Runnable runnableToSchedule) + public synchronized ListenableFuture addScheduledTaskClient(Runnable runnableToSchedule) { throw new IllegalStateException("The server cannot process this function, the call occurs from the client side!"); } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/Cache.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/Cache.java index 58b6596..fdadfd6 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/Cache.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/Cache.java @@ -8,7 +8,6 @@ import net.minecraft.entity.passive.IAnimals; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.server.management.PlayerChunkMapEntry; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.MathHelper; @@ -16,7 +15,6 @@ import net.minecraft.world.WorldServer; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; -import org.imesense.dynamicspawncontrol.technical.parsers.beta.ParserSingleScriptCheckSpawn; import javax.annotation.Nonnull; import java.util.Collections; @@ -26,32 +24,109 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +/** + * + */ public final class Cache { + /** + * + */ + public static Cache instance; + + /** + * + */ public int TickCounter = 0; - public volatile int DynamicUpdateInterval = 1200; + + /** + * + */ public final int FIRST_UPDATE_INTERVAL = 1200; + + /** + * + */ + private static boolean instanceExists = false; + + /** + * + */ + public volatile int DynamicUpdateInterval = 1200; + + /** + * + */ public final int SUBSEQUENT_UPDATE_INTERVAL = 4800; + /** + * + */ public boolean isFirstUpdate = true; + + /** + * + */ public boolean isPrimaryPlayerLogged = false; + /** + * + */ public final Set CACHE_VALID_CHUNKS = new HashSet<>(); + + /** + * + */ public final Set CACHED_ACTUAL_ANIMALS = new HashSet<>(); + + /** + * + */ public final Set CACHED_BUFFER_ANIMALS = new HashSet<>(); + + /** + * + */ public final Set CACHED_ACTUAL_HOSTILES = new HashSet<>(); + + /** + * + */ public final Set CACHED_BUFFER_HOSTILES = new HashSet<>(); + + /** + * + */ public final Set CACHED_ACTUAL_ALL = new HashSet<>(); + + /** + * + */ public final Set CACHED_BUFFER_ALL = new HashSet<>(); + + /** + * + */ public final ConcurrentMap> ENTITIES_ACTUAL_BY_NAME = new ConcurrentHashMap<>(); + + /** + * + */ public final ConcurrentMap> ENTITIES_BUFFER_BY_NAME = new ConcurrentHashMap<>(); - public final ConcurrentMap> ENTITIES_ACTUAL_BY_RESOURCE_LOCATION = new ConcurrentHashMap<>(); - public final ConcurrentMap> ENTITIES_BUFFER_BY_RESOURCE_LOCATION = new ConcurrentHashMap<>(); - public static Cache instance; + /** + * + */ + public final ConcurrentMap> ENTITIES_ACTUAL_BY_RESOURCE_LOCATION = new ConcurrentHashMap<>(); - private static boolean instanceExists = false; + /** + * + */ + public final ConcurrentMap> ENTITIES_BUFFER_BY_RESOURCE_LOCATION = new ConcurrentHashMap<>(); + /** + * + */ public Cache() { CodeGenericUtils.printInitClassToLog(this.getClass()); @@ -67,6 +142,10 @@ public Cache() instance = this; } + /** + * + * @param world + */ public void updateCache(@Nonnull World world) { cleanActualCache(); @@ -120,11 +199,19 @@ else if (entity instanceof EntityMob) } } + /** + * + * @param worldServer + * @param player + * @return + */ private Set totalValidChunksSpawnForPlayer(WorldServer worldServer, EntityPlayerMP player) { Set validChunks = new HashSet<>(); - int viewDistance = Objects.requireNonNull(worldServer.getMinecraftServer()).getPlayerList().getViewDistance(); + int viewDistance = + Objects.requireNonNull(worldServer.getMinecraftServer()).getPlayerList().getViewDistance(); + int playerChunkX = MathHelper.floor(player.posX) >> 4; int playerChunkZ = MathHelper.floor(player.posZ) >> 4; @@ -144,47 +231,83 @@ private Set totalValidChunksSpawnForPlayer(WorldServer worldServer, En return validChunks; } + /** + * + * @return + */ public int getActualAnimalCount() { return CACHED_ACTUAL_ANIMALS.size(); } + /** + * + * @return + */ public int getActualTotalEntityCount() { return CACHED_ACTUAL_ALL.size(); } + /** + * + * @return + */ public int getActualHostileEntityCount() { return CACHED_ACTUAL_HOSTILES.size(); } + /** + * + * @return + */ public int getBufferAnimalCount() { return CACHED_BUFFER_ANIMALS.size(); } + /** + * + * @return + */ public int getBufferTotalEntityCount() { return CACHED_BUFFER_ALL.size(); } + /** + * + * @return + */ public int getBufferHostileEntityCount() { return CACHED_BUFFER_HOSTILES.size(); } + /** + * + * @return + */ public int getValidChunkCount() { return CACHE_VALID_CHUNKS.size(); } + /** + * + * @param resourceLocation + * @return + */ @Nonnull public Set getEntitiesByResourceLocation(@Nonnull ResourceLocation resourceLocation) { return ENTITIES_ACTUAL_BY_RESOURCE_LOCATION.getOrDefault(resourceLocation, Collections.emptySet()); } + /** + * + */ public void copyActualToBuffer() { CACHED_BUFFER_ANIMALS.clear(); @@ -210,6 +333,9 @@ public void copyActualToBuffer() ENTITIES_BUFFER_BY_RESOURCE_LOCATION.put(key, new HashSet<>(set))); } + /** + * + */ public void cleanActualCache() { CACHED_ACTUAL_ANIMALS.clear(); @@ -221,6 +347,9 @@ public void cleanActualCache() CACHE_VALID_CHUNKS.clear(); } + /** + * + */ public void cleanBufferCache() { CACHED_BUFFER_ANIMALS.clear(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/CacheEvents.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/CacheEvents.java index 1ae0c66..9d959a7 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/CacheEvents.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/CacheEvents.java @@ -15,23 +15,35 @@ import net.minecraftforge.event.entity.living.LivingSpawnEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.Event; -import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; +import org.imesense.dynamicspawncontrol.ProjectStructure; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.config.gamedebugger.DataGameDebugger; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; import java.util.HashSet; -@Mod.EventBusSubscriber +/** + * + */ +@Mod.EventBusSubscriber(modid = ProjectStructure.STRUCT_INFO_MOD.MOD_ID) public final class CacheEvents { - static CacheMonitor cacheMonitor = null; - + /** + * + */ private static boolean instanceExists = false; + /** + * + */ + private static CacheMonitor cacheMonitor = null; + + /** + * + */ public CacheEvents() { CodeGenericUtils.printInitClassToLog(this.getClass()); @@ -47,7 +59,11 @@ public CacheEvents() cacheMonitor = new CacheMonitor(); } - @SubscribeEvent(priority = EventPriority.NORMAL) + /** + * + * @param event + */ + @SubscribeEvent public synchronized void onWorldTick_0(TickEvent.WorldTickEvent event) { if (event.phase == TickEvent.Phase.END) @@ -70,6 +86,10 @@ public synchronized void onWorldTick_0(TickEvent.WorldTickEvent event) } } + /** + * + * @param event + */ @SubscribeEvent public synchronized void onPlayerLoggedIn_1(PlayerEvent.PlayerLoggedInEvent event) { @@ -81,17 +101,24 @@ public synchronized void onPlayerLoggedIn_1(PlayerEvent.PlayerLoggedInEvent even Cache.instance.isFirstUpdate = true; } - Cache.instance.copyActualToBuffer(); } + /** + * + * @param event + */ @SubscribeEvent public synchronized void onPlayerLoggedOut_2(PlayerEvent.PlayerLoggedOutEvent event) { Cache.instance.copyActualToBuffer(); } - @SubscribeEvent(priority = EventPriority.LOW) + /** + * + * @param event + */ + @SubscribeEvent public synchronized void onRenderOverlay_3(RenderGameOverlayEvent.Post event) { if (!DataGameDebugger.ConfigDataMonitor.instance.getDebugMonitorCache()) @@ -105,7 +132,11 @@ public synchronized void onRenderOverlay_3(RenderGameOverlayEvent.Post event) } } - @SubscribeEvent(priority = EventPriority.HIGH) + /** + * + * @param event + */ + @SubscribeEvent public synchronized void onEntityJoinWorld_4(EntityJoinWorldEvent event) { World world = event.getWorld(); @@ -154,7 +185,11 @@ else if (entity instanceof EntityMob) } } - @SubscribeEvent(priority = EventPriority.HIGH) + /** + * + * @param event + */ + @SubscribeEvent public synchronized void updateEntitySpawnEvent_5(LivingSpawnEvent.CheckSpawn event) { Entity entity = event.getEntity(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/CacheMonitor.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/CacheMonitor.java index c07addb..73d5db6 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/CacheMonitor.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/CacheMonitor.java @@ -14,11 +14,6 @@ */ public final class CacheMonitor { - /** - * - */ - private final int X = 10, Y = 10; - /** * */ @@ -61,6 +56,8 @@ public void renderDebugInfo(ScaledResolution resolution) final String SEPARATOR = TextFormatting.WHITE + "--------------------------------------------"; + final int X = 10, Y = 10; + FONT_RENDER.drawString(ACTUAL_ANIMALS, X, Y, 0xFFFFFF); FONT_RENDER.drawString(ACTUAL_HOSTILE, X, Y + 10, 0xFFFFFF); FONT_RENDER.drawString(ACTUAL_TOTAL, X, Y + 20, 0xFFFFFF); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/CacheStorage.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/CacheStorage.java index 9dfed0f..ffbd7a9 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/CacheStorage.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/worldcache/CacheStorage.java @@ -63,20 +63,40 @@ public CacheStorage.EntityData getEntityDataByResourceLocation(ResourceLocation */ public static class EntityData { + /** + * + */ private final int MAX_COUNT; + + /** + * + */ private final ResourceLocation ENTITY; + /** + * + * @param entity + * @param maxCount + */ public EntityData(ResourceLocation entity, int maxCount) { this.ENTITY = entity; this.MAX_COUNT = maxCount; } + /** + * + * @return + */ public ResourceLocation getEntity() { return this.ENTITY; } + /** + * + * @return + */ public int getMaxCount() { return this.MAX_COUNT;