Skip to content

Commit

Permalink
Update NeoForge
Browse files Browse the repository at this point in the history
  • Loading branch information
Mrbysco committed May 20, 2024
1 parent 3b2f846 commit 79f6b47
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 21 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ version=0.4.2.0
#jei_version=17.3.0.49
#crafttweaker_version=17.0.12
rei_version=15.0.728
architectury_version=12.0.27
architectury_version=12.0.1
cloth_config_version=14.0.126
#curios_version=7.3.4
#patchouli_version=1.20.4-85-NEOFORGE
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/shynieke/statues/Statues.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
import net.neoforged.fml.config.ModConfig;
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.event.server.ServerAboutToStartEvent;
import net.neoforged.neoforge.event.RegisterCommandsEvent;
import net.neoforged.neoforge.event.server.ServerAboutToStartEvent;
import org.slf4j.Logger;

@Mod(Reference.MOD_ID)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.shynieke.statues.blockentities;

import com.mojang.datafixers.util.Either;
import com.shynieke.statues.Statues;
import com.shynieke.statues.blocks.AbstractStatueBase;
import com.shynieke.statues.fakeplayer.StatueFakePlayer;
Expand Down Expand Up @@ -43,16 +44,17 @@
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.Vec3;
import net.neoforged.neoforge.capabilities.Capabilities;
import net.neoforged.neoforge.common.extensions.IOwnedSpawner;
import net.neoforged.neoforge.common.util.FakePlayer;
import net.neoforged.neoforge.event.EventHooks;
import net.neoforged.neoforge.items.IItemHandler;
import net.neoforged.neoforge.items.ItemHandlerHelper;
import org.jetbrains.annotations.Nullable;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class StatueBlockEntity extends AbstractStatueBlockEntity {
public class StatueBlockEntity extends AbstractStatueBlockEntity implements IOwnedSpawner {
private AABB hitbox;
protected RecipeHolder<LootRecipe> cachedLootRecipe;

Expand Down Expand Up @@ -280,10 +282,8 @@ public void summonMob(ServerLevel serverLevel) {
continue;
}

var event = EventHooks.onFinalizeSpawnSpawner(mob, serverLevel, serverLevel.getCurrentDifficultyAt(entity.blockPosition()), null, null);
if (event != null) {
mob.finalizeSpawn(serverLevel, event.getDifficulty(), event.getSpawnType(), event.getSpawnData());
}
net.neoforged.neoforge.event.EventHooks.finalizeMobSpawnSpawner(mob, serverLevel,
serverLevel.getCurrentDifficultyAt(entity.blockPosition()), MobSpawnType.SPAWNER, null, this, true);
}

if (!serverLevel.tryAddFreshEntityWithPassengers(entity)) {
Expand Down Expand Up @@ -366,4 +366,13 @@ public void giveEffect(Player player, BlockPos pos, Holder<MobEffect> effectHold
}
}
}

@Override
@Nullable
public Either<BlockEntity, Entity> getOwner() {
if (this.isSpawner()) {
return com.mojang.datafixers.util.Either.left(this);
}
return null;
}
}
24 changes: 12 additions & 12 deletions src/main/java/com/shynieke/statues/commands/StatuesCommands.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,20 @@
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.context.CommandContext;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.shynieke.statues.Reference;
import com.shynieke.statues.datacomponent.StatueStats;
import com.shynieke.statues.recipe.UpgradeType;
import com.shynieke.statues.registry.StatueDataComponents;
import com.shynieke.statues.registry.StatueTags;
import net.minecraft.ChatFormatting;
import net.minecraft.client.resources.language.I18n;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
import net.minecraft.commands.SharedSuggestionProvider;
import net.minecraft.commands.arguments.EntityArgument;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.server.command.EnumArgument;
import net.neoforged.neoforge.server.command.EnumArgument;

import java.util.Arrays;
import java.util.List;
Expand Down Expand Up @@ -58,9 +58,9 @@ private static int upgradeStatue(CommandContext<CommandSourceStack> ctx) throws
}
ItemStack heldStack = player.getMainHandItem();
if (!heldStack.isEmpty() && heldStack.is(StatueTags.UPGRADEABLE_STATUES)) {
CompoundTag tag = heldStack.getTagElement("BlockEntityTag");
if (tag == null || !tag.contains(Reference.UPGRADED) || tag.getInt(Reference.UPGRADE_SLOTS) < 1) {
fillInTag(heldStack, upgrade, tier);
if (heldStack.has(StatueDataComponents.UPGRADED) ||
heldStack.getOrDefault(StatueDataComponents.STATS, StatueStats.empty()).upgradeSlots() < 1) {
fillInTag(heldStack, tier);
}
for (int i = 0; i < tier; i++) {
upgrade.apply(heldStack, i);
Expand All @@ -77,12 +77,12 @@ private static int upgradeStatue(CommandContext<CommandSourceStack> ctx) throws
return 0;
}

private static void fillInTag(ItemStack stack, UpgradeType type, int tier) {
CompoundTag entityTag = new CompoundTag();
entityTag.putInt(Reference.LEVEL, tier == -1 ? type == UpgradeType.UPGRADE ? 0 : 1 : tier + 1);
entityTag.putBoolean(Reference.UPGRADED, true);
entityTag.putInt(Reference.UPGRADE_SLOTS, 20);
private static void fillInTag(ItemStack stack, int tier) {
stack.set(StatueDataComponents.UPGRADED.get(), true);

stack.addTagElement("BlockEntityTag", entityTag);
StatueStats stats = stack.getOrDefault(StatueDataComponents.STATS.get(), StatueStats.empty());
stats.setLevel(tier == -1 ? 0 : tier + 1);
stats.setUpgradeSlots(20);
stack.set(StatueDataComponents.STATS.get(), stats);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.neoforge.event.entity.living.FinalizeSpawnEvent;
import net.neoforged.neoforge.event.entity.living.LivingDeathEvent;
import net.neoforged.neoforge.event.entity.living.MobSpawnEvent;
import net.neoforged.neoforge.event.level.LevelEvent;
Expand Down Expand Up @@ -63,7 +64,7 @@ public int getLevel(int killedMobs) {
}

@SubscribeEvent
public void onLivingSpawnEvent(MobSpawnEvent.FinalizeSpawn event) {
public void onLivingSpawnEvent(FinalizeSpawnEvent event) {
MobSpawnType spawnReason = event.getSpawnType();
if (spawnReason == MobSpawnType.NATURAL || spawnReason == MobSpawnType.REINFORCEMENT || spawnReason == MobSpawnType.EVENT) {
Mob mob = event.getEntity();
Expand Down

0 comments on commit 79f6b47

Please sign in to comment.