1.20 progres

king and queen balancing
Antmail
Blockle
This commit is contained in:
craisinlord committed 2026-09-15 19:10:28 -05:00
1 parent c1d60d735d
commit fc5028a15b
430 files changed
+30569 -1684

No files matched your search

@@ -147,6 +147,7 @@ public final class AntarchyConfigModuleNeoforge {
AntarchySettings.setKingAttackDamage(AntarchyMobsConfig.kingAttackDamage());
AntarchySettings.setQueenAttackDamage(AntarchyMobsConfig.queenAttackDamage());
AntarchySettings.setRoyalBossArmor(AntarchyMobsConfig.royalBossArmor());
AntarchySettings.setKingArmor(AntarchyMobsConfig.kingArmor());
AntarchySettings.setRoyalBossFollowRange(AntarchyMobsConfig.royalBossFollowRange());
AntarchySettings.setRoyalBossMovementSpeed(AntarchyMobsConfig.royalBossMovementSpeed());
AntarchySettings.setRoyalBossKnockbackResistance(AntarchyMobsConfig.royalBossKnockbackResistance());
@@ -155,6 +156,13 @@ public final class AntarchyConfigModuleNeoforge {
AntarchySettings.setRoyalBossBiteReach(AntarchyMobsConfig.royalBossBiteReach());
AntarchySettings.setRoyalBossBiteDamageMultiplier(AntarchyMobsConfig.royalBossBiteDamageMultiplier());
AntarchySettings.setRoyalBossBiteCooldownTicks(AntarchyMobsConfig.royalBossBiteCooldownTicks());
AntarchySettings.setRoyalBossMultiplayerScalingEnabled(AntarchyMobsConfig.royalBossMultiplayerScalingEnabled());
AntarchySettings.setRoyalBossScalingMaxPlayers(AntarchyMobsConfig.royalBossScalingMaxPlayers());
AntarchySettings.setRoyalBossHealthPerAdditionalPlayer(AntarchyMobsConfig.royalBossHealthPerAdditionalPlayer());
AntarchySettings.setRoyalBossDamagePerAdditionalPlayer(AntarchyMobsConfig.royalBossDamagePerAdditionalPlayer());
AntarchySettings.setRoyalBoundaryRadius(AntarchyMobsConfig.royalBoundaryRadius());
AntarchySettings.setRoyalBoundaryWarningRadius(AntarchyMobsConfig.royalBoundaryWarningRadius());
AntarchySettings.setRoyalBoundaryGraceTicks(AntarchyMobsConfig.royalBoundaryGraceTicks());
AntarchySettings.setQueenBeamDamage(AntarchyMobsConfig.queenBeamDamage());
AntarchySettings.setQueenBeamRange(AntarchyMobsConfig.queenBeamRange());
AntarchySettings.setQueenBeamMinimumRange(AntarchyMobsConfig.queenBeamMinimumRange());
@@ -189,10 +197,6 @@ public final class AntarchyConfigModuleNeoforge {
AntarchySettings.setQueenBlackHoleActiveTicks(AntarchyMobsConfig.queenBlackHoleActiveTicks());
AntarchySettings.setQueenBlackHolePullStrength(AntarchyMobsConfig.queenBlackHolePullStrength());
AntarchySettings.setQueenBlackHoleBlockSuctionCap(AntarchyMobsConfig.queenBlackHoleBlockSuctionCap());
AntarchySettings.setQueenFinalTimeFieldRadius(AntarchyMobsConfig.queenFinalTimeFieldRadius());
AntarchySettings.setQueenFinalTimeFieldRate(AntarchyMobsConfig.queenFinalTimeFieldRate());
AntarchySettings.setQueenFinalTimeFieldDurationTicks(AntarchyMobsConfig.queenFinalTimeFieldDurationTicks());
AntarchySettings.setQueenFinalTimeFieldCooldownTicks(AntarchyMobsConfig.queenFinalTimeFieldCooldownTicks());
AntarchySettings.setKingFireballDamage(AntarchyMobsConfig.kingFireballDamage());
AntarchySettings.setKingFireballRadius(AntarchyMobsConfig.kingFireballRadius());
AntarchySettings.setKingFireballCooldownTicks(AntarchyMobsConfig.kingFireballCooldownTicks());
@@ -122,6 +122,7 @@ public final class AntarchyMobsConfig {
private static final ModConfigSpec.DoubleValue KING_ATTACK_DAMAGE;
private static final ModConfigSpec.DoubleValue QUEEN_ATTACK_DAMAGE;
private static final ModConfigSpec.DoubleValue ROYAL_BOSS_ARMOR;
private static final ModConfigSpec.DoubleValue KING_ARMOR;
private static final ModConfigSpec.DoubleValue ROYAL_BOSS_FOLLOW_RANGE;
private static final ModConfigSpec.DoubleValue ROYAL_BOSS_MOVEMENT_SPEED;
private static final ModConfigSpec.DoubleValue ROYAL_BOSS_KNOCKBACK_RESISTANCE;
@@ -130,6 +131,11 @@ public final class AntarchyMobsConfig {
private static final ModConfigSpec.DoubleValue ROYAL_BOSS_BITE_REACH;
private static final ModConfigSpec.DoubleValue ROYAL_BOSS_BITE_DAMAGE_MULTIPLIER;
private static final ModConfigSpec.IntValue ROYAL_BOSS_BITE_COOLDOWN_TICKS;
private static final ModConfigSpec.BooleanValue ROYAL_BOSS_MULTIPLAYER_SCALING_ENABLED;
private static final ModConfigSpec.IntValue ROYAL_BOSS_SCALING_MAX_PLAYERS;
private static final ModConfigSpec.DoubleValue ROYAL_BOSS_HEALTH_PER_ADDITIONAL_PLAYER, ROYAL_BOSS_DAMAGE_PER_ADDITIONAL_PLAYER;
private static final ModConfigSpec.DoubleValue ROYAL_BOUNDARY_RADIUS, ROYAL_BOUNDARY_WARNING_RADIUS;
private static final ModConfigSpec.IntValue ROYAL_BOUNDARY_GRACE_TICKS;
private static final ModConfigSpec.DoubleValue QUEEN_BEAM_DAMAGE, QUEEN_BEAM_RANGE, QUEEN_BEAM_MINIMUM_RANGE, QUEEN_BEAM_TRACKING, QUEEN_BEAM_TERRAIN_RADIUS;
private static final ModConfigSpec.IntValue QUEEN_BEAM_DURATION_TICKS, QUEEN_BEAM_WINDUP_TICKS, QUEEN_BEAM_TRAVEL_TICKS, QUEEN_BEAM_COOLDOWN_TICKS, QUEEN_BEAM_TERRAIN_CAP,
QUEEN_BEAM_PHASE_ONE_CAP, QUEEN_BEAM_PHASE_TWO_CAP, QUEEN_BEAM_PHASE_THREE_CAP;
@@ -140,10 +146,8 @@ public final class AntarchyMobsConfig {
private static final ModConfigSpec.DoubleValue KING_ROYAL_MUSTER_RADIUS;
private static final ModConfigSpec.IntValue KING_ROYAL_MUSTER_COOLDOWN_TICKS, KING_ROYAL_MUSTER_WINDUP_TICKS,
KING_ROYAL_MUSTER_DURATION_TICKS, KING_ROYAL_MUSTER_CAP;
private static final ModConfigSpec.DoubleValue QUEEN_BLACK_HOLE_RADIUS, QUEEN_BLACK_HOLE_PULL_STRENGTH,
QUEEN_FINAL_TIME_FIELD_RADIUS, QUEEN_FINAL_TIME_FIELD_RATE;
private static final ModConfigSpec.IntValue QUEEN_BLACK_HOLE_ACTIVE_TICKS, QUEEN_BLACK_HOLE_BLOCK_SUCTION_CAP,
QUEEN_FINAL_TIME_FIELD_DURATION_TICKS, QUEEN_FINAL_TIME_FIELD_COOLDOWN_TICKS;
private static final ModConfigSpec.DoubleValue QUEEN_BLACK_HOLE_RADIUS, QUEEN_BLACK_HOLE_PULL_STRENGTH;
private static final ModConfigSpec.IntValue QUEEN_BLACK_HOLE_ACTIVE_TICKS, QUEEN_BLACK_HOLE_BLOCK_SUCTION_CAP;
private static final ModConfigSpec.DoubleValue ROYAL_BOSS_SOUND_VOLUME;
private static final ModConfigSpec.DoubleValue KING_FIREBALL_DAMAGE, KING_FIREBALL_RADIUS, KING_ICEBALL_DAMAGE, KING_ICEBALL_RADIUS, KING_ICE_SPIKE_DAMAGE;
private static final ModConfigSpec.IntValue KING_FIREBALL_COOLDOWN_TICKS, KING_ICEBALL_COOLDOWN_TICKS, KING_ICE_SPIKE_COOLDOWN_TICKS, KING_ELEMENTAL_TERRAIN_CAP;
@@ -627,11 +631,12 @@ public final class AntarchyMobsConfig {
b.pop();
b.push("royalBosses");
KING_HEALTH = b.comment("Base max health for the King.").defineInRange("kingHealth", 6000.0D, 1.0D, 32768.0D);
QUEEN_HEALTH = b.comment("Base max health for the Queen.").defineInRange("queenHealth", 6000.0D, 1.0D, 32768.0D);
KING_HEALTH = b.comment("Base max health for the King.").defineInRange("kingHealth", 3400.0D, 1.0D, 32768.0D);
QUEEN_HEALTH = b.comment("Base max health for the Queen.").defineInRange("queenHealth", 4300.0D, 1.0D, 32768.0D);
KING_ATTACK_DAMAGE = b.comment("Base attack damage for the King.").defineInRange("kingAttackDamage", 50.0D, 0.0D, 1024.0D);
QUEEN_ATTACK_DAMAGE = b.comment("Base attack damage for the Queen.").defineInRange("queenAttackDamage", 45.0D, 0.0D, 1024.0D);
ROYAL_BOSS_ARMOR = b.comment("Base armor value shared by King and Queen.").defineInRange("armor", 20.0D, 0.0D, 1024.0D);
KING_ARMOR = b.defineInRange("kingArmor", 30.0D, 0.0D, 1024.0D);
ROYAL_BOSS_FOLLOW_RANGE = b.comment("Target acquisition range shared by King and Queen.").defineInRange("followRange", 128.0D, 1.0D, 256.0D);
ROYAL_BOSS_MOVEMENT_SPEED = b.comment("Base grounded movement speed shared by King and Queen.").defineInRange("movementSpeed", 0.22D, 0.0D, 10.0D);
ROYAL_BOSS_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance shared by King and Queen.").defineInRange("knockbackResistance", 1.0D, 0.0D, 1.0D);
@@ -640,6 +645,13 @@ public final class AntarchyMobsConfig {
ROYAL_BOSS_BITE_REACH = b.comment("Radius around each head anchor that a King or Queen bite can hit.").defineInRange("biteReach", 12.0D, 1.0D, 64.0D);
ROYAL_BOSS_BITE_DAMAGE_MULTIPLIER = b.comment("Multiplier applied to base attack damage for King and Queen head bites.").defineInRange("biteDamageMultiplier", 1.6D, 0.0D, 32.0D);
ROYAL_BOSS_BITE_COOLDOWN_TICKS = b.comment("Base cooldown in ticks between bites for a single King or Queen head (scaled down at later phases).").defineInRange("biteCooldownTicks", 45, 1, 1200);
ROYAL_BOSS_MULTIPLAYER_SCALING_ENABLED = b.define("multiplayerScalingEnabled", true);
ROYAL_BOSS_SCALING_MAX_PLAYERS = b.defineInRange("scalingMaxPlayers", 4, 1, 32);
ROYAL_BOSS_HEALTH_PER_ADDITIONAL_PLAYER = b.defineInRange("healthPerAdditionalPlayer", 0.35D, 0.0D, 4.0D);
ROYAL_BOSS_DAMAGE_PER_ADDITIONAL_PLAYER = b.defineInRange("damagePerAdditionalPlayer", 0.10D, 0.0D, 2.0D);
ROYAL_BOUNDARY_RADIUS = b.defineInRange("royalBoundaryRadius", 192.0D, 32.0D, 1024.0D);
ROYAL_BOUNDARY_WARNING_RADIUS = b.defineInRange("royalBoundaryWarningRadius", 160.0D, 16.0D, 1024.0D);
ROYAL_BOUNDARY_GRACE_TICKS = b.defineInRange("royalBoundaryGraceTicks", 60, 0, 2400);
QUEEN_BEAM_DAMAGE = b.defineInRange("queenBeamDamage", 45.0D, 0.0D, 1024.0D);
QUEEN_BEAM_RANGE = b.defineInRange("queenBeamRange", 100.0D, 1.0D, 256.0D);
QUEEN_BEAM_MINIMUM_RANGE = b.comment("Minimum distance from the Queen before she may begin or maintain a beam.").defineInRange("queenBeamMinimumRange", 22.0D, 0.0D, 256.0D);
@@ -674,10 +686,6 @@ public final class AntarchyMobsConfig {
QUEEN_BLACK_HOLE_ACTIVE_TICKS = b.comment("Active duration for Royal Assailant axe black holes. Queen black holes always follow their 20.125-second animation.").defineInRange("queenBlackHoleActiveTicks", 120, 20, 1200);
QUEEN_BLACK_HOLE_PULL_STRENGTH = b.defineInRange("queenBlackHolePullStrength", 0.16D, 0.0D, 2.0D);
QUEEN_BLACK_HOLE_BLOCK_SUCTION_CAP = b.comment("Maximum terrain blocks a single Queen black hole may pull into itself.").defineInRange("queenBlackHoleBlockSuctionCap", 160, 0, 4096);
QUEEN_FINAL_TIME_FIELD_RADIUS = b.defineInRange("queenFinalTimeFieldRadius", 20.0D, 1.0D, 64.0D);
QUEEN_FINAL_TIME_FIELD_RATE = b.defineInRange("queenFinalTimeFieldRate", 0.05D, 0.05D, 1.0D);
QUEEN_FINAL_TIME_FIELD_DURATION_TICKS = b.defineInRange("queenFinalTimeFieldDurationTicks", 45, 1, 1200);
QUEEN_FINAL_TIME_FIELD_COOLDOWN_TICKS = b.defineInRange("queenFinalTimeFieldCooldownTicks", 80, 1, 2400);
KING_FIREBALL_DAMAGE = b.defineInRange("kingFireballDamage", 32.0D, 0.0D, 1024.0D);
KING_FIREBALL_RADIUS = b.defineInRange("kingFireballRadius", 4.5D, 0.5D, 32.0D);
KING_FIREBALL_COOLDOWN_TICKS = b.defineInRange("kingFireballCooldownTicks", 150, 1, 2400);
@@ -1181,6 +1189,7 @@ public final class AntarchyMobsConfig {
static double kingAttackDamage() { return KING_ATTACK_DAMAGE.get(); }
static double queenAttackDamage() { return QUEEN_ATTACK_DAMAGE.get(); }
static double royalBossArmor() { return ROYAL_BOSS_ARMOR.get(); }
static double kingArmor() { return KING_ARMOR.get(); }
static double royalBossFollowRange() { return ROYAL_BOSS_FOLLOW_RANGE.get(); }
static double royalBossMovementSpeed() { return ROYAL_BOSS_MOVEMENT_SPEED.get(); }
static double royalBossKnockbackResistance() { return ROYAL_BOSS_KNOCKBACK_RESISTANCE.get(); }
@@ -1189,6 +1198,13 @@ public final class AntarchyMobsConfig {
static double royalBossBiteReach() { return ROYAL_BOSS_BITE_REACH.get(); }
static double royalBossBiteDamageMultiplier() { return ROYAL_BOSS_BITE_DAMAGE_MULTIPLIER.get(); }
static int royalBossBiteCooldownTicks() { return ROYAL_BOSS_BITE_COOLDOWN_TICKS.get(); }
static boolean royalBossMultiplayerScalingEnabled() { return ROYAL_BOSS_MULTIPLAYER_SCALING_ENABLED.get(); }
static int royalBossScalingMaxPlayers() { return ROYAL_BOSS_SCALING_MAX_PLAYERS.get(); }
static double royalBossHealthPerAdditionalPlayer() { return ROYAL_BOSS_HEALTH_PER_ADDITIONAL_PLAYER.get(); }
static double royalBossDamagePerAdditionalPlayer() { return ROYAL_BOSS_DAMAGE_PER_ADDITIONAL_PLAYER.get(); }
static double royalBoundaryRadius() { return ROYAL_BOUNDARY_RADIUS.get(); }
static double royalBoundaryWarningRadius() { return ROYAL_BOUNDARY_WARNING_RADIUS.get(); }
static int royalBoundaryGraceTicks() { return ROYAL_BOUNDARY_GRACE_TICKS.get(); }
static double queenBeamDamage() { return QUEEN_BEAM_DAMAGE.get(); }
static double queenBeamRange() { return QUEEN_BEAM_RANGE.get(); }
static double queenBeamMinimumRange() { return QUEEN_BEAM_MINIMUM_RANGE.get(); }
@@ -1223,10 +1239,6 @@ public final class AntarchyMobsConfig {
static int queenBlackHoleActiveTicks() { return QUEEN_BLACK_HOLE_ACTIVE_TICKS.get(); }
static double queenBlackHolePullStrength() { return QUEEN_BLACK_HOLE_PULL_STRENGTH.get(); }
static int queenBlackHoleBlockSuctionCap() { return QUEEN_BLACK_HOLE_BLOCK_SUCTION_CAP.get(); }
static double queenFinalTimeFieldRadius() { return QUEEN_FINAL_TIME_FIELD_RADIUS.get(); }
static double queenFinalTimeFieldRate() { return QUEEN_FINAL_TIME_FIELD_RATE.get(); }
static int queenFinalTimeFieldDurationTicks() { return QUEEN_FINAL_TIME_FIELD_DURATION_TICKS.get(); }
static int queenFinalTimeFieldCooldownTicks() { return QUEEN_FINAL_TIME_FIELD_COOLDOWN_TICKS.get(); }
static double kingFireballDamage() { return KING_FIREBALL_DAMAGE.get(); }
static double kingFireballRadius() { return KING_FIREBALL_RADIUS.get(); }
static int kingFireballCooldownTicks() { return KING_FIREBALL_COOLDOWN_TICKS.get(); }
@@ -593,7 +593,6 @@ public final class AntarchyNeoForgeClient {
registerGeoItemExtension(event, AntarchyNeoforgeItems.BATTLE_AXE.get());
registerGeoItemExtension(event, AntarchyNeoforgeItems.BIG_BERTHA.get());
registerGeoItemExtension(event, AntarchyNeoforgeItems.ROYAL_GUARDIAN_SWORD.get());
registerGeoItemExtension(event, AntarchyNeoforgeItems.COMPUTER_ITEM.get());
}
@SubscribeEvent
@@ -709,6 +708,7 @@ public final class AntarchyNeoForgeClient {
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.GLOWCAP_MUSHROOM.get(), RenderType.cutout());
registerUltimateBowProperties();
registerUltimateCrossbowProperties();
registerFloppyDiskProperties();
});
}
@@ -728,6 +728,14 @@ public final class AntarchyNeoForgeClient {
});
}
private static void registerFloppyDiskProperties() {
ItemProperties.register(
AntarchyNeoforgeItems.FLOPPY_DISK.get(),
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "disk_category"),
(stack, level, entity, seed) -> com.craisinlord.antarchy.content.item.FloppyDiskItem.categoryModelProperty(stack)
);
}
private static void registerUltimateBowProperties() {
ItemProperties.register(
AntarchyNeoforgeItems.ULTIMATE_BOW.get(),
@@ -23,6 +23,7 @@ import com.craisinlord.antarchy.content.entity.multipart.MultipartFramework;
import com.craisinlord.antarchy.content.entity.vortex.VortexChargeProjectileEntity;
import com.craisinlord.antarchy.content.entity.vortex.VortexEntity;
import com.craisinlord.antarchy.content.entity.trades.DrTrayaurusTradeManager;
import com.craisinlord.antarchy.content.entity.trades.ComputerScientistTradeManager;
import com.craisinlord.antarchy.content.horde.CavarynHordeManager;
import com.craisinlord.antarchy.content.item.*;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager;
@@ -254,7 +255,15 @@ public final class AntarchyNeoForgeEvents {
}
static void onVillagerTrades(VillagerTradesEvent event) {
if (event.getType() == VillagerProfession.FARMER) {
if (event.getType() == AntarchyNeoforgeMisc.COMPUTER_SCIENTIST.get()) {
int[] slots = ComputerScientistTradeManager.slotsPerLevel();
for (int level = 1; level <= slots.length; level++) {
for (int index = 0; index < slots[level - 1]; index++) {
event.getTrades().computeIfAbsent(level, ignored -> new java.util.ArrayList<>())
.add(ComputerScientistTradeManager.listing(level, index));
}
}
} else if (event.getType() == VillagerProfession.FARMER) {
event.getTrades().get(1).add(emeraldForItems(AntarchyObjects.CORN.get(), 20, 16, 2));
} else if (event.getType() == VillagerProfession.BUTCHER) {
event.getTrades().get(1).add(emeraldForItems(AntarchyObjects.COOKED_CORNDOG.get(), 5, 16, 2));
@@ -312,7 +321,10 @@ public final class AntarchyNeoForgeEvents {
}
}
static void tickCavarynHordes(ServerTickEvent.Post event) {
com.craisinlord.antarchy.content.antmail.AntmailServerData.access(event.getServer()).drainAvailable(event.getServer());
com.craisinlord.antarchy.content.antmail.AntmailEventData.onTick(event.getServer());
for (ServerLevel level : event.getServer().getAllLevels()) {
CavarynHordeManager.tick(level);
com.craisinlord.antarchy.content.horde.CavarynCreatureSpawner.tick(level);
@@ -381,7 +393,9 @@ public final class AntarchyNeoForgeEvents {
static void registerReloadListeners(AddReloadListenerEvent event) {
event.addListener(new DrTrayaurusTradeManager());
event.addListener(new ComputerScientistTradeManager());
event.addListener(com.craisinlord.antarchy.content.guide.ComputerGuideData.instance());
event.addListener(com.craisinlord.antarchy.content.antmail.AntmailEventData.instance());
}
static void handleStartTracking(PlayerEvent.StartTracking event) {
if (event.getTarget().level().isClientSide()) {
@@ -46,6 +46,8 @@ import net.minecraft.world.effect.MobEffect;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.village.poi.PoiType;
import net.minecraft.world.entity.npc.VillagerProfession;
import net.minecraft.world.inventory.MenuType;
import net.minecraft.world.item.alchemy.Potion;
import net.minecraft.world.level.biome.BiomeSource;
@@ -64,6 +66,23 @@ import net.neoforged.neoforge.registries.NeoForgeRegistries;
import java.util.function.Function;
public final class AntarchyNeoforgeMisc {
private static final DeferredRegister<PoiType> POI_TYPES = DeferredRegister.create(Registries.POINT_OF_INTEREST_TYPE, Antarchy.MODID);
private static final DeferredRegister<VillagerProfession> VILLAGER_PROFESSIONS = DeferredRegister.create(Registries.VILLAGER_PROFESSION, Antarchy.MODID);
public static final DeferredHolder<PoiType, PoiType> COMPUTER_POI = POI_TYPES.register("computer",
() -> new PoiType(
java.util.Set.copyOf(AntarchyNeoforgeBlocks.COMPUTER.get().getStateDefinition().getPossibleStates()),
1,
1));
public static final DeferredHolder<VillagerProfession, VillagerProfession> COMPUTER_SCIENTIST = VILLAGER_PROFESSIONS.register("computer_scientist",
() -> new VillagerProfession(
"computer_scientist",
holder -> holder.value() == COMPUTER_POI.get(),
holder -> holder.value() == COMPUTER_POI.get(),
com.google.common.collect.ImmutableSet.of(),
com.google.common.collect.ImmutableSet.of(),
net.minecraft.sounds.SoundEvents.VILLAGER_WORK_LIBRARIAN));
private static final DeferredRegister<MobEffect> MOB_EFFECTS = DeferredRegister.create(Registries.MOB_EFFECT, Antarchy.MODID);
private static final DeferredRegister<Potion> POTIONS = DeferredRegister.create(Registries.POTION, Antarchy.MODID);
private static final DeferredRegister<FluidType> FLUID_TYPES = DeferredRegister.create(NeoForgeRegistries.Keys.FLUID_TYPES, Antarchy.MODID);
@@ -431,6 +450,8 @@ public final class AntarchyNeoforgeMisc {
private AntarchyNeoforgeMisc() {}
public static void register(IEventBus modEventBus) {
POI_TYPES.register(modEventBus);
VILLAGER_PROFESSIONS.register(modEventBus);
MOB_EFFECTS.register(modEventBus);
POTIONS.register(modEventBus);
FLUID_TYPES.register(modEventBus);
@@ -8,8 +8,12 @@ import com.craisinlord.antarchy.content.network.ToggleTigerEyeCamouflagePayload;
import com.craisinlord.antarchy.content.network.AntmailPayloadTypes;
import com.craisinlord.antarchy.content.network.AntmailSetupPayload;
import com.craisinlord.antarchy.content.network.AntmailStateRequestPayload;
import com.craisinlord.antarchy.content.network.AntmailMessageRequestPayload;
import com.craisinlord.antarchy.content.network.AntmailSendPayload;
import com.craisinlord.antarchy.content.network.AntmailReadPayload;
import com.craisinlord.antarchy.content.network.AntmailDeletePayload;
import com.craisinlord.antarchy.content.network.AntmailDraftPayload;
import com.craisinlord.antarchy.content.network.AntmailRetryPayload;
import com.craisinlord.antarchy.content.network.AntmailResultPayload;
import com.craisinlord.antarchy.content.network.AntmailServerHandler;
import com.craisinlord.antarchy.content.item.TigerEyeArmorUtil;
@@ -50,6 +54,10 @@ public class AntarchyNeoforgePayloadHandlers {
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player) AntmailServerHandler.handle(player, payload);
}));
registrar.playToServer(AntmailMessageRequestPayload.TYPE, AntmailMessageRequestPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player) AntmailServerHandler.handle(player, payload);
}));
registrar.playToServer(AntmailSendPayload.TYPE, AntmailSendPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player) AntmailServerHandler.handle(player, payload);
@@ -58,6 +66,18 @@ public class AntarchyNeoforgePayloadHandlers {
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player) AntmailServerHandler.handle(player, payload);
}));
registrar.playToServer(AntmailDeletePayload.TYPE, AntmailDeletePayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player) AntmailServerHandler.handle(player, payload);
}));
registrar.playToServer(AntmailDraftPayload.TYPE, AntmailDraftPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player) AntmailServerHandler.handle(player, payload);
}));
registrar.playToServer(AntmailRetryPayload.TYPE, AntmailRetryPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player) AntmailServerHandler.handle(player, payload);
}));
registrar.playToClient(AntmailResultPayload.TYPE, AntmailResultPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> com.craisinlord.antarchy.content.client.AntmailClientState.update(payload)));
registrar.playToClient(