添加服务端配置项
This commit is contained in:
parent
95b3856542
commit
69f55fc6c7
5 changed files with 50 additions and 15 deletions
|
@ -2,6 +2,7 @@ package net.mcreator.superbwarfare;
|
||||||
|
|
||||||
import net.mcreator.superbwarfare.config.ClientConfig;
|
import net.mcreator.superbwarfare.config.ClientConfig;
|
||||||
import net.mcreator.superbwarfare.config.CommonConfig;
|
import net.mcreator.superbwarfare.config.CommonConfig;
|
||||||
|
import net.mcreator.superbwarfare.config.ServerConfig;
|
||||||
import net.mcreator.superbwarfare.init.*;
|
import net.mcreator.superbwarfare.init.*;
|
||||||
import net.mcreator.superbwarfare.network.ModVariables;
|
import net.mcreator.superbwarfare.network.ModVariables;
|
||||||
import net.mcreator.superbwarfare.network.message.*;
|
import net.mcreator.superbwarfare.network.message.*;
|
||||||
|
@ -37,6 +38,7 @@ import java.util.function.Supplier;
|
||||||
|
|
||||||
@Mod(ModUtils.MODID)
|
@Mod(ModUtils.MODID)
|
||||||
public class ModUtils {
|
public class ModUtils {
|
||||||
|
|
||||||
public static final String MODID = "superbwarfare";
|
public static final String MODID = "superbwarfare";
|
||||||
public static final String ATTRIBUTE_MODIFIER = "superbwarfare_attribute_modifier";
|
public static final String ATTRIBUTE_MODIFIER = "superbwarfare_attribute_modifier";
|
||||||
|
|
||||||
|
@ -45,6 +47,7 @@ public class ModUtils {
|
||||||
public ModUtils() {
|
public ModUtils() {
|
||||||
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ClientConfig.init());
|
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ClientConfig.init());
|
||||||
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, CommonConfig.init());
|
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, CommonConfig.init());
|
||||||
|
ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, ServerConfig.init());
|
||||||
|
|
||||||
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
|
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
package net.mcreator.superbwarfare.config;
|
||||||
|
|
||||||
|
import net.mcreator.superbwarfare.config.server.SpawnConfig;
|
||||||
|
import net.minecraftforge.common.ForgeConfigSpec;
|
||||||
|
|
||||||
|
public class ServerConfig {
|
||||||
|
|
||||||
|
public static ForgeConfigSpec init() {
|
||||||
|
ForgeConfigSpec.Builder builder = new ForgeConfigSpec.Builder();
|
||||||
|
|
||||||
|
SpawnConfig.init(builder);
|
||||||
|
|
||||||
|
return builder.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package net.mcreator.superbwarfare.config.server;
|
||||||
|
|
||||||
|
import net.minecraftforge.common.ForgeConfigSpec;
|
||||||
|
|
||||||
|
public class SpawnConfig {
|
||||||
|
|
||||||
|
public static ForgeConfigSpec.BooleanValue SPAWN_SENPAI;
|
||||||
|
|
||||||
|
public static void init(ForgeConfigSpec.Builder builder) {
|
||||||
|
builder.push("spawn");
|
||||||
|
|
||||||
|
builder.comment("Set TRUE to allow Senpai to spawn naturally");
|
||||||
|
SPAWN_SENPAI = builder.define("spawn_senpai", false);
|
||||||
|
|
||||||
|
builder.pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -10,7 +10,6 @@ import net.minecraft.network.syncher.EntityDataAccessor;
|
||||||
import net.minecraft.network.syncher.EntityDataSerializers;
|
import net.minecraft.network.syncher.EntityDataSerializers;
|
||||||
import net.minecraft.network.syncher.SynchedEntityData;
|
import net.minecraft.network.syncher.SynchedEntityData;
|
||||||
import net.minecraft.sounds.SoundEvent;
|
import net.minecraft.sounds.SoundEvent;
|
||||||
import net.minecraft.world.Difficulty;
|
|
||||||
import net.minecraft.world.damagesource.DamageSource;
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
import net.minecraft.world.entity.*;
|
import net.minecraft.world.entity.*;
|
||||||
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
||||||
|
@ -27,8 +26,6 @@ import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.Items;
|
import net.minecraft.world.item.Items;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.levelgen.Heightmap;
|
|
||||||
import net.minecraftforge.common.DungeonHooks;
|
|
||||||
import net.minecraftforge.network.NetworkHooks;
|
import net.minecraftforge.network.NetworkHooks;
|
||||||
import net.minecraftforge.network.PlayMessages;
|
import net.minecraftforge.network.PlayMessages;
|
||||||
import software.bernie.geckolib.animatable.GeoEntity;
|
import software.bernie.geckolib.animatable.GeoEntity;
|
||||||
|
@ -41,6 +38,7 @@ import software.bernie.geckolib.core.object.PlayState;
|
||||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||||
|
|
||||||
public class SenpaiEntity extends Monster implements GeoEntity, AnimatedEntity {
|
public class SenpaiEntity extends Monster implements GeoEntity, AnimatedEntity {
|
||||||
|
|
||||||
public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(SenpaiEntity.class, EntityDataSerializers.STRING);
|
public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(SenpaiEntity.class, EntityDataSerializers.STRING);
|
||||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||||
|
|
||||||
|
@ -153,12 +151,6 @@ public class SenpaiEntity extends Monster implements GeoEntity, AnimatedEntity {
|
||||||
this.updateSwingTime();
|
this.updateSwingTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void init() {
|
|
||||||
SpawnPlacements.register(ModEntities.SENPAI.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES,
|
|
||||||
(entityType, world, reason, pos, random) -> (world.getDifficulty() != Difficulty.PEACEFUL && Monster.isDarkEnoughToSpawn(world, pos, random) && Mob.checkMobSpawnRules(entityType, world, reason, pos, random)));
|
|
||||||
DungeonHooks.addDungeonMob(ModEntities.SENPAI.get(), 180);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static AttributeSupplier.Builder createAttributes() {
|
public static AttributeSupplier.Builder createAttributes() {
|
||||||
return Mob.createMobAttributes()
|
return Mob.createMobAttributes()
|
||||||
.add(Attributes.MOVEMENT_SPEED, 0.23)
|
.add(Attributes.MOVEMENT_SPEED, 0.23)
|
||||||
|
|
|
@ -1,21 +1,24 @@
|
||||||
package net.mcreator.superbwarfare.init;
|
package net.mcreator.superbwarfare.init;
|
||||||
|
|
||||||
import net.mcreator.superbwarfare.ModUtils;
|
import net.mcreator.superbwarfare.ModUtils;
|
||||||
|
import net.mcreator.superbwarfare.config.server.SpawnConfig;
|
||||||
import net.mcreator.superbwarfare.entity.*;
|
import net.mcreator.superbwarfare.entity.*;
|
||||||
import net.mcreator.superbwarfare.entity.projectile.*;
|
import net.mcreator.superbwarfare.entity.projectile.*;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.Difficulty;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.*;
|
||||||
import net.minecraft.world.entity.MobCategory;
|
import net.minecraft.world.entity.monster.Monster;
|
||||||
|
import net.minecraft.world.level.levelgen.Heightmap;
|
||||||
import net.minecraftforge.event.entity.EntityAttributeCreationEvent;
|
import net.minecraftforge.event.entity.EntityAttributeCreationEvent;
|
||||||
|
import net.minecraftforge.event.entity.SpawnPlacementRegisterEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
|
||||||
import net.minecraftforge.registries.DeferredRegister;
|
import net.minecraftforge.registries.DeferredRegister;
|
||||||
import net.minecraftforge.registries.ForgeRegistries;
|
import net.minecraftforge.registries.ForgeRegistries;
|
||||||
import net.minecraftforge.registries.RegistryObject;
|
import net.minecraftforge.registries.RegistryObject;
|
||||||
|
|
||||||
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||||
public class ModEntities {
|
public class ModEntities {
|
||||||
|
|
||||||
public static final DeferredRegister<EntityType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, ModUtils.MODID);
|
public static final DeferredRegister<EntityType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, ModUtils.MODID);
|
||||||
|
|
||||||
public static final RegistryObject<EntityType<TargetEntity>> TARGET = register("target",
|
public static final RegistryObject<EntityType<TargetEntity>> TARGET = register("target",
|
||||||
|
@ -63,8 +66,11 @@ public class ModEntities {
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void init(FMLCommonSetupEvent event) {
|
public static void onRegisterSpawnPlacement(SpawnPlacementRegisterEvent event) {
|
||||||
event.enqueueWork(SenpaiEntity::init);
|
event.register(ModEntities.SENPAI.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES,
|
||||||
|
(entityType, world, reason, pos, random) -> (world.getDifficulty() != Difficulty.PEACEFUL && SpawnConfig.SPAWN_SENPAI.get()
|
||||||
|
&& Monster.isDarkEnoughToSpawn(world, pos, random) && Mob.checkMobSpawnRules(entityType, world, reason, pos, random)),
|
||||||
|
SpawnPlacementRegisterEvent.Operation.OR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
|
|
Loading…
Add table
Reference in a new issue