diff --git a/patches/minecraft/net/minecraft/client/Minecraft.java.patch b/patches/minecraft/net/minecraft/client/Minecraft.java.patch index 329a8e64a2..a2d1cd6e26 100644 --- a/patches/minecraft/net/minecraft/client/Minecraft.java.patch +++ b/patches/minecraft/net/minecraft/client/Minecraft.java.patch @@ -344,7 +344,7 @@ } public void m_91156_(ClientLevel p_91157_) { -+ if (f_91073_ != null) net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Unload(f_91073_)); ++ if (f_91073_ != null) net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.LevelEvent.Unload(f_91073_)); ProgressScreen progressscreen = new ProgressScreen(true); progressscreen.m_6309_(Component.m_237115_("connect.joining")); this.m_91362_(progressscreen); @@ -357,7 +357,7 @@ NarratorChatListener.f_93311_.m_93328_(); this.m_91362_(p_91321_); if (this.f_91073_ != null) { -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Unload(f_91073_)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.LevelEvent.Unload(f_91073_)); if (integratedserver != null) { this.f_91026_.m_6180_("waitForServer"); diff --git a/patches/minecraft/net/minecraft/client/multiplayer/ClientChunkCache.java.patch b/patches/minecraft/net/minecraft/client/multiplayer/ClientChunkCache.java.patch index 878d20f572..d1d64256db 100644 --- a/patches/minecraft/net/minecraft/client/multiplayer/ClientChunkCache.java.patch +++ b/patches/minecraft/net/minecraft/client/multiplayer/ClientChunkCache.java.patch @@ -4,7 +4,7 @@ int i = this.f_104410_.m_104481_(p_104456_, p_104457_); LevelChunk levelchunk = this.f_104410_.m_104479_(i); if (m_104438_(levelchunk, p_104456_, p_104457_)) { -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkEvent.Unload(levelchunk)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.ChunkEvent.Unload(levelchunk)); this.f_104410_.m_104487_(i, levelchunk, (LevelChunk)null); } @@ -12,7 +12,7 @@ } this.f_104411_.m_171649_(chunkpos); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkEvent.Load(levelchunk)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.ChunkEvent.Load(levelchunk)); return levelchunk; } } diff --git a/patches/minecraft/net/minecraft/client/multiplayer/ClientLevel.java.patch b/patches/minecraft/net/minecraft/client/multiplayer/ClientLevel.java.patch index 4161fdeb2d..9ebbb6abdc 100644 --- a/patches/minecraft/net/minecraft/client/multiplayer/ClientLevel.java.patch +++ b/patches/minecraft/net/minecraft/client/multiplayer/ClientLevel.java.patch @@ -14,7 +14,7 @@ this.m_46465_(); this.m_46466_(); + this.gatherCapabilities(); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Load(this)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.LevelEvent.Load(this)); } public void m_194171_(Runnable p_194172_) { @@ -30,7 +30,7 @@ } private void m_104739_(int p_104740_, Entity p_104741_) { -+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.EntityJoinWorldEvent(p_104741_, this))) return; ++ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.EntityJoinLevelEvent(p_104741_, this))) return; this.m_171642_(p_104740_, Entity.RemovalReason.DISCARDED); this.f_171631_.m_157653_(p_104741_); + p_104741_.onAddedToWorld(); @@ -86,8 +86,8 @@ p_171716_.m_19877_(); ClientLevel.this.f_104566_.remove(p_171716_); + -+ p_171716_.onRemovedFromWorld(); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.EntityLeaveWorldEvent(p_171716_, ClientLevel.this)); ++ p_171716_.onRemovedFromWorld(); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.EntityLeaveLevelEvent(p_171716_, ClientLevel.this)); + + if (p_171716_.isMultipartEntity()) { + for (net.minecraftforge.entity.PartEntity part : p_171716_.getParts()) { diff --git a/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch b/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch index 8aebabd784..7105bf261e 100644 --- a/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch +++ b/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch @@ -13,7 +13,7 @@ this.m_129841_(dimensiondatastorage); this.f_129732_ = new CommandStorage(dimensiondatastorage); WorldBorder worldborder = serverlevel.m_6857_(); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Load(f_129762_.get(Level.f_46428_))); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.LevelEvent.Load(f_129762_.get(Level.f_46428_))); if (!serverleveldata.m_6535_()) { try { m_177896_(serverlevel, serverleveldata, worldgensettings.m_64660_(), flag); @@ -21,7 +21,7 @@ ServerLevel serverlevel1 = new ServerLevel(this, this.f_129738_, this.f_129744_, derivedleveldata, resourcekey1, entry.getValue(), p_129816_, flag, j, ImmutableList.of(), false); worldborder.m_61929_(new BorderChangeListener.DelegateBorderChangeListener(serverlevel1.m_6857_())); this.f_129762_.put(resourcekey1, serverlevel1); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Load(f_129762_.get(resourcekey))); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.LevelEvent.Load(f_129762_.get(resourcekey))); } } @@ -54,7 +54,7 @@ for(ServerLevel serverlevel2 : this.m_129785_()) { if (serverlevel2 != null) { try { -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Unload(serverlevel2)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.LevelEvent.Unload(serverlevel2)); serverlevel2.close(); } catch (IOException ioexception1) { f_129750_.error("Exception closing the level", (Throwable)ioexception1); @@ -129,7 +129,7 @@ } this.f_129754_.m_6180_("tick"); -+ net.minecraftforge.event.ForgeEventFactory.onPreWorldTick(serverlevel, p_129954_); ++ net.minecraftforge.event.ForgeEventFactory.onPreLevelTick(serverlevel, p_129954_); try { serverlevel.m_8793_(p_129954_); @@ -137,7 +137,7 @@ serverlevel.m_6026_(crashreport); throw new ReportedException(crashreport); } -+ net.minecraftforge.event.ForgeEventFactory.onPostWorldTick(serverlevel, p_129954_); ++ net.minecraftforge.event.ForgeEventFactory.onPostLevelTick(serverlevel, p_129954_); this.f_129754_.m_7238_(); this.f_129754_.m_7238_(); diff --git a/patches/minecraft/net/minecraft/server/level/ChunkMap.java.patch b/patches/minecraft/net/minecraft/server/level/ChunkMap.java.patch index fc1b97d52c..373280aa99 100644 --- a/patches/minecraft/net/minecraft/server/level/ChunkMap.java.patch +++ b/patches/minecraft/net/minecraft/server/level/ChunkMap.java.patch @@ -4,7 +4,7 @@ if (this.f_140131_.remove(p_140182_, p_140183_) && p_203002_ != null) { if (p_203002_ instanceof LevelChunk) { ((LevelChunk)p_203002_).m_62913_(false); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkEvent.Unload(p_203002_)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.ChunkEvent.Unload(p_203002_)); } this.m_140258_(p_203002_); @@ -16,7 +16,7 @@ + p_140384_.currentlyLoading = levelchunk; // Forge - bypass the future chain when getChunk is called, this prevents deadlocks. levelchunk.m_156369_(); levelchunk.m_187958_(this.f_140133_); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkEvent.Load(levelchunk)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.ChunkEvent.Load(levelchunk)); + } finally { + p_140384_.currentlyLoading = null; // Forge - Stop bypassing the future chain. + } @@ -27,7 +27,7 @@ this.f_140133_.m_46473_().m_6174_("chunkSave"); CompoundTag compoundtag = ChunkSerializer.m_63454_(this.f_140133_, p_140259_); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkDataEvent.Save(p_140259_, p_140259_.getWorldForge() != null ? p_140259_.getWorldForge() : this.f_140133_, compoundtag)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.ChunkDataEvent.Save(p_140259_, p_140259_.getWorldForge() != null ? p_140259_.getWorldForge() : this.f_140133_, compoundtag)); this.m_63502_(chunkpos, compoundtag); this.m_140229_(chunkpos, chunkstatus.m_62494_()); return true; diff --git a/patches/minecraft/net/minecraft/server/level/ServerLevel.java.patch b/patches/minecraft/net/minecraft/server/level/ServerLevel.java.patch index fd402a3fe3..15b5a81119 100644 --- a/patches/minecraft/net/minecraft/server/level/ServerLevel.java.patch +++ b/patches/minecraft/net/minecraft/server/level/ServerLevel.java.patch @@ -9,7 +9,7 @@ private final StructureManager f_214997_; private final StructureCheck f_196556_; private final boolean f_8561_; -+ private net.minecraftforge.common.util.WorldCapabilityData capabilityData; ++ private net.minecraftforge.common.util.LevelCapabilityData capabilityData; public ServerLevel(MinecraftServer p_214999_, Executor p_215000_, LevelStorageSource.LevelStorageAccess p_215001_, ServerLevelData p_215002_, ResourceKey p_215003_, LevelStem p_215004_, ChunkProgressListener p_215005_, boolean p_215006_, long p_215007_, List p_215008_, boolean p_215009_) { super(p_215002_, p_215003_, p_215004_.m_204521_(), p_214999_::m_129905_, false, p_215006_, p_215007_, p_214999_.m_213994_()); @@ -96,7 +96,7 @@ this.f_143244_.m_157554_(); } -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Save(this)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.LevelEvent.Save(this)); } } @@ -104,7 +104,7 @@ } private void m_8853_(ServerPlayer p_8854_) { -+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.EntityJoinWorldEvent(p_8854_, this))) return; ++ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.EntityJoinLevelEvent(p_8854_, this))) return; Entity entity = this.m_142646_().m_142694_(p_8854_.m_20148_()); if (entity != null) { f_8566_.warn("Force-added player with duplicate UUID {}", (Object)p_8854_.m_20148_().toString()); @@ -193,7 +193,7 @@ + protected void initCapabilities() { + this.gatherCapabilities(); -+ capabilityData = this.m_8895_().m_164861_(e -> net.minecraftforge.common.util.WorldCapabilityData.load(e, getCapabilities()), () -> new net.minecraftforge.common.util.WorldCapabilityData(getCapabilities()), net.minecraftforge.common.util.WorldCapabilityData.ID); ++ capabilityData = this.m_8895_().m_164861_(e -> net.minecraftforge.common.util.LevelCapabilityData.load(e, getCapabilities()), () -> new net.minecraftforge.common.util.LevelCapabilityData(getCapabilities()), net.minecraftforge.common.util.LevelCapabilityData.ID); + capabilityData.setCapabilities(getCapabilities()); + } + @@ -226,7 +226,7 @@ p_143375_.m_213651_(DynamicGameEventListener::m_223634_); + + p_143375_.onRemovedFromWorld(); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.EntityLeaveWorldEvent(p_143375_, ServerLevel.this)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.EntityLeaveLevelEvent(p_143375_, ServerLevel.this)); } + @Override diff --git a/patches/minecraft/net/minecraft/world/entity/LivingEntity.java.patch b/patches/minecraft/net/minecraft/world/entity/LivingEntity.java.patch index 0ab70ea7e1..188ce3dfde 100644 --- a/patches/minecraft/net/minecraft/world/entity/LivingEntity.java.patch +++ b/patches/minecraft/net/minecraft/world/entity/LivingEntity.java.patch @@ -81,7 +81,7 @@ this.m_141973_(mobeffectinstance, true, (Entity)null); })) { - if (!this.f_19853_.f_46443_) { -+ if (!this.f_19853_.f_46443_ && !net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.living.PotionEvent.PotionExpiryEvent(this, mobeffectinstance))) { ++ if (!this.f_19853_.f_46443_ && !net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.living.MobEffectEvent.Expired(this, mobeffectinstance))) { iterator.remove(); this.m_7285_(mobeffectinstance); } @@ -113,7 +113,7 @@ for(flag = false; iterator.hasNext(); flag = true) { - this.m_7285_(iterator.next()); + MobEffectInstance effect = iterator.next(); -+ if(net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.living.PotionEvent.PotionRemoveEvent(this, effect))) continue; ++ if(net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.living.MobEffectEvent.Remove(this, effect))) continue; + this.m_7285_(effect); iterator.remove(); } @@ -122,7 +122,7 @@ return false; } else { MobEffectInstance mobeffectinstance = this.f_20945_.get(p_147208_.m_19544_()); -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.living.PotionEvent.PotionAddedEvent(this, mobeffectinstance, p_147208_, p_147209_)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.living.MobEffectEvent.Added(this, mobeffectinstance, p_147208_, p_147209_)); if (mobeffectinstance == null) { this.f_20945_.put(p_147208_.m_19544_(), p_147208_); this.m_142540_(p_147208_, p_147209_); @@ -130,7 +130,7 @@ } public boolean m_7301_(MobEffectInstance p_21197_) { -+ net.minecraftforge.event.entity.living.PotionEvent.PotionApplicableEvent event = new net.minecraftforge.event.entity.living.PotionEvent.PotionApplicableEvent(this, p_21197_); ++ net.minecraftforge.event.entity.living.MobEffectEvent.Applicable event = new net.minecraftforge.event.entity.living.MobEffectEvent.Applicable(this, p_21197_); + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event); + if (event.getResult() != net.minecraftforge.eventbus.api.Event.Result.DEFAULT) return event.getResult() == net.minecraftforge.eventbus.api.Event.Result.ALLOW; if (this.m_6336_() == MobType.f_21641_) { @@ -140,7 +140,7 @@ } public boolean m_21195_(MobEffect p_21196_) { -+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.living.PotionEvent.PotionRemoveEvent(this, p_21196_))) return false; ++ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.living.MobEffectEvent.Remove(this, p_21196_))) return false; MobEffectInstance mobeffectinstance = this.m_6234_(p_21196_); if (mobeffectinstance != null) { this.m_7285_(mobeffectinstance); @@ -468,7 +468,7 @@ } public void m_8119_() { -+ if (net.minecraftforge.common.ForgeHooks.onLivingUpdate(this)) return; ++ if (net.minecraftforge.common.ForgeHooks.onLivingTick(this)) return; super.m_8119_(); this.m_21329_(); this.m_21333_(); @@ -665,7 +665,7 @@ + Iterator itr = this.f_20945_.values().iterator(); + while (itr.hasNext()) { + MobEffectInstance effect = itr.next(); -+ if (effect.isCurativeItem(curativeItem) && !net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.living.PotionEvent.PotionRemoveEvent(this, effect))) { ++ if (effect.isCurativeItem(curativeItem) && !net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.living.MobEffectEvent.Remove(this, effect))) { + this.m_7285_(effect); + itr.remove(); + ret = true; diff --git a/patches/minecraft/net/minecraft/world/entity/monster/Spider.java.patch b/patches/minecraft/net/minecraft/world/entity/monster/Spider.java.patch index c0f9023a8a..7301595c76 100644 --- a/patches/minecraft/net/minecraft/world/entity/monster/Spider.java.patch +++ b/patches/minecraft/net/minecraft/world/entity/monster/Spider.java.patch @@ -6,7 +6,7 @@ public boolean m_7301_(MobEffectInstance p_33809_) { - return p_33809_.m_19544_() == MobEffects.f_19614_ ? false : super.m_7301_(p_33809_); + if (p_33809_.m_19544_() == MobEffects.f_19614_) { -+ net.minecraftforge.event.entity.living.PotionEvent.PotionApplicableEvent event = new net.minecraftforge.event.entity.living.PotionEvent.PotionApplicableEvent(this, p_33809_); ++ net.minecraftforge.event.entity.living.MobEffectEvent.Applicable event = new net.minecraftforge.event.entity.living.MobEffectEvent.Applicable(this, p_33809_); + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event); + return event.getResult() == net.minecraftforge.eventbus.api.Event.Result.ALLOW; + } diff --git a/patches/minecraft/net/minecraft/world/entity/npc/Villager.java.patch b/patches/minecraft/net/minecraft/world/entity/npc/Villager.java.patch index ac3d2d83dc..f6ce93e0e8 100644 --- a/patches/minecraft/net/minecraft/world/entity/npc/Villager.java.patch +++ b/patches/minecraft/net/minecraft/world/entity/npc/Villager.java.patch @@ -14,7 +14,7 @@ protected Component m_5677_() { - return Component.m_237115_(this.m_6095_().m_20675_() + "." + Registry.f_122869_.m_7981_(this.m_7141_().m_35571_()).m_135815_()); -+ net.minecraft.resources.ResourceLocation profName = net.minecraftforge.registries.ForgeRegistries.PROFESSIONS.getKey(this.m_7141_().m_35571_()); ++ net.minecraft.resources.ResourceLocation profName = net.minecraftforge.registries.ForgeRegistries.VILLAGER_PROFESSIONS.getKey(this.m_7141_().m_35571_()); + return Component.m_237115_(this.m_6095_().m_20675_() + '.' + (!"minecraft".equals(profName.m_135827_()) ? profName.m_135827_() + '.' : "") + profName.m_135815_()); } diff --git a/patches/minecraft/net/minecraft/world/item/Item.java.patch b/patches/minecraft/net/minecraft/world/item/Item.java.patch index 5f17e38215..c10c61557b 100644 --- a/patches/minecraft/net/minecraft/world/item/Item.java.patch +++ b/patches/minecraft/net/minecraft/world/item/Item.java.patch @@ -99,11 +99,11 @@ public boolean m_8120_(ItemStack p_41456_) { - return this.m_41459_() == 1 && this.m_41465_(); -+ return this.getItemStackLimit(p_41456_) == 1 && this.isDamageable(p_41456_); ++ return this.getMaxStackSize(p_41456_) == 1 && this.isDamageable(p_41456_); } protected static BlockHitResult m_41435_(Level p_41436_, Player p_41437_, ClipContext.Fluid p_41438_) { -@@ -305,8 +_,8 @@ +@@ -305,11 +_,13 @@ float f5 = Mth.m_14031_(-f * ((float)Math.PI / 180F)); float f6 = f3 * f4; float f7 = f2 * f4; @@ -114,6 +114,11 @@ return p_41436_.m_45547_(new ClipContext(vec3, vec31, ClipContext.Block.OUTLINE, p_41438_, p_41437_)); } ++ /** Forge: Use ItemStack sensitive version. */ ++ @Deprecated + public int m_6473_() { + return 0; + } @@ -322,6 +_,7 @@ } diff --git a/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch b/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch index 4b1a35a520..51a673ae01 100644 --- a/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch +++ b/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch @@ -107,7 +107,7 @@ public int m_41741_() { - return this.m_41720_().m_41459_(); -+ return this.m_41720_().getItemStackLimit(this); ++ return this.m_41720_().getMaxStackSize(this); } public boolean m_41753_() { diff --git a/patches/minecraft/net/minecraft/world/item/crafting/BannerDuplicateRecipe.java.patch b/patches/minecraft/net/minecraft/world/item/crafting/BannerDuplicateRecipe.java.patch index ec057917ad..68a9782d85 100644 --- a/patches/minecraft/net/minecraft/world/item/crafting/BannerDuplicateRecipe.java.patch +++ b/patches/minecraft/net/minecraft/world/item/crafting/BannerDuplicateRecipe.java.patch @@ -6,8 +6,8 @@ if (!itemstack.m_41619_()) { - if (itemstack.m_41720_().m_41470_()) { - nonnulllist.set(i, new ItemStack(itemstack.m_41720_().m_41469_())); -+ if (itemstack.hasContainerItem()) { -+ nonnulllist.set(i, itemstack.getContainerItem()); ++ if (itemstack.hasCraftingRemainingItem()) { ++ nonnulllist.set(i, itemstack.getCraftingRemainingItem()); } else if (itemstack.m_41782_() && BannerBlockEntity.m_58504_(itemstack) > 0) { ItemStack itemstack1 = itemstack.m_41777_(); itemstack1.m_41764_(1); diff --git a/patches/minecraft/net/minecraft/world/item/crafting/BookCloningRecipe.java.patch b/patches/minecraft/net/minecraft/world/item/crafting/BookCloningRecipe.java.patch index 49d15ffcf1..8d522c838c 100644 --- a/patches/minecraft/net/minecraft/world/item/crafting/BookCloningRecipe.java.patch +++ b/patches/minecraft/net/minecraft/world/item/crafting/BookCloningRecipe.java.patch @@ -6,8 +6,8 @@ ItemStack itemstack = p_43820_.m_8020_(i); - if (itemstack.m_41720_().m_41470_()) { - nonnulllist.set(i, new ItemStack(itemstack.m_41720_().m_41469_())); -+ if (itemstack.hasContainerItem()) { -+ nonnulllist.set(i, itemstack.getContainerItem()); ++ if (itemstack.hasCraftingRemainingItem()) { ++ nonnulllist.set(i, itemstack.getCraftingRemainingItem()); } else if (itemstack.m_41720_() instanceof WrittenBookItem) { ItemStack itemstack1 = itemstack.m_41777_(); itemstack1.m_41764_(1); diff --git a/patches/minecraft/net/minecraft/world/item/crafting/Recipe.java.patch b/patches/minecraft/net/minecraft/world/item/crafting/Recipe.java.patch index 33dcd47a87..f6ea233cbb 100644 --- a/patches/minecraft/net/minecraft/world/item/crafting/Recipe.java.patch +++ b/patches/minecraft/net/minecraft/world/item/crafting/Recipe.java.patch @@ -8,8 +8,8 @@ - if (item.m_41470_()) { - nonnulllist.set(i, new ItemStack(item.m_41469_())); + ItemStack item = p_44004_.m_8020_(i); -+ if (item.hasContainerItem()) { -+ nonnulllist.set(i, item.getContainerItem()); ++ if (item.hasCraftingRemainingItem()) { ++ nonnulllist.set(i, item.getCraftingRemainingItem()); } } diff --git a/patches/minecraft/net/minecraft/world/item/enchantment/EnchantmentHelper.java.patch b/patches/minecraft/net/minecraft/world/item/enchantment/EnchantmentHelper.java.patch index 161dd37007..969315e673 100644 --- a/patches/minecraft/net/minecraft/world/item/enchantment/EnchantmentHelper.java.patch +++ b/patches/minecraft/net/minecraft/world/item/enchantment/EnchantmentHelper.java.patch @@ -43,7 +43,7 @@ public static int m_220287_(RandomSource p_220288_, int p_220289_, int p_220290_, ItemStack p_220291_) { Item item = p_220291_.m_41720_(); - int i = item.m_6473_(); -+ int i = p_220291_.getItemEnchantability(); ++ int i = p_220291_.getEnchantmentValue(); if (i <= 0) { return 0; } else { @@ -52,7 +52,7 @@ List list = Lists.newArrayList(); Item item = p_220299_.m_41720_(); - int i = item.m_6473_(); -+ int i = p_220299_.getItemEnchantability(); ++ int i = p_220299_.getEnchantmentValue(); if (i <= 0) { return list; } else { diff --git a/patches/minecraft/net/minecraft/world/level/block/NoteBlock.java.patch b/patches/minecraft/net/minecraft/world/level/block/NoteBlock.java.patch index 631498721c..d9c1424cb3 100644 --- a/patches/minecraft/net/minecraft/world/level/block/NoteBlock.java.patch +++ b/patches/minecraft/net/minecraft/world/level/block/NoteBlock.java.patch @@ -15,7 +15,7 @@ } public boolean m_8133_(BlockState p_55023_, Level p_55024_, BlockPos p_55025_, int p_55026_, int p_55027_) { -+ net.minecraftforge.event.world.NoteBlockEvent.Play e = new net.minecraftforge.event.world.NoteBlockEvent.Play(p_55024_, p_55025_, p_55023_, p_55023_.m_61143_(f_55013_), p_55023_.m_61143_(f_55011_)); ++ net.minecraftforge.event.level.NoteBlockEvent.Play e = new net.minecraftforge.event.level.NoteBlockEvent.Play(p_55024_, p_55025_, p_55023_, p_55023_.m_61143_(f_55013_), p_55023_.m_61143_(f_55011_)); + if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(e)) return false; + p_55023_ = p_55023_.m_61124_(f_55013_, e.getVanillaNoteId()).m_61124_(f_55011_, e.getInstrument()); int i = p_55023_.m_61143_(f_55013_); diff --git a/patches/minecraft/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java.patch b/patches/minecraft/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java.patch index 2aa9f0f0ca..af7fa25e9f 100644 --- a/patches/minecraft/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java.patch +++ b/patches/minecraft/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java.patch @@ -55,8 +55,8 @@ p_155017_.f_58317_ = p_155017_.f_58316_; if (p_155017_.m_58425_()) { flag1 = true; -+ if (itemstack.hasContainerItem()) -+ p_155017_.f_58310_.set(1, itemstack.getContainerItem()); ++ if (itemstack.hasCraftingRemainingItem()) ++ p_155017_.f_58310_.set(1, itemstack.getCraftingRemainingItem()); + else if (flag3) { Item item = itemstack.m_41720_(); @@ -64,7 +64,7 @@ if (itemstack.m_41619_()) { - Item item1 = item.m_41469_(); - p_155017_.f_58310_.set(1, item1 == null ? ItemStack.f_41583_ : new ItemStack(item1)); -+ p_155017_.f_58310_.set(1, itemstack.getContainerItem()); ++ p_155017_.f_58310_.set(1, itemstack.getCraftingRemainingItem()); } } } diff --git a/patches/minecraft/net/minecraft/world/level/block/entity/BlockEntity.java.patch b/patches/minecraft/net/minecraft/world/level/block/entity/BlockEntity.java.patch index d09e130c37..e8c6eb212e 100644 --- a/patches/minecraft/net/minecraft/world/level/block/entity/BlockEntity.java.patch +++ b/patches/minecraft/net/minecraft/world/level/block/entity/BlockEntity.java.patch @@ -13,7 +13,7 @@ protected final BlockPos f_58858_; protected boolean f_58859_; private BlockState f_58856_; -+ private CompoundTag customTileData; ++ private CompoundTag customPersistentData; public BlockEntity(BlockEntityType p_155228_, BlockPos p_155229_, BlockState p_155230_) { + super(BlockEntity.class); @@ -28,12 +28,12 @@ } public void m_142466_(CompoundTag p_155245_) { -+ if (p_155245_.m_128441_("ForgeData")) this.customTileData = p_155245_.m_128469_("ForgeData"); ++ if (p_155245_.m_128441_("ForgeData")) this.customPersistentData = p_155245_.m_128469_("ForgeData"); + if (getCapabilities() != null && p_155245_.m_128441_("ForgeCaps")) deserializeCaps(p_155245_.m_128469_("ForgeCaps")); } protected void m_183515_(CompoundTag p_187471_) { -+ if (this.customTileData != null) p_187471_.m_128365_("ForgeData", this.customTileData.m_6426_()); ++ if (this.customPersistentData != null) p_187471_.m_128365_("ForgeData", this.customPersistentData.m_6426_()); + if (getCapabilities() != null) p_187471_.m_128365_("ForgeCaps", serializeCaps()); } @@ -59,10 +59,10 @@ + } + + @Override -+ public CompoundTag getTileData() { -+ if (this.customTileData == null) -+ this.customTileData = new CompoundTag(); -+ return this.customTileData; ++ public CompoundTag getPersistentData() { ++ if (this.customPersistentData == null) ++ this.customPersistentData = new CompoundTag(); ++ return this.customPersistentData; } /** @deprecated */ diff --git a/patches/minecraft/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java.patch b/patches/minecraft/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java.patch index ba2a0d4c3e..8b82456551 100644 --- a/patches/minecraft/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java.patch +++ b/patches/minecraft/net/minecraft/world/level/block/entity/BrewingStandBlockEntity.java.patch @@ -24,8 +24,8 @@ - ItemStack itemstack1 = new ItemStack(itemstack.m_41720_().m_41469_()); + net.minecraftforge.common.brewing.BrewingRecipeRegistry.brewPotions(p_155293_, itemstack, f_58974_); + net.minecraftforge.event.ForgeEventFactory.onPotionBrewed(p_155293_); -+ if (itemstack.hasContainerItem()) { -+ ItemStack itemstack1 = itemstack.getContainerItem(); ++ if (itemstack.hasCraftingRemainingItem()) { ++ ItemStack itemstack1 = itemstack.getCraftingRemainingItem(); + itemstack.m_41774_(1); if (itemstack.m_41619_()) { itemstack = itemstack1; diff --git a/patches/minecraft/net/minecraft/world/level/chunk/storage/ChunkSerializer.java.patch b/patches/minecraft/net/minecraft/world/level/chunk/storage/ChunkSerializer.java.patch index 2243231c59..4bd00e0e32 100644 --- a/patches/minecraft/net/minecraft/world/level/chunk/storage/ChunkSerializer.java.patch +++ b/patches/minecraft/net/minecraft/world/level/chunk/storage/ChunkSerializer.java.patch @@ -21,7 +21,7 @@ } if (chunkstatus$chunktype == ChunkStatus.ChunkType.LEVELCHUNK) { -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkDataEvent.Load(chunkaccess, p_188234_, chunkstatus$chunktype)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.ChunkDataEvent.Load(chunkaccess, p_188234_, chunkstatus$chunktype)); return new ImposterProtoChunk((LevelChunk)chunkaccess, false); } else { ProtoChunk protochunk1 = (ProtoChunk)chunkaccess; @@ -29,7 +29,7 @@ protochunk1.m_188186_(generationstep$carving, new CarvingMask(compoundtag4.m_128467_(s1), chunkaccess.m_141937_())); } -+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkDataEvent.Load(chunkaccess, p_188234_, chunkstatus$chunktype)); ++ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.level.ChunkDataEvent.Load(chunkaccess, p_188234_, chunkstatus$chunktype)); return protochunk1; } } diff --git a/patches/minecraft/net/minecraft/world/level/entity/PersistentEntitySectionManager.java.patch b/patches/minecraft/net/minecraft/world/level/entity/PersistentEntitySectionManager.java.patch index 6160dcfbd1..d04074ad90 100644 --- a/patches/minecraft/net/minecraft/world/level/entity/PersistentEntitySectionManager.java.patch +++ b/patches/minecraft/net/minecraft/world/level/entity/PersistentEntitySectionManager.java.patch @@ -9,7 +9,7 @@ + } + private boolean m_157538_(T p_157539_, boolean p_157540_) { -+ if (p_157539_ instanceof Entity entity && net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.EntityJoinWorldEvent(entity, entity.f_19853_, p_157540_))) return false; ++ if (p_157539_ instanceof Entity entity && net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.EntityJoinLevelEvent(entity, entity.f_19853_, p_157540_))) return false; + return addEntityWithoutEvent(p_157539_, p_157540_); + } + diff --git a/src/main/java/net/minecraftforge/client/ConfigGuiHandler.java b/src/main/java/net/minecraftforge/client/ConfigScreenHandler.java similarity index 63% rename from src/main/java/net/minecraftforge/client/ConfigGuiHandler.java rename to src/main/java/net/minecraftforge/client/ConfigScreenHandler.java index 4d92822c12..af93ef4773 100644 --- a/src/main/java/net/minecraftforge/client/ConfigGuiHandler.java +++ b/src/main/java/net/minecraftforge/client/ConfigScreenHandler.java @@ -14,12 +14,12 @@ import net.minecraftforge.forgespi.language.IModInfo; import java.util.Optional; import java.util.function.BiFunction; -public class ConfigGuiHandler +public class ConfigScreenHandler { - public record ConfigGuiFactory(BiFunction screenFunction) implements IExtensionPoint {} - public static Optional> getGuiFactoryFor(IModInfo selectedMod) + public record ConfigScreenFactory(BiFunction screenFunction) implements IExtensionPoint {} + public static Optional> getScreenFactoryFor(IModInfo selectedMod) { return ModList.get().getModContainerById(selectedMod.getModId()). - flatMap(mc -> mc.getCustomExtension(ConfigGuiFactory.class).map(ConfigGuiFactory::screenFunction)); + flatMap(mc -> mc.getCustomExtension(ConfigScreenFactory.class).map(ConfigScreenFactory::screenFunction)); } } diff --git a/src/main/java/net/minecraftforge/client/gui/ModListScreen.java b/src/main/java/net/minecraftforge/client/gui/ModListScreen.java index b1d12a0517..e09991368c 100644 --- a/src/main/java/net/minecraftforge/client/gui/ModListScreen.java +++ b/src/main/java/net/minecraftforge/client/gui/ModListScreen.java @@ -19,10 +19,11 @@ import java.util.stream.Collectors; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.gui.narration.NarrationElementOutput; import net.minecraft.client.renderer.GameRenderer; +import net.minecraftforge.client.ConfigScreenHandler; import net.minecraftforge.client.gui.widget.ModListWidget; import net.minecraftforge.client.gui.widget.ScrollPanel; import net.minecraftforge.fml.loading.moddiscovery.ModFileInfo; -import net.minecraftforge.resource.PathResourcePack; +import net.minecraftforge.resource.PathPackResources; import org.apache.commons.lang3.tuple.Pair; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -50,7 +51,6 @@ import net.minecraftforge.common.util.MavenVersionStringHelper; import net.minecraftforge.fml.ModContainer; import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.VersionChecker; -import net.minecraftforge.client.ConfigGuiHandler; import net.minecraftforge.fml.loading.FMLPaths; import net.minecraftforge.fml.loading.StringUtils; import net.minecraftforge.resource.ResourcePackLoader; @@ -302,7 +302,7 @@ public class ModListScreen extends Screen if (selected == null) return; try { - ConfigGuiHandler.getGuiFactoryFor(selected.getInfo()).map(f->f.apply(this.minecraft, this)).ifPresent(newScreen -> this.minecraft.setScreen(newScreen)); + ConfigScreenHandler.getScreenFactoryFor(selected.getInfo()).map(f->f.apply(this.minecraft, this)).ifPresent(newScreen -> this.minecraft.setScreen(newScreen)); } catch (final Exception e) { @@ -398,7 +398,7 @@ public class ModListScreen extends Screen return; } IModInfo selectedMod = selected.getInfo(); - this.configButton.active = ConfigGuiHandler.getGuiFactoryFor(selectedMod).isPresent(); + this.configButton.active = ConfigScreenHandler.getScreenFactoryFor(selectedMod).isPresent(); List lines = new ArrayList<>(); VersionChecker.CheckResult vercheck = VersionChecker.getResult(selectedMod); @@ -406,7 +406,7 @@ public class ModListScreen extends Screen Pair logoData = selectedMod.getLogoFile().map(logoFile-> { TextureManager tm = this.minecraft.getTextureManager(); - final PathResourcePack resourcePack = ResourcePackLoader.getPackFor(selectedMod.getModId()) + final PathPackResources resourcePack = ResourcePackLoader.getPackFor(selectedMod.getModId()) .orElse(ResourcePackLoader.getPackFor("forge"). orElseThrow(()->new RuntimeException("Can't find forge, WHAT!"))); try diff --git a/src/main/java/net/minecraftforge/client/loading/ClientModLoader.java b/src/main/java/net/minecraftforge/client/loading/ClientModLoader.java index 91d1c4cbd7..c1be2ec31f 100644 --- a/src/main/java/net/minecraftforge/client/loading/ClientModLoader.java +++ b/src/main/java/net/minecraftforge/client/loading/ClientModLoader.java @@ -29,7 +29,7 @@ import net.minecraftforge.internal.BrandingControl; import net.minecraftforge.logging.CrashReportExtender; import net.minecraftforge.common.util.LogicalSidedProvider; import net.minecraftforge.forgespi.locating.IModFile; -import net.minecraftforge.resource.PathResourcePack; +import net.minecraftforge.resource.PathPackResources; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -46,7 +46,7 @@ import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.ForgeConfig; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.client.gui.LoadingErrorScreen; -import net.minecraftforge.resource.DelegatingResourcePack; +import net.minecraftforge.resource.DelegatingPackResources; import net.minecraftforge.resource.ResourcePackLoader; import net.minecraftforge.server.LanguageHook; import net.minecraftforge.forgespi.language.IModInfo; @@ -182,13 +182,13 @@ public class ClientModLoader return loading; } - private static RepositorySource buildPackFinder(Map modResourcePacks) { + private static RepositorySource buildPackFinder(Map modResourcePacks) { return (packList, factory) -> clientPackFinder(modResourcePacks, packList, factory); } - private static void clientPackFinder(Map modResourcePacks, Consumer consumer, Pack.PackConstructor factory) { - List hiddenPacks = new ArrayList<>(); - for (Entry e : modResourcePacks.entrySet()) + private static void clientPackFinder(Map modResourcePacks, Consumer consumer, Pack.PackConstructor factory) { + List hiddenPacks = new ArrayList<>(); + for (Entry e : modResourcePacks.entrySet()) { IModInfo mod = e.getKey().getModInfos().get(0); final String name = "mod:" + mod.getModId(); @@ -205,7 +205,7 @@ public class ClientModLoader hiddenPacks.add(e.getValue()); } } - final Pack packInfo = Pack.create("mod_resources", true, () -> new DelegatingResourcePack("mod_resources", "Mod Resources", + final Pack packInfo = Pack.create("mod_resources", true, () -> new DelegatingPackResources("mod_resources", "Mod Resources", new PackMetadataSection(Component.translatable("fml.resources.modresources", hiddenPacks.size()), PackType.CLIENT_RESOURCES.getVersion(SharedConstants.getCurrentVersion())), hiddenPacks), factory, Pack.Position.BOTTOM, PackSource.DEFAULT); consumer.accept(packInfo); diff --git a/src/main/java/net/minecraftforge/client/model/data/ModelDataManager.java b/src/main/java/net/minecraftforge/client/model/data/ModelDataManager.java index f215fcff18..6fe56c29f1 100644 --- a/src/main/java/net/minecraftforge/client/model/data/ModelDataManager.java +++ b/src/main/java/net/minecraftforge/client/model/data/ModelDataManager.java @@ -11,7 +11,7 @@ import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.event.world.ChunkEvent; +import net.minecraftforge.event.level.ChunkEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; diff --git a/src/main/java/net/minecraftforge/common/ForgeHooks.java b/src/main/java/net/minecraftforge/common/ForgeHooks.java index 1d7e888b90..6e3ac69c4b 100644 --- a/src/main/java/net/minecraftforge/common/ForgeHooks.java +++ b/src/main/java/net/minecraftforge/common/ForgeHooks.java @@ -26,11 +26,9 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import com.mojang.serialization.Codec; import com.mojang.serialization.Lifecycle; -import com.mojang.serialization.codecs.RecordCodecBuilder; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.minecraft.ResourceLocationException; -import net.minecraft.Util; import net.minecraft.advancements.Advancement; import net.minecraft.core.*; import net.minecraft.network.chat.*; @@ -86,7 +84,6 @@ import net.minecraft.world.*; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.block.entity.FurnaceBlockEntity; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.sounds.SoundEvents; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.HitResult; import net.minecraft.world.phys.BlockHitResult; @@ -101,8 +98,6 @@ import net.minecraftforge.common.loot.LootTableIdCondition; import net.minecraftforge.common.util.BlockSnapshot; import net.minecraftforge.common.util.Lazy; import net.minecraftforge.common.util.MavenVersionStringHelper; -import net.minecraftforge.common.world.BiomeGenerationSettingsBuilder; -import net.minecraftforge.common.world.MobSpawnSettingsBuilder; import net.minecraftforge.event.AnvilUpdateEvent; import net.minecraftforge.event.DifficultyChangeEvent; import net.minecraftforge.event.ForgeEventFactory; @@ -122,7 +117,7 @@ import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.entity.living.LivingDropsEvent; import net.minecraftforge.event.entity.living.LivingEvent; import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingTickEvent; import net.minecraftforge.event.entity.living.LivingFallEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.event.entity.living.LivingKnockBackEvent; @@ -136,8 +131,8 @@ import net.minecraftforge.event.entity.player.CriticalHitEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.entity.living.LivingGetProjectileEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; -import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.event.world.NoteBlockEvent; +import net.minecraftforge.event.level.BlockEvent; +import net.minecraftforge.event.level.NoteBlockEvent; import net.minecraftforge.eventbus.api.Event.Result; import net.minecraftforge.fluids.FluidType; import net.minecraftforge.fml.ModContainer; @@ -149,7 +144,6 @@ import net.minecraftforge.registries.ForgeRegistry; import net.minecraftforge.registries.GameData; import net.minecraftforge.registries.RegistryManager; -import net.minecraftforge.server.ServerLifecycleHooks; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Marker; @@ -164,10 +158,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.state.pattern.BlockInWorld; import net.minecraft.world.level.dimension.LevelStem; -import net.minecraft.world.level.material.EmptyFluid; import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.level.material.LavaFluid; -import net.minecraft.world.level.material.WaterFluid; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -227,7 +218,7 @@ public class ForgeHooks result = entity.getPickedResult(target); if (result.isEmpty()) - LOGGER.warn("Picking on: [{}] {} gave null item", target.getType(), ForgeRegistries.ENTITIES.getKey(entity.getType())); + LOGGER.warn("Picking on: [{}] {} gave null item", target.getType(), ForgeRegistries.ENTITY_TYPES.getKey(entity.getType())); } if (result.isEmpty()) @@ -267,9 +258,9 @@ public class ForgeHooks MinecraftForge.EVENT_BUS.post(new LivingSetAttackTargetEvent(entity, target)); } - public static boolean onLivingUpdate(LivingEntity entity) + public static boolean onLivingTick(LivingEntity entity) { - return MinecraftForge.EVENT_BUS.post(new LivingUpdateEvent(entity)); + return MinecraftForge.EVENT_BUS.post(new LivingTickEvent(entity)); } public static boolean onLivingAttack(LivingEntity entity, DamageSource src, float amount) @@ -394,8 +385,8 @@ public class ForgeHooks return null; if (!player.level.isClientSide) - player.getCommandSenderWorld().addFreshEntity(event.getEntityItem()); - return event.getEntityItem(); + player.getCommandSenderWorld().addFreshEntity(event.getEntity()); + return event.getEntity(); } public static boolean onVanillaGameEvent(Level level, GameEvent vanillaEvent, Vec3 pos, GameEvent.Context context) @@ -664,11 +655,11 @@ public class ForgeHooks return craftingPlayer.get(); } @NotNull - public static ItemStack getContainerItem(@NotNull ItemStack stack) + public static ItemStack getCraftingRemainingItem(@NotNull ItemStack stack) { - if (stack.getItem().hasContainerItem(stack)) + if (stack.getItem().hasCraftingRemainingItem(stack)) { - stack = stack.getItem().getContainerItem(stack); + stack = stack.getItem().getCraftingRemainingItem(stack); if (!stack.isEmpty() && stack.isDamageableItem() && stack.getDamageValue() > stack.getMaxDamage()) { ForgeEventFactory.onPlayerDestroyItem(craftingPlayer.get(), stack, null); @@ -1011,7 +1002,7 @@ public class ForgeHooks } else if (item instanceof SpawnEggItem) { - ResourceLocation resourceLocation = ForgeRegistries.ENTITIES.getKey(((SpawnEggItem) item).getType(null)); + ResourceLocation resourceLocation = ForgeRegistries.ENTITY_TYPES.getKey(((SpawnEggItem) item).getType(null)); if (resourceLocation != null) { return resourceLocation.getNamespace(); @@ -1081,7 +1072,7 @@ public class ForgeHooks if (serializer == null) { // ForgeRegistries.DATA_SERIALIZERS is a deferred register now, so if this method is called too early, the registry will be null - ForgeRegistry> registry = (ForgeRegistry>) ForgeRegistries.DATA_SERIALIZERS.get(); + ForgeRegistry> registry = (ForgeRegistry>) ForgeRegistries.ENTITY_DATA_SERIALIZERS.get(); if (registry != null) serializer = registry.getValue(id); } @@ -1094,7 +1085,7 @@ public class ForgeHooks if (id < 0) { // ForgeRegistries.DATA_SERIALIZERS is a deferred register now, so if this method is called too early, the registry will be null - ForgeRegistry> registry = (ForgeRegistry>) ForgeRegistries.DATA_SERIALIZERS.get(); + ForgeRegistry> registry = (ForgeRegistry>) ForgeRegistries.ENTITY_DATA_SERIALIZERS.get(); if (registry != null) id = registry.getID(serializer); } diff --git a/src/main/java/net/minecraftforge/common/ForgeInternalHandler.java b/src/main/java/net/minecraftforge/common/ForgeInternalHandler.java index 25bbba2792..a50708dfa6 100644 --- a/src/main/java/net/minecraftforge/common/ForgeInternalHandler.java +++ b/src/main/java/net/minecraftforge/common/ForgeInternalHandler.java @@ -9,17 +9,16 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraft.util.thread.BlockableEventLoop; import net.minecraft.server.TickTask; import net.minecraft.server.level.ServerLevel; import net.minecraftforge.common.loot.LootModifierManager; import net.minecraftforge.common.util.FakePlayerFactory; import net.minecraftforge.event.AddReloadListenerEvent; import net.minecraftforge.event.RegisterCommandsEvent; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.EntityJoinLevelEvent; import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.world.ChunkEvent; -import net.minecraftforge.event.world.WorldEvent; +import net.minecraftforge.event.level.ChunkEvent; +import net.minecraftforge.event.level.LevelEvent; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.event.TagsUpdatedEvent; @@ -34,7 +33,7 @@ import net.minecraftforge.server.command.ConfigCommand; public class ForgeInternalHandler { @SubscribeEvent(priority = EventPriority.HIGH) - public void onEntityJoinWorld(EntityJoinWorldEvent event) + public void onEntityJoinWorld(EntityJoinLevelEvent event) { Entity entity = event.getEntity(); if (entity.getClass().equals(ItemEntity.class)) @@ -43,13 +42,13 @@ public class ForgeInternalHandler Item item = stack.getItem(); if (item.hasCustomEntity(stack)) { - Entity newEntity = item.createEntity(event.getWorld(), entity, stack); + Entity newEntity = item.createEntity(event.getLevel(), entity, stack); if (newEntity != null) { entity.discard(); event.setCanceled(true); - var executor = LogicalSidedProvider.WORKQUEUE.get(event.getWorld().isClientSide ? LogicalSide.CLIENT : LogicalSide.SERVER); - executor.tell(new TickTask(0, () -> event.getWorld().addFreshEntity(newEntity))); + var executor = LogicalSidedProvider.WORKQUEUE.get(event.getLevel().isClientSide ? LogicalSide.CLIENT : LogicalSide.SERVER); + executor.tell(new TickTask(0, () -> event.getLevel().addFreshEntity(newEntity))); } } } @@ -57,10 +56,10 @@ public class ForgeInternalHandler @SubscribeEvent(priority = EventPriority.HIGHEST) - public void onDimensionUnload(WorldEvent.Unload event) + public void onDimensionUnload(LevelEvent.Unload event) { - if (event.getWorld() instanceof ServerLevel) - FakePlayerFactory.unloadLevel((ServerLevel) event.getWorld()); + if (event.getLevel() instanceof ServerLevel) + FakePlayerFactory.unloadLevel((ServerLevel) event.getLevel()); } @SubscribeEvent @@ -79,7 +78,7 @@ public class ForgeInternalHandler @SubscribeEvent public void onChunkUnload(ChunkEvent.Unload event) { - if (!event.getWorld().isClientSide()) + if (!event.getLevel().isClientSide()) FarmlandWaterManager.removeTickets(event.getChunk()); } @@ -95,7 +94,7 @@ public class ForgeInternalHandler @SubscribeEvent public void playerLogin(PlayerEvent.PlayerLoggedInEvent event) { - UsernameCache.setUsername(event.getPlayer().getUUID(), event.getPlayer().getGameProfile().getName()); + UsernameCache.setUsername(event.getEntity().getUUID(), event.getEntity().getGameProfile().getName()); } @SubscribeEvent diff --git a/src/main/java/net/minecraftforge/common/ForgeMod.java b/src/main/java/net/minecraftforge/common/ForgeMod.java index fd1491055b..a67d6ba9bf 100644 --- a/src/main/java/net/minecraftforge/common/ForgeMod.java +++ b/src/main/java/net/minecraftforge/common/ForgeMod.java @@ -63,7 +63,7 @@ import net.minecraftforge.registries.*; import net.minecraftforge.network.NetworkConstants; import net.minecraftforge.event.server.ServerStoppingEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.network.filters.VanillaPacketSplitter; import net.minecraftforge.server.command.EnumArgument; import net.minecraftforge.server.command.ModIdArgument; @@ -78,7 +78,7 @@ import net.minecraft.resources.ResourceLocation; import net.minecraftforge.common.crafting.CompoundIngredient; import net.minecraftforge.common.crafting.ConditionalRecipe; import net.minecraftforge.common.crafting.CraftingHelper; -import net.minecraftforge.common.crafting.NBTIngredient; +import net.minecraftforge.common.crafting.StrictNBTIngredient; import net.minecraftforge.common.crafting.VanillaIngredientSerializer; import net.minecraftforge.common.crafting.conditions.AndCondition; import net.minecraftforge.common.crafting.conditions.FalseCondition; @@ -167,7 +167,7 @@ public class ForgeMod Decoration.CODEC.fieldOf("step").forGetter(AddFeaturesBiomeModifier::step) ).apply(builder, AddFeaturesBiomeModifier::new)) ); - + /** * Stock biome modifier for removing features from biomes. */ @@ -181,7 +181,7 @@ public class ForgeMod ).optionalFieldOf("steps", EnumSet.allOf(Decoration.class)).forGetter(RemoveFeaturesBiomeModifier::steps) ).apply(builder, RemoveFeaturesBiomeModifier::new)) ); - + /** * Stock biome modifier for adding mob spawns to biomes. */ @@ -196,7 +196,7 @@ public class ForgeMod ).fieldOf("spawners").forGetter(AddSpawnsBiomeModifier::spawners) ).apply(builder, AddSpawnsBiomeModifier::new)) ); - + /** * Stock biome modifier for removing mob spawns from biomes. */ @@ -535,7 +535,7 @@ public class ForgeMod CraftingHelper.register(TagEmptyCondition.Serializer.INSTANCE); CraftingHelper.register(new ResourceLocation("forge", "compound"), CompoundIngredient.Serializer.INSTANCE); - CraftingHelper.register(new ResourceLocation("forge", "nbt"), NBTIngredient.Serializer.INSTANCE); + CraftingHelper.register(new ResourceLocation("forge", "nbt"), StrictNBTIngredient.Serializer.INSTANCE); CraftingHelper.register(new ResourceLocation("forge", "partial_nbt"), PartialNBTIngredient.Serializer.INSTANCE); CraftingHelper.register(new ResourceLocation("forge", "difference"), DifferenceIngredient.Serializer.INSTANCE); CraftingHelper.register(new ResourceLocation("forge", "intersection"), IntersectionIngredient.Serializer.INSTANCE); diff --git a/src/main/java/net/minecraftforge/common/TierSortingRegistry.java b/src/main/java/net/minecraftforge/common/TierSortingRegistry.java index e20720a17c..75679eaa7b 100644 --- a/src/main/java/net/minecraftforge/common/TierSortingRegistry.java +++ b/src/main/java/net/minecraftforge/common/TierSortingRegistry.java @@ -343,7 +343,7 @@ public class TierSortingRegistry private static void playerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) { - if (event.getPlayer() instanceof ServerPlayer serverPlayer) + if (event.getEntity() instanceof ServerPlayer serverPlayer) { syncToPlayer(serverPlayer); } diff --git a/src/main/java/net/minecraftforge/common/VillagerTradingManager.java b/src/main/java/net/minecraftforge/common/VillagerTradingManager.java index f12bbec496..d4cac7d638 100644 --- a/src/main/java/net/minecraftforge/common/VillagerTradingManager.java +++ b/src/main/java/net/minecraftforge/common/VillagerTradingManager.java @@ -63,7 +63,7 @@ public class VillagerTradingManager */ private static void postVillagerEvents() { - for (VillagerProfession prof : ForgeRegistries.PROFESSIONS) + for (VillagerProfession prof : ForgeRegistries.VILLAGER_PROFESSIONS) { Int2ObjectMap trades = VANILLA_TRADES.getOrDefault(prof, new Int2ObjectOpenHashMap<>()); Int2ObjectMap> mutableTrades = new Int2ObjectOpenHashMap<>(); diff --git a/src/main/java/net/minecraftforge/common/crafting/PartialNBTIngredient.java b/src/main/java/net/minecraftforge/common/crafting/PartialNBTIngredient.java index 3f791bd835..9300b1fa34 100644 --- a/src/main/java/net/minecraftforge/common/crafting/PartialNBTIngredient.java +++ b/src/main/java/net/minecraftforge/common/crafting/PartialNBTIngredient.java @@ -23,13 +23,12 @@ import org.jetbrains.annotations.Nullable; import java.util.Arrays; import java.util.Collections; -import java.util.Comparator; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; -/** Ingredient that matches the given items, performing a partial NBT match. Use {@link NBTIngredient} if you want exact match on NBT */ +/** Ingredient that matches the given items, performing a partial NBT match. Use {@link StrictNBTIngredient} if you want exact match on NBT */ public class PartialNBTIngredient extends AbstractIngredient { private final Set items; diff --git a/src/main/java/net/minecraftforge/common/crafting/NBTIngredient.java b/src/main/java/net/minecraftforge/common/crafting/StrictNBTIngredient.java similarity index 78% rename from src/main/java/net/minecraftforge/common/crafting/NBTIngredient.java rename to src/main/java/net/minecraftforge/common/crafting/StrictNBTIngredient.java index 3e970e82ba..e65fb93683 100644 --- a/src/main/java/net/minecraftforge/common/crafting/NBTIngredient.java +++ b/src/main/java/net/minecraftforge/common/crafting/StrictNBTIngredient.java @@ -17,19 +17,19 @@ import net.minecraftforge.registries.ForgeRegistries; import org.jetbrains.annotations.Nullable; /** Ingredient that matches the given stack, performing an exact NBT match. Use {@link PartialNBTIngredient} if you need partial match. */ -public class NBTIngredient extends AbstractIngredient +public class StrictNBTIngredient extends AbstractIngredient { private final ItemStack stack; - protected NBTIngredient(ItemStack stack) + protected StrictNBTIngredient(ItemStack stack) { super(Stream.of(new Ingredient.ItemValue(stack))); this.stack = stack; } /** Creates a new ingredient matching the given stack and tag */ - public static NBTIngredient of(ItemStack stack) + public static StrictNBTIngredient of(ItemStack stack) { - return new NBTIngredient(stack); + return new StrictNBTIngredient(stack); } @Override @@ -65,22 +65,22 @@ public class NBTIngredient extends AbstractIngredient return json; } - public static class Serializer implements IIngredientSerializer + public static class Serializer implements IIngredientSerializer { public static final Serializer INSTANCE = new Serializer(); @Override - public NBTIngredient parse(FriendlyByteBuf buffer) { - return new NBTIngredient(buffer.readItem()); + public StrictNBTIngredient parse(FriendlyByteBuf buffer) { + return new StrictNBTIngredient(buffer.readItem()); } @Override - public NBTIngredient parse(JsonObject json) { - return new NBTIngredient(CraftingHelper.getItemStack(json, true)); + public StrictNBTIngredient parse(JsonObject json) { + return new StrictNBTIngredient(CraftingHelper.getItemStack(json, true)); } @Override - public void write(FriendlyByteBuf buffer, NBTIngredient ingredient) { + public void write(FriendlyByteBuf buffer, StrictNBTIngredient ingredient) { buffer.writeItem(ingredient.stack); } } diff --git a/src/main/java/net/minecraftforge/common/data/ExistingFileHelper.java b/src/main/java/net/minecraftforge/common/data/ExistingFileHelper.java index 13f5372160..4783b767dd 100644 --- a/src/main/java/net/minecraftforge/common/data/ExistingFileHelper.java +++ b/src/main/java/net/minecraftforge/common/data/ExistingFileHelper.java @@ -33,8 +33,8 @@ import net.minecraft.server.packs.PackType; import net.minecraft.server.packs.VanillaPackResources; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.client.model.generators.ModelBuilder; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.fml.ModList; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; import net.minecraftforge.forgespi.language.IModFileInfo; import net.minecraftforge.resource.ResourcePackLoader; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/net/minecraftforge/common/data/JsonCodecProvider.java b/src/main/java/net/minecraftforge/common/data/JsonCodecProvider.java index 1a62ba0543..f36c122b51 100644 --- a/src/main/java/net/minecraftforge/common/data/JsonCodecProvider.java +++ b/src/main/java/net/minecraftforge/common/data/JsonCodecProvider.java @@ -27,7 +27,6 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.PackType; import net.minecraftforge.common.data.ExistingFileHelper.ResourceType; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; import org.slf4j.Logger; /** diff --git a/src/main/java/net/minecraftforge/common/extensions/IForgeBlockEntity.java b/src/main/java/net/minecraftforge/common/extensions/IForgeBlockEntity.java index 79710227d0..9267f3ee42 100644 --- a/src/main/java/net/minecraftforge/common/extensions/IForgeBlockEntity.java +++ b/src/main/java/net/minecraftforge/common/extensions/IForgeBlockEntity.java @@ -70,12 +70,12 @@ public interface IForgeBlockEntity extends ICapabilitySerializable } /** - * Gets a {@link CompoundTag} that can be used to store custom data for this tile entity. + * Gets a {@link CompoundTag} that can be used to store custom data for this block entity. * It will be written, and read from disc, so it persists over world saves. * - * @return A compound tag for custom data + * @return A compound tag for custom persistent data */ - CompoundTag getTileData(); + CompoundTag getPersistentData(); default void onChunkUnloaded(){} diff --git a/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java b/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java index 3c87909b5a..0ebbaaf943 100644 --- a/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java +++ b/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java @@ -215,16 +215,16 @@ public interface IForgeItem } /** - * ItemStack sensitive version of getContainerItem. Returns a full ItemStack - * instance of the result. + * ItemStack sensitive version of {@link Item#getCraftingRemainingItem()}. + * Returns a full ItemStack instance of the result. * * @param itemStack The current ItemStack * @return The resulting ItemStack */ @SuppressWarnings("deprecation") - default ItemStack getContainerItem(ItemStack itemStack) + default ItemStack getCraftingRemainingItem(ItemStack itemStack) { - if (!hasContainerItem(itemStack)) + if (!hasCraftingRemainingItem(itemStack)) { return ItemStack.EMPTY; } @@ -232,13 +232,13 @@ public interface IForgeItem } /** - * ItemStack sensitive version of hasContainerItem + * ItemStack sensitive version of {@link Item#hasCraftingRemainingItem()}. * * @param stack The current item stack - * @return True if this item has a 'container' + * @return True if this item has a crafting remaining item */ @SuppressWarnings("deprecation") - default boolean hasContainerItem(ItemStack stack) + default boolean hasCraftingRemainingItem(ItemStack stack) { return self().hasCraftingRemainingItem(); } @@ -481,24 +481,24 @@ public interface IForgeItem /** * Gets the maximum number of items that this stack should be able to hold. This - * is a ItemStack (and thus NBT) sensitive version of Item.getItemStackLimit() + * is a ItemStack (and thus NBT) sensitive version of {@link Item#getMaxStackSize()}. * * @param stack The ItemStack - * @return The maximum number this item can be stacked to + * @return The maximum size this item can be stacked to */ @SuppressWarnings("deprecation") - default int getItemStackLimit(ItemStack stack) + default int getMaxStackSize(ItemStack stack) { return self().getMaxStackSize(); } /** - * ItemStack sensitive version of getItemEnchantability + * ItemStack sensitive version of {@link Item#getEnchantmentValue()}. * * @param stack The ItemStack - * @return the item echantability value + * @return the enchantment value */ - default int getItemEnchantability(ItemStack stack) + default int getEnchantmentValue(ItemStack stack) { return self().getEnchantmentValue(); } diff --git a/src/main/java/net/minecraftforge/common/extensions/IForgeItemStack.java b/src/main/java/net/minecraftforge/common/extensions/IForgeItemStack.java index 4104f18a4f..e01d204955 100644 --- a/src/main/java/net/minecraftforge/common/extensions/IForgeItemStack.java +++ b/src/main/java/net/minecraftforge/common/extensions/IForgeItemStack.java @@ -49,24 +49,24 @@ public interface IForgeItemStack extends ICapabilitySerializable } /** - * ItemStack sensitive version of getContainerItem. Returns a full ItemStack - * instance of the result. + * ItemStack sensitive version of {@link Item#getCraftingRemainingItem()}. + * Returns a full ItemStack instance of the result. * * @return The resulting ItemStack */ - default ItemStack getContainerItem() + default ItemStack getCraftingRemainingItem() { - return self().getItem().getContainerItem(self()); + return self().getItem().getCraftingRemainingItem(self()); } /** - * ItemStack sensitive version of hasContainerItem + * ItemStack sensitive version of {@link Item#hasCraftingRemainingItem()}. * - * @return True if this item has a 'container' + * @return True if this item has a crafting remaining item */ - default boolean hasContainerItem() + default boolean hasCraftingRemainingItem() { - return self().getItem().hasContainerItem(self()); + return self().getItem().hasCraftingRemainingItem(self()); } /** @@ -193,13 +193,13 @@ public interface IForgeItemStack extends ICapabilitySerializable } /** - * ItemStack sensitive version of getItemEnchantability + * ItemStack sensitive version of {@link Item#getEnchantmentValue()}. * - * @return the item echantability value + * @return the enchantment value of this ItemStack */ - default int getItemEnchantability() + default int getEnchantmentValue() { - return self().getItem().getItemEnchantability(self()); + return self().getItem().getEnchantmentValue(self()); } /** diff --git a/src/main/java/net/minecraftforge/common/loot/IGlobalLootModifier.java b/src/main/java/net/minecraftforge/common/loot/IGlobalLootModifier.java index 815b7192f6..f98073b86b 100644 --- a/src/main/java/net/minecraftforge/common/loot/IGlobalLootModifier.java +++ b/src/main/java/net/minecraftforge/common/loot/IGlobalLootModifier.java @@ -24,11 +24,11 @@ import java.util.function.Function; /** * Implementation that defines what a global loot modifier must implement in order to be functional. * {@link LootModifier} Supplies base functionality; most modders should only need to extend that.
- * Requires a {@link Codec} to be registered: {@link ForgeRegistries#LOOT_MODIFIER_SERIALIZERS}, and returned in {@link #codec()} + * Requires a {@link Codec} to be registered: {@link ForgeRegistries#GLOBAL_LOOT_MODIFIER_SERIALIZERS}, and returned in {@link #codec()} * Individual instances of modifiers must be registered via json, see forge:loot_modifiers/global_loot_modifiers */ public interface IGlobalLootModifier { - Codec DIRECT_CODEC = ExtraCodecs.lazyInitializedCodec(() -> ForgeRegistries.LOOT_MODIFIER_SERIALIZERS.get().getCodec()) + Codec DIRECT_CODEC = ExtraCodecs.lazyInitializedCodec(() -> ForgeRegistries.GLOBAL_LOOT_MODIFIER_SERIALIZERS.get().getCodec()) .dispatch(IGlobalLootModifier::codec, Function.identity()); Codec LOOT_CONDITIONS_CODEC = Codec.PASSTHROUGH.flatXmap( diff --git a/src/main/java/net/minecraftforge/common/loot/LootModifierManager.java b/src/main/java/net/minecraftforge/common/loot/LootModifierManager.java index d35d5b05a6..c3300ae3fe 100644 --- a/src/main/java/net/minecraftforge/common/loot/LootModifierManager.java +++ b/src/main/java/net/minecraftforge/common/loot/LootModifierManager.java @@ -41,7 +41,7 @@ public class LootModifierManager extends SimpleJsonResourceReloadListener { private Map registeredLootModifiers = ImmutableMap.of(); private static final String folder = "loot_modifiers"; - + public LootModifierManager() { super(GSON_INSTANCE, folder); } @@ -75,7 +75,7 @@ public class LootModifierManager extends SimpleJsonResourceReloadListener { //use layered config to fetch modifier data files (modifiers missing from config are disabled) for (ResourceLocation location : finalLocations) { - Codec codec = ForgeRegistries.LOOT_MODIFIER_SERIALIZERS.get().getValue(location); + Codec codec = ForgeRegistries.GLOBAL_LOOT_MODIFIER_SERIALIZERS.get().getValue(location); if (codec == null) { LOGGER.warn("Unknown or unregistered codec for GlobalLootModifier: {}", location); diff --git a/src/main/java/net/minecraftforge/common/util/WorldCapabilityData.java b/src/main/java/net/minecraftforge/common/util/LevelCapabilityData.java similarity index 85% rename from src/main/java/net/minecraftforge/common/util/WorldCapabilityData.java rename to src/main/java/net/minecraftforge/common/util/LevelCapabilityData.java index 8200b099ff..6d8674f98d 100644 --- a/src/main/java/net/minecraftforge/common/util/WorldCapabilityData.java +++ b/src/main/java/net/minecraftforge/common/util/LevelCapabilityData.java @@ -9,20 +9,20 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.saveddata.SavedData; import org.jetbrains.annotations.Nullable; -public class WorldCapabilityData extends SavedData +public class LevelCapabilityData extends SavedData { public static final String ID = "capabilities"; private INBTSerializable serializable; private CompoundTag capNBT = null; - public WorldCapabilityData(@Nullable INBTSerializable serializable) + public LevelCapabilityData(@Nullable INBTSerializable serializable) { this.serializable = serializable; } - public static WorldCapabilityData load(CompoundTag tag, @Nullable INBTSerializable serializable) { - WorldCapabilityData data = new WorldCapabilityData(serializable); + public static LevelCapabilityData load(CompoundTag tag, @Nullable INBTSerializable serializable) { + LevelCapabilityData data = new LevelCapabilityData(serializable); data.read(tag); return data; } diff --git a/src/main/java/net/minecraftforge/common/world/ForgeBiomeModifiers.java b/src/main/java/net/minecraftforge/common/world/ForgeBiomeModifiers.java index 403d03966a..df9111b2ad 100644 --- a/src/main/java/net/minecraftforge/common/world/ForgeBiomeModifiers.java +++ b/src/main/java/net/minecraftforge/common/world/ForgeBiomeModifiers.java @@ -206,7 +206,7 @@ public final class ForgeBiomeModifiers for (MobCategory category : MobCategory.values()) { List spawns = spawnBuilder.getSpawner(category); - spawns.removeIf(spawnerData -> this.entityTypes.contains(ForgeRegistries.ENTITIES.getHolder(spawnerData.type).get())); + spawns.removeIf(spawnerData -> this.entityTypes.contains(ForgeRegistries.ENTITY_TYPES.getHolder(spawnerData.type).get())); } } } diff --git a/src/main/java/net/minecraftforge/forge/event/lifecycle/GatherDataEvent.java b/src/main/java/net/minecraftforge/data/event/GatherDataEvent.java similarity index 98% rename from src/main/java/net/minecraftforge/forge/event/lifecycle/GatherDataEvent.java rename to src/main/java/net/minecraftforge/data/event/GatherDataEvent.java index e4ad029bd8..aaa83087be 100644 --- a/src/main/java/net/minecraftforge/forge/event/lifecycle/GatherDataEvent.java +++ b/src/main/java/net/minecraftforge/data/event/GatherDataEvent.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: LGPL-2.1-only */ -package net.minecraftforge.forge.event.lifecycle; +package net.minecraftforge.data.event; import cpw.mods.modlauncher.api.LamdbaExceptionUtils; import net.minecraft.DetectedVersion; diff --git a/src/main/java/net/minecraftforge/data/loading/DatagenModLoader.java b/src/main/java/net/minecraftforge/data/loading/DatagenModLoader.java index 3313cdd8b2..1c24b02779 100644 --- a/src/main/java/net/minecraftforge/data/loading/DatagenModLoader.java +++ b/src/main/java/net/minecraftforge/data/loading/DatagenModLoader.java @@ -5,12 +5,11 @@ package net.minecraftforge.data.loading; -import java.util.Collections; import net.minecraft.server.Bootstrap; import net.minecraftforge.common.data.ExistingFileHelper; import net.minecraftforge.fml.ModLoader; import net.minecraftforge.fml.ModWorkManager; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java index eafe0f9a4c..be69edf12c 100644 --- a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java +++ b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java @@ -109,18 +109,18 @@ import net.minecraftforge.event.entity.player.PlayerWakeUpEvent; import net.minecraftforge.event.entity.player.SleepingLocationCheckEvent; import net.minecraftforge.event.entity.player.SleepingTimeCheckEvent; import net.minecraftforge.event.furnace.FurnaceFuelBurnTimeEvent; -import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.event.world.BlockEvent.BlockToolModificationEvent; -import net.minecraftforge.event.world.BlockEvent.CreateFluidSourceEvent; -import net.minecraftforge.event.world.BlockEvent.EntityMultiPlaceEvent; -import net.minecraftforge.event.world.BlockEvent.EntityPlaceEvent; -import net.minecraftforge.event.world.BlockEvent.NeighborNotifyEvent; -import net.minecraftforge.event.world.ChunkWatchEvent; -import net.minecraftforge.event.world.ExplosionEvent; -import net.minecraftforge.event.world.PistonEvent; -import net.minecraftforge.event.world.SaplingGrowTreeEvent; -import net.minecraftforge.event.world.SleepFinishedTimeEvent; -import net.minecraftforge.event.world.WorldEvent; +import net.minecraftforge.event.level.BlockEvent; +import net.minecraftforge.event.level.BlockEvent.BlockToolModificationEvent; +import net.minecraftforge.event.level.BlockEvent.CreateFluidSourceEvent; +import net.minecraftforge.event.level.BlockEvent.EntityMultiPlaceEvent; +import net.minecraftforge.event.level.BlockEvent.EntityPlaceEvent; +import net.minecraftforge.event.level.BlockEvent.NeighborNotifyEvent; +import net.minecraftforge.event.level.ChunkWatchEvent; +import net.minecraftforge.event.level.ExplosionEvent; +import net.minecraftforge.event.level.PistonEvent; +import net.minecraftforge.event.level.SaplingGrowTreeEvent; +import net.minecraftforge.event.level.SleepFinishedTimeEvent; +import net.minecraftforge.event.level.LevelEvent; import net.minecraftforge.eventbus.api.Event; import net.minecraftforge.eventbus.api.Event.Result; import net.minecraftforge.fml.LogicalSide; @@ -402,9 +402,9 @@ public class ForgeEventFactory return event.getResultStatus(); } - public static void onPlayerWakeup(Player player, boolean wakeImmediately, boolean updateWorldFlag) + public static void onPlayerWakeup(Player player, boolean wakeImmediately, boolean updateLevel) { - MinecraftForge.EVENT_BUS.post(new PlayerWakeUpEvent(player, wakeImmediately, updateWorldFlag)); + MinecraftForge.EVENT_BUS.post(new PlayerWakeUpEvent(player, wakeImmediately, updateLevel)); } public static void onPlayerFall(Player player, float distance, float multiplier) @@ -445,7 +445,7 @@ public class ForgeEventFactory public static boolean onCreateWorldSpawn(Level level, ServerLevelData settings) { - return MinecraftForge.EVENT_BUS.post(new WorldEvent.CreateSpawnPosition(level, settings)); + return MinecraftForge.EVENT_BUS.post(new LevelEvent.CreateSpawnPosition(level, settings)); } public static float onLivingHeal(LivingEntity entity, float amount) @@ -583,7 +583,7 @@ public class ForgeEventFactory { net.minecraftforge.event.enchanting.EnchantmentLevelSetEvent e = new net.minecraftforge.event.enchanting.EnchantmentLevelSetEvent(level, pos, enchantRow, power, itemStack, enchantmentLevel); net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(e); - return e.getLevel(); + return e.getEnchantLevel(); } public static boolean onEntityDestroyBlock(LivingEntity entity, BlockPos pos, BlockState state) @@ -600,9 +600,9 @@ public class ForgeEventFactory return result == Result.DEFAULT ? level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) : result == Result.ALLOW; } - public static boolean saplingGrowTree(LevelAccessor level, RandomSource rand, BlockPos pos) + public static boolean saplingGrowTree(LevelAccessor level, RandomSource randomSource, BlockPos pos) { - SaplingGrowTreeEvent event = new SaplingGrowTreeEvent(level, rand, pos); + SaplingGrowTreeEvent event = new SaplingGrowTreeEvent(level, randomSource, pos); MinecraftForge.EVENT_BUS.post(event); return event.getResult() != Result.DENY; } @@ -772,14 +772,14 @@ public class ForgeEventFactory MinecraftForge.EVENT_BUS.post(new TickEvent.PlayerTickEvent(TickEvent.Phase.END, player)); } - public static void onPreWorldTick(Level level, BooleanSupplier haveTime) + public static void onPreLevelTick(Level level, BooleanSupplier haveTime) { - MinecraftForge.EVENT_BUS.post(new TickEvent.WorldTickEvent(LogicalSide.SERVER, TickEvent.Phase.START, level, haveTime)); + MinecraftForge.EVENT_BUS.post(new TickEvent.LevelTickEvent(LogicalSide.SERVER, TickEvent.Phase.START, level, haveTime)); } - public static void onPostWorldTick(Level level, BooleanSupplier haveTime) + public static void onPostLevelTick(Level level, BooleanSupplier haveTime) { - MinecraftForge.EVENT_BUS.post(new TickEvent.WorldTickEvent(LogicalSide.SERVER, TickEvent.Phase.END, level, haveTime)); + MinecraftForge.EVENT_BUS.post(new TickEvent.LevelTickEvent(LogicalSide.SERVER, TickEvent.Phase.END, level, haveTime)); } public static void onPreClientTick() diff --git a/src/main/java/net/minecraftforge/event/RegisterCommandsEvent.java b/src/main/java/net/minecraftforge/event/RegisterCommandsEvent.java index 40307a648e..e58e3405a2 100644 --- a/src/main/java/net/minecraftforge/event/RegisterCommandsEvent.java +++ b/src/main/java/net/minecraftforge/event/RegisterCommandsEvent.java @@ -45,7 +45,7 @@ public class RegisterCommandsEvent extends Event /** * {@return the environment the command is being registered for} */ - public Commands.CommandSelection getEnvironment() + public Commands.CommandSelection getCommandSelection() { return environment; } diff --git a/src/main/java/net/minecraftforge/event/TagsUpdatedEvent.java b/src/main/java/net/minecraftforge/event/TagsUpdatedEvent.java index c4512faf97..c9e5c23ca5 100644 --- a/src/main/java/net/minecraftforge/event/TagsUpdatedEvent.java +++ b/src/main/java/net/minecraftforge/event/TagsUpdatedEvent.java @@ -15,22 +15,13 @@ import net.minecraftforge.server.ServerLifecycleHooks; */ public class TagsUpdatedEvent extends Event { - private final RegistryAccess registries; + private final RegistryAccess registryAccess; private final UpdateCause updateCause; private final boolean integratedServer; - @Deprecated(forRemoval = true, since = "1.18.2") - public TagsUpdatedEvent(RegistryAccess registries) + public TagsUpdatedEvent(RegistryAccess registryAccess, boolean fromClientPacket, boolean isIntegratedServerConnection) { - this.registries = registries; - this.updateCause = ClientGamePacketListener.class.isAssignableFrom(StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).getCallerClass()) ? UpdateCause.CLIENT_PACKET_RECEIVED : UpdateCause.SERVER_DATA_LOAD; - var currentServer = ServerLifecycleHooks.getCurrentServer(); - this.integratedServer = currentServer != null && !currentServer.isDedicatedServer(); - } - - public TagsUpdatedEvent(RegistryAccess registries, boolean fromClientPacket, boolean isIntegratedServerConnection) - { - this.registries = registries; + this.registryAccess = registryAccess; this.updateCause = fromClientPacket ? UpdateCause.CLIENT_PACKET_RECEIVED : UpdateCause.SERVER_DATA_LOAD; this.integratedServer = isIntegratedServerConnection; } @@ -38,9 +29,9 @@ public class TagsUpdatedEvent extends Event /** * @return The dynamic registries that have had their tags rebound. */ - public RegistryAccess getTagManager() + public RegistryAccess getRegistryAccess() { - return registries; + return registryAccess; } /** diff --git a/src/main/java/net/minecraftforge/event/TickEvent.java b/src/main/java/net/minecraftforge/event/TickEvent.java index d90c890883..927ae23253 100644 --- a/src/main/java/net/minecraftforge/event/TickEvent.java +++ b/src/main/java/net/minecraftforge/event/TickEvent.java @@ -18,7 +18,7 @@ import net.minecraftforge.fml.LogicalSide; public class TickEvent extends Event { public enum Type { - WORLD, PLAYER, CLIENT, SERVER, RENDER; + LEVEL, PLAYER, CLIENT, SERVER, RENDER; } public enum Phase { @@ -71,14 +71,14 @@ public class TickEvent extends Event } } - public static class WorldTickEvent extends TickEvent { - public final Level world; + public static class LevelTickEvent extends TickEvent { + public final Level level; private final BooleanSupplier haveTime; - public WorldTickEvent(LogicalSide side, Phase phase, Level world, BooleanSupplier haveTime) + public LevelTickEvent(LogicalSide side, Phase phase, Level level, BooleanSupplier haveTime) { - super(Type.WORLD, side, phase); - this.world = world; + super(Type.LEVEL, side, phase); + this.level = level; this.haveTime = haveTime; } diff --git a/src/main/java/net/minecraftforge/event/enchanting/EnchantmentLevelSetEvent.java b/src/main/java/net/minecraftforge/event/enchanting/EnchantmentLevelSetEvent.java index 4ee598865e..c95b83064c 100644 --- a/src/main/java/net/minecraftforge/event/enchanting/EnchantmentLevelSetEvent.java +++ b/src/main/java/net/minecraftforge/event/enchanting/EnchantmentLevelSetEvent.java @@ -20,24 +20,24 @@ import org.jetbrains.annotations.NotNull; */ public class EnchantmentLevelSetEvent extends net.minecraftforge.eventbus.api.Event { - private final Level world; + private final Level level; private final BlockPos pos; private final int enchantRow; private final int power; @NotNull private final ItemStack itemStack; private final int originalLevel; - private int level; + private int enchantLevel; - public EnchantmentLevelSetEvent(Level world, BlockPos pos, int enchantRow, int power, @NotNull ItemStack itemStack, int level) + public EnchantmentLevelSetEvent(Level level, BlockPos pos, int enchantRow, int power, @NotNull ItemStack itemStack, int enchantLevel) { - this.world = world; + this.level = level; this.pos = pos; this.enchantRow = enchantRow; this.power = power; this.itemStack = itemStack; - this.originalLevel = level; - this.level = level; + this.originalLevel = enchantLevel; + this.enchantLevel = enchantLevel; } /** @@ -45,9 +45,9 @@ public class EnchantmentLevelSetEvent extends net.minecraftforge.eventbus.api.Ev * * @return the world object */ - public Level getWorld() + public Level getLevel() { - return world; + return level; } /** @@ -106,9 +106,9 @@ public class EnchantmentLevelSetEvent extends net.minecraftforge.eventbus.api.Ev * * @return the level of the enchantment for this row (0-30) */ - public int getLevel() + public int getEnchantLevel() { - return level; + return enchantLevel; } /** @@ -116,8 +116,8 @@ public class EnchantmentLevelSetEvent extends net.minecraftforge.eventbus.api.Ev * * @param level the new level of the enchantment (0-30) */ - public void setLevel(int level) + public void setEnchantLevel(int level) { - this.level = level; + this.enchantLevel = level; } } diff --git a/src/main/java/net/minecraftforge/event/entity/EntityAttributeModificationEvent.java b/src/main/java/net/minecraftforge/event/entity/EntityAttributeModificationEvent.java index cbb2f03cac..d01c4a16bd 100644 --- a/src/main/java/net/minecraftforge/event/entity/EntityAttributeModificationEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/EntityAttributeModificationEvent.java @@ -36,7 +36,7 @@ public class EntityAttributeModificationEvent extends Event implements IModBusEv { this.entityAttributes = mapIn; this.entityTypes = ImmutableList.copyOf( - ForgeRegistries.ENTITIES.getValues().stream() + ForgeRegistries.ENTITY_TYPES.getValues().stream() .filter(DefaultAttributes::hasSupplier) .map(entityType -> (EntityType) entityType) .collect(Collectors.toList()) diff --git a/src/main/java/net/minecraftforge/event/entity/EntityEvent.java b/src/main/java/net/minecraftforge/event/entity/EntityEvent.java index 2ad74ec92a..b0322d0043 100644 --- a/src/main/java/net/minecraftforge/event/entity/EntityEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/EntityEvent.java @@ -58,7 +58,7 @@ public class EntityEvent extends Event * This event is fired on server and client after an Entity has entered a different section.
* Sections are 16x16x16 block grids of the world.
* This event does not fire when a new entity is spawned, only when an entity moves from one section to another one. - * Use {@link EntityJoinWorldEvent} to detect new entities joining the world. + * Use {@link EntityJoinLevelEvent} to detect new entities joining the world. *
* This event is not {@link net.minecraftforge.eventbus.api.Cancelable}.
*
diff --git a/src/main/java/net/minecraftforge/event/entity/EntityJoinLevelEvent.java b/src/main/java/net/minecraftforge/event/entity/EntityJoinLevelEvent.java new file mode 100644 index 0000000000..35dfcd67d0 --- /dev/null +++ b/src/main/java/net/minecraftforge/event/entity/EntityJoinLevelEvent.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) Forge Development LLC and contributors + * SPDX-License-Identifier: LGPL-2.1-only + */ + +package net.minecraftforge.event.entity; + +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.chunk.ChunkStatus; +import net.minecraft.world.level.chunk.LevelChunk; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.Cancelable; +import net.minecraftforge.fml.LogicalSide; + +/** + * This event is fired whenever an {@link Entity} joins a {@link Level}. + * This event is fired whenever an entity is added to a level in {@link Level#addFreshEntity(Entity)} + * and {@code PersistentEntitySectionManager#addNewEntity(Entity, boolean)}. + *

+ * Note: This event may be called before the underlying {@link LevelChunk} is promoted to {@link ChunkStatus#FULL}. + * You will cause chunk loading deadlocks if you do not delay your world interactions. + *

+ * This event is {@linkplain Cancelable cancellable} and does not {@linkplain HasResult have a result}. + * If the event is canceled, the entity will not be added to the level. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus} + * on both logical sides. + **/ +@Cancelable +public class EntityJoinLevelEvent extends EntityEvent +{ + private final Level level; + private final boolean loadedFromDisk; + + public EntityJoinLevelEvent(Entity entity, Level level) + { + this(entity, level, false); + } + + public EntityJoinLevelEvent(Entity entity, Level level, boolean loadedFromDisk) + { + super(entity); + this.level = level; + this.loadedFromDisk = loadedFromDisk; + } + + /** + * {@return the level that the entity is set to join} + */ + public Level getLevel() + { + return level; + } + + /** + * @return {@code true} if the entity was loaded from disk, {@code false} otherwise. + * On the {@linkplain LogicalSide#CLIENT logical client}, this will always return {@code false}. + */ + public boolean loadedFromDisk() + { + return loadedFromDisk; + } +} diff --git a/src/main/java/net/minecraftforge/event/entity/EntityJoinWorldEvent.java b/src/main/java/net/minecraftforge/event/entity/EntityJoinWorldEvent.java deleted file mode 100644 index b01d772d73..0000000000 --- a/src/main/java/net/minecraftforge/event/entity/EntityJoinWorldEvent.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) Forge Development LLC and contributors - * SPDX-License-Identifier: LGPL-2.1-only - */ - -package net.minecraftforge.event.entity; - -import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.chunk.ChunkStatus; -import net.minecraft.world.level.chunk.LevelChunk; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.eventbus.api.Cancelable; - -/** - * EntityJoinWorldEvent is fired when an Entity joins the world.
- * This event is fired whenever an Entity is added to the world in - * {@code Level#loadEntities(Collection)}, - * {@code net.minecraft.world.ServerWorld#loadEntities(Collection)} - * {@code World#joinEntityInSurroundings(Entity)}, and - * {@code World#spawnEntity(Entity)}.
- * Note: This event may be called before the underlying {@link LevelChunk} is promoted to {@link ChunkStatus#FULL}. - * You will cause chunk loading deadlocks if you don't delay your world interactions.
- *
- * {@link #world} contains the world in which the entity is to join.
- *
- * This event is {@link Cancelable}.
- * If this event is canceled, the Entity is not added to the world.
- *
- * This event does not have a result. {@link HasResult}
- *
- * This event is fired on the {@link MinecraftForge#EVENT_BUS}. - **/ -@net.minecraftforge.eventbus.api.Cancelable -public class EntityJoinWorldEvent extends EntityEvent -{ - - private final Level world; - private final boolean loadedFromDisk; - - public EntityJoinWorldEvent(Entity entity, Level world) - { - this(entity, world, false); - } - - public EntityJoinWorldEvent(Entity entity, Level world, boolean loadedFromDisk) - { - super(entity); - this.world = world; - this.loadedFromDisk = loadedFromDisk; - } - - public Level getWorld() - { - return world; - } - - /** - * @return {@code true} if the entity was loaded from disk. On client entities, the info isn't available and this will always return {@code false}. - */ - public boolean loadedFromDisk() - { - return loadedFromDisk; - } -} diff --git a/src/main/java/net/minecraftforge/event/entity/EntityLeaveLevelEvent.java b/src/main/java/net/minecraftforge/event/entity/EntityLeaveLevelEvent.java new file mode 100644 index 0000000000..25dd5a5a42 --- /dev/null +++ b/src/main/java/net/minecraftforge/event/entity/EntityLeaveLevelEvent.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) Forge Development LLC and contributors + * SPDX-License-Identifier: LGPL-2.1-only + */ + +package net.minecraftforge.event.entity; + +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.entity.LevelCallback; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.Cancelable; + +/** + * This event is fired whenever an {@link Entity} leaves a {@link Level}. + * This event is fired whenever an entity is removed from the level in {@link LevelCallback#onTrackingEnd(Object)}. + *

+ * This event is not {@linkplain Cancelable cancellable} and does not {@linkplain net.minecraftforge.eventbus.api.Event.HasResult have a result}. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus} + * on both logical sides. + **/ +public class EntityLeaveLevelEvent extends EntityEvent +{ + private final Level level; + + public EntityLeaveLevelEvent(Entity entity, Level level) + { + super(entity); + this.level = level; + } + + /** + * {@return the level the entity is set to leave} + */ + public Level getLevel() + { + return level; + } +} diff --git a/src/main/java/net/minecraftforge/event/entity/EntityLeaveWorldEvent.java b/src/main/java/net/minecraftforge/event/entity/EntityLeaveWorldEvent.java deleted file mode 100644 index 878fe5d84a..0000000000 --- a/src/main/java/net/minecraftforge/event/entity/EntityLeaveWorldEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) Forge Development LLC and contributors - * SPDX-License-Identifier: LGPL-2.1-only - */ - -package net.minecraftforge.event.entity; - -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.Level; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.eventbus.api.Cancelable; - -/** - * EntityLeaveWorldEvent is fired when an Entity leaves the world.
- * This event is fired whenever an Entity is removed from the world in - * {@link ClientLevel#removeEntity(int, Entity.RemovalReason)}.
- *
- * {@link #world} contains the world from which the entity is removed.
- *
- * This event is not {@link Cancelable}.
- *
- * This event does not have a result. {@link HasResult}
- *
- * This event is fired on the {@link MinecraftForge#EVENT_BUS} - */ -public class EntityLeaveWorldEvent extends EntityEvent -{ - - private final Level world; - - public EntityLeaveWorldEvent(Entity entity, Level world) - { - super(entity); - this.world = world; - } - - public Level getWorld() - { - return world; - } -} diff --git a/src/main/java/net/minecraftforge/event/entity/EntityMountEvent.java b/src/main/java/net/minecraftforge/event/entity/EntityMountEvent.java index bdf7f883ad..5ec521cc10 100644 --- a/src/main/java/net/minecraftforge/event/entity/EntityMountEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/EntityMountEvent.java @@ -30,16 +30,16 @@ public class EntityMountEvent extends EntityEvent private final Entity entityMounting; private final Entity entityBeingMounted; - private final Level worldObj; + private final Level level; private final boolean isMounting; - public EntityMountEvent(Entity entityMounting, Entity entityBeingMounted, Level entityWorld, boolean isMounting) + public EntityMountEvent(Entity entityMounting, Entity entityBeingMounted, Level level, boolean isMounting) { super(entityMounting); this.entityMounting = entityMounting; this.entityBeingMounted = entityBeingMounted; - this.worldObj = entityWorld; + this.level = level; this.isMounting = isMounting; } @@ -63,8 +63,8 @@ public class EntityMountEvent extends EntityEvent return entityBeingMounted; } - public Level getWorldObj() + public Level getLevel() { - return worldObj; + return level; } } diff --git a/src/main/java/net/minecraftforge/event/entity/item/ItemEvent.java b/src/main/java/net/minecraftforge/event/entity/item/ItemEvent.java index 174cf1669c..5fe62843c6 100644 --- a/src/main/java/net/minecraftforge/event/entity/item/ItemEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/item/ItemEvent.java @@ -9,31 +9,32 @@ import net.minecraft.world.entity.item.ItemEntity; import net.minecraftforge.event.entity.EntityEvent; /** - * Base class for all EntityItem events. Contains a reference to the - * EntityItem of interest. For most EntityItem events, there's little to no + * Base class for all {@link ItemEntity} events. Contains a reference to the + * ItemEntity of interest. For most ItemEntity events, there's little to no * additional useful data from the firing method that isn't already contained - * within the EntityItem instance. + * within the ItemEntity instance. */ public class ItemEvent extends EntityEvent { - private final ItemEntity entityItem; + private final ItemEntity itemEntity; /** - * Creates a new event for an EntityItem. - * - * @param itemEntity The EntityItem for this event + * Creates a new event for an {@link ItemEntity}. + * + * @param itemEntity The ItemEntity for this event */ public ItemEvent(ItemEntity itemEntity) { super(itemEntity); - this.entityItem = itemEntity; + this.itemEntity = itemEntity; } /** - * The relevant EntityItem for this event, already cast for you. + * The relevant {@link ItemEntity} for this event. */ - public ItemEntity getEntityItem() + @Override + public ItemEntity getEntity() { - return entityItem; + return itemEntity; } } diff --git a/src/main/java/net/minecraftforge/event/entity/living/LivingEvent.java b/src/main/java/net/minecraftforge/event/entity/living/LivingEvent.java index 083c5db758..8451d2f10d 100644 --- a/src/main/java/net/minecraftforge/event/entity/living/LivingEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/living/LivingEvent.java @@ -15,7 +15,7 @@ import net.minecraftforge.eventbus.api.Event; import org.jetbrains.annotations.Nullable; /** - * LivingEvent is fired whenever an event involving Living entities occurs.
+ * LivingEvent is fired whenever an event involving a {@link LivingEntity} occurs.
* If a method utilizes this {@link Event} as its parameter, the method will * receive every child event of this class.
*
@@ -23,24 +23,24 @@ import org.jetbrains.annotations.Nullable; **/ public class LivingEvent extends EntityEvent { - private final LivingEntity entityLiving; + private final LivingEntity livingEntity; + public LivingEvent(LivingEntity entity) { super(entity); - entityLiving = entity; + livingEntity = entity; } - public LivingEntity getEntityLiving() + @Override + public LivingEntity getEntity() { - return entityLiving; + return livingEntity; } /** - * LivingUpdateEvent is fired when an Entity is updated.
- * This event is fired whenever an Entity is updated in - * {@link LivingEntity#tick()}.
+ * LivingUpdateEvent is fired when a LivingEntity is ticked in {@link LivingEntity#tick()}.
*
- * This event is fired via the {@link ForgeHooks#onLivingUpdate(LivingEntity)}.
+ * This event is fired via the {@link ForgeHooks#onLivingTick(LivingEntity)}.
*
* This event is {@link Cancelable}.
* If this event is canceled, the Entity does not update.
@@ -50,9 +50,9 @@ public class LivingEvent extends EntityEvent * This event is fired on the {@link MinecraftForge#EVENT_BUS}. **/ @Cancelable - public static class LivingUpdateEvent extends LivingEvent + public static class LivingTickEvent extends LivingEvent { - public LivingUpdateEvent(LivingEntity e){ super(e); } + public LivingTickEvent(LivingEntity e){ super(e); } } /** diff --git a/src/main/java/net/minecraftforge/event/entity/living/LivingSpawnEvent.java b/src/main/java/net/minecraftforge/event/entity/living/LivingSpawnEvent.java index 032af302ac..18cebf3c7f 100644 --- a/src/main/java/net/minecraftforge/event/entity/living/LivingSpawnEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/living/LivingSpawnEvent.java @@ -6,56 +6,92 @@ package net.minecraftforge.event.entity.living; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.LevelAccessor; - import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.ForgeEventFactory; import net.minecraftforge.eventbus.api.Cancelable; +import net.minecraftforge.fml.LogicalSide; import org.jetbrains.annotations.Nullable; /** - * LivingSpawnEvent is fired for any events associated with Living Entities spawn status.
- * If a method utilizes this event as its parameter, the method will - * receive every child event of this class.
- *
- * {@link #world} contains the world in which this living Entity is being spawned.
- * {@link #x} contains the x-coordinate this entity is being spawned at.
- * {@link #y} contains the y-coordinate this entity is being spawned at.
- * {@link #z} contains the z-coordinate this entity is being spawned at.
- *
- * All children of this event are fired on the {@link MinecraftForge#EVENT_BUS}. - **/ + * This event is fired whenever a {@link Mob} should do something spawn-related. + *

+ * This event is not {@linkplain Cancelable cancellable} and does not {@linkplain HasResult have a result}. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus} + * only on the {@linkplain LogicalSide#SERVER logical server}. + */ public class LivingSpawnEvent extends LivingEvent { - private final LevelAccessor world; + private final LevelAccessor level; + private final Mob mob; private final double x; private final double y; private final double z; - public LivingSpawnEvent(Mob entity, LevelAccessor world, double x, double y, double z) + public LivingSpawnEvent(Mob mob, LevelAccessor level, double x, double y, double z) { - super(entity); - this.world = world; + super(mob); + this.mob = mob; + this.level = level; this.x = x; this.y = y; this.z = z; } - public LevelAccessor getWorld() { return world; } - public double getX() { return x; } - public double getY() { return y; } - public double getZ() { return z; } /** - * Fires before mob spawn events. - * - * Result is significant: - * DEFAULT: use vanilla spawn rules - * ALLOW: allow the spawn - * DENY: deny the spawn - * + * {@return the mob that is causing a spawn action} + */ + @Override + public Mob getEntity() + { + return this.mob; + } + + /** + * {@return the level relating to the mob spawn action} + */ + public LevelAccessor getLevel() + { + return this.level; + } + + /** + * {@return the x-coordinate relating to the mob spawn action} + */ + public double getX() + { + return this.x; + } + + /** + * {@return the y-coordinate relating to the mob spawn action} + */ + public double getY() + { + return this.y; + } + + /** + * {@return the z-coordinate relating to the mob spawn action} + */ + public double getZ() + { + return this.z; + } + + /** + * This event is fired before a {@link Mob} spawns. + *

+ * This event is not {@linkplain Cancelable cancellable}, but does {@linkplain HasResult have a result}. + * {@linkplain Result#DEFAULT DEFAULT} indicates that default spawn rules should be used. + * {@linkplain Result#ALLOW ALLOW} indicates that the mob should spawn regardless of default spawn rules. + * {@linkplain Result#DENY DENY} indicates that the mob should not spawn. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus}, + * only on the {@linkplain LogicalSide#SERVER logical server}. */ @HasResult public static class CheckSpawn extends LivingSpawnEvent @@ -64,19 +100,9 @@ public class LivingSpawnEvent extends LivingEvent private final BaseSpawner spawner; private final MobSpawnType spawnReason; - /** - * CheckSpawn is fired when an Entity is about to be spawned. - * @param entity the spawning entity - * @param world the world to spawn in - * @param x x coordinate - * @param y y coordinate - * @param z z coordinate - * @param spawner position of the MobSpawner - * null if it this spawn is coming from a WorldSpawner - */ - public CheckSpawn(Mob entity, LevelAccessor world, double x, double y, double z, @Nullable BaseSpawner spawner, MobSpawnType spawnReason) + public CheckSpawn(Mob mob, LevelAccessor level, double x, double y, double z, @Nullable BaseSpawner spawner, MobSpawnType spawnReason) { - super(entity, world, x, y, z); + super(mob, level, x, y, z); this.spawner = spawner; this.spawnReason = spawnReason; } @@ -99,18 +125,14 @@ public class LivingSpawnEvent extends LivingEvent } /** - * SpecialSpawn is fired when an Entity is to be spawned.
- * This allows you to do special inializers in the new entity.
- *
- * This event is fired via the {@link ForgeEventFactory#doSpecialSpawn(Mob, LevelAccessor, float, float, float, BaseSpawner, MobSpawnType)}.
- *
- * This event is {@link Cancelable}.
- * If this event is canceled, the Entity is not spawned.
- *
- * This event does not have a result. {@link HasResult}
- *
- * This event is fired on the {@link MinecraftForge#EVENT_BUS}. - **/ + * This event is fired whenever a {@link Mob} is set to be spawned, to allow for mod-specific initializers. + *

+ * This event is {@linkplain Cancelable cancellable} and does not {@linkplain HasResult have a result}. + * If the event is canceled, the mob will not spawn. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus}, + * only on the {@linkplain LogicalSide#SERVER logical server}. + */ @Cancelable public static class SpecialSpawn extends LivingSpawnEvent { @@ -118,9 +140,9 @@ public class LivingSpawnEvent extends LivingEvent private final BaseSpawner spawner; private final MobSpawnType spawnReason; - public SpecialSpawn(Mob entity, LevelAccessor world, double x, double y, double z, @Nullable BaseSpawner spawner, MobSpawnType spawnReason) + public SpecialSpawn(Mob entity, LevelAccessor level, double x, double y, double z, @Nullable BaseSpawner spawner, MobSpawnType spawnReason) { - super(entity, world, x, y, z); + super(entity, level, x, y, z); this.spawner = spawner; this.spawnReason = spawnReason; } @@ -138,25 +160,27 @@ public class LivingSpawnEvent extends LivingEvent } /** - * Fired each tick for despawnable mobs to allow control over despawning. - * {@link Result#DEFAULT} will pass the mob on to vanilla despawn mechanics. - * {@link Result#ALLOW} will force the mob to despawn. - * {@link Result#DENY} will force the mob to remain. - * This is fired every tick for every despawnable entity. Be efficient in your handlers. - * - * Note: this is not fired if the mob is definitely going to otherwise despawn. It is fired to check if - * the mob can be allowed to despawn. See {@link LivingEntity#checkDespawn()} + * This event is fired for a {@link Mob} that can despawn each mob tick. + * This event only fires if a mob can be allowed to despawn and will not + * otherwise fire if a despawn is certain. + *

+ * This event is not {@linkplain Cancelable cancellable}, but does {@linkplain HasResult have a result}. + * {@link Result#DEFAULT} indicates that default despawn mechanics should be used. + * {@link Result#ALLOW} indicates that the mob should forcefully despawn. + * {@link Result#DENY} indicates that the mob should forcefully stay spawned. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus}, + * only on the {@linkplain LogicalSide#SERVER logical server}. * + * @see LivingEntity#checkDespawn() * @author cpw - * */ @HasResult public static class AllowDespawn extends LivingSpawnEvent { - public AllowDespawn(Mob entity) + public AllowDespawn(Mob mob) { - super(entity, entity.level, entity.getX(), entity.getY(), entity.getZ()); + super(mob, mob.level, mob.getX(), mob.getY(), mob.getZ()); } - } } diff --git a/src/main/java/net/minecraftforge/event/entity/living/MobEffectEvent.java b/src/main/java/net/minecraftforge/event/entity/living/MobEffectEvent.java new file mode 100644 index 0000000000..d6dc629903 --- /dev/null +++ b/src/main/java/net/minecraftforge/event/entity/living/MobEffectEvent.java @@ -0,0 +1,164 @@ +/* + * Copyright (c) Forge Development LLC and contributors + * SPDX-License-Identifier: LGPL-2.1-only + */ + +package net.minecraftforge.event.entity.living; + +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.Cancelable; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * This event is fired when an interaction between a {@link LivingEntity} and {@link MobEffectInstance} happens. + *

+ * All children of this event are fired on the {@link MinecraftForge#EVENT_BUS}. + */ +public class MobEffectEvent extends LivingEvent +{ + @Nullable + protected final MobEffectInstance effectInstance; + + public MobEffectEvent(LivingEntity living, MobEffectInstance effectInstance) + { + super(living); + this.effectInstance = effectInstance; + } + + @Nullable + public MobEffectInstance getEffectInstance() + { + return effectInstance; + } + + /** + * This Event is fired when a {@link MobEffect} is about to get removed from an Entity. + * This Event is {@link Cancelable}. If canceled, the effect will not be removed. + * This Event does not have a result. + */ + @Cancelable + public static class Remove extends MobEffectEvent + { + private final MobEffect effect; + + public Remove(LivingEntity living, MobEffect effect) + { + super(living, living.getEffect(effect)); + this.effect = effect; + } + + public Remove(LivingEntity living, MobEffectInstance effectInstance) + { + super(living, effectInstance); + this.effect = effectInstance.getEffect(); + } + + /** + * @return the {@link MobEffectEvent} which is being removed from the entity + */ + public MobEffect getEffect() + { + return this.effect; + } + + /** + * @return the {@link MobEffectInstance}. In the remove event, this can be null if the entity does not have a {@link MobEffect} of the right type active. + */ + @Override + @Nullable + public MobEffectInstance getEffectInstance() + { + return super.getEffectInstance(); + } + } + + /** + * This event is fired to check if a {@link MobEffectInstance} can be applied to an entity. + * This event is not {@link Cancelable}. + * This event {@link HasResult has a result}. + *

+ * {@link Result#ALLOW ALLOW} will apply this mob effect. + * {@link Result#DENY DENY} will not apply this mob effect. + * {@link Result#DEFAULT DEFAULT} will run vanilla logic to determine if this mob effect is applicable in {@link LivingEntity#canBeAffected}. + */ + @HasResult + public static class Applicable extends MobEffectEvent + { + public Applicable(LivingEntity living, @NotNull MobEffectInstance effectInstance) + { + super(living, effectInstance); + } + + @Override + @NotNull + public MobEffectInstance getEffectInstance() + { + return super.getEffectInstance(); + } + } + + /** + * This event is fired when a new {@link MobEffectInstance} is added to an entity. + * This event is also fired if an entity already has the effect but with a different duration or amplifier. + * This event is not {@link Cancelable}. + * This event does not have a result. + */ + public static class Added extends MobEffectEvent + { + private final MobEffectInstance oldEffectInstance; + private final Entity source; + + public Added(LivingEntity living, MobEffectInstance oldEffectInstance, MobEffectInstance newEffectInstance, Entity source) + { + super(living, newEffectInstance); + this.oldEffectInstance = oldEffectInstance; + this.source = source; + } + + /** + * @return the added {@link MobEffectInstance}. This is the unmerged MobEffectInstance if the old MobEffectInstance is not null. + */ + @Override + @NotNull + public MobEffectInstance getEffectInstance() + { + return super.getEffectInstance(); + } + + /** + * @return the old {@link MobEffectInstance}. This can be null if the entity did not have an effect of this kind before. + */ + @Nullable + public MobEffectInstance getOldEffectInstance() + { + return oldEffectInstance; + } + + /** + * @return the entity source of the effect, or {@code null} if none exists + */ + @Nullable + public Entity getEffectSource() + { + return source; + } + } + + /** + * This event is fired when a {@link MobEffectInstance} expires on an entity. + * This event is not {@link Cancelable}. + * This event does not have a result. + */ + public static class Expired extends MobEffectEvent + { + public Expired(LivingEntity living, MobEffectInstance effectInstance) + { + super(living, effectInstance); + } + } +} diff --git a/src/main/java/net/minecraftforge/event/entity/living/PotionEvent.java b/src/main/java/net/minecraftforge/event/entity/living/PotionEvent.java deleted file mode 100644 index 557f0535ac..0000000000 --- a/src/main/java/net/minecraftforge/event/entity/living/PotionEvent.java +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Copyright (c) Forge Development LLC and contributors - * SPDX-License-Identifier: LGPL-2.1-only - */ - -package net.minecraftforge.event.entity.living; - -import net.minecraft.world.effect.MobEffect; -import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.eventbus.api.Cancelable; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * This Event and its subevents gets fired from {@link LivingEntity} on the {@link MinecraftForge#EVENT_BUS}.
- */ -public class PotionEvent extends LivingEvent -{ - @Nullable - protected final MobEffectInstance effect; - - public PotionEvent(LivingEntity living, MobEffectInstance effect) - { - super(living); - this.effect = effect; - } - /** - * Retuns the PotionEffect. - */ - @Nullable - public MobEffectInstance getPotionEffect() - { - return effect; - } - - /** - * This Event is fired when a Potion is about to get removed from an Entity. - * This Event is {@link Cancelable}. - * This Event does not have a result. - */ - @Cancelable - public static class PotionRemoveEvent extends PotionEvent - { - private final MobEffect potion; - - public PotionRemoveEvent(LivingEntity living, MobEffect potion) - { - super(living, living.getEffect(potion)); - this.potion = potion; - } - - public PotionRemoveEvent(LivingEntity living, MobEffectInstance effect) - { - super(living, effect); - this.potion = effect.getEffect(); - } - - /** - * @return the Potion which is tried to remove from the Entity. - */ - public MobEffect getPotion() - { - return this.potion; - } - - /** - * @return the PotionEffect. In the remove event this can be null if the Entity does not have a {@link MobEffect} of the right type active. - */ - @Override - @Nullable - public MobEffectInstance getPotionEffect() - { - return super.getPotionEffect(); - } - } - - /** - * This Event is fired to check if a Potion can get applied to an Entity. - * This Event is not {@link Cancelable} - * This Event has a result {@link HasResult}. - * ALLOW will apply this potion effect. - * DENY will not apply this potion effect. - * DEFAULT will run vanilla logic to determine if this potion isApplicable. - */ - @HasResult - public static class PotionApplicableEvent extends PotionEvent - { - public PotionApplicableEvent(LivingEntity living, MobEffectInstance effect) - { - super(living, effect); - } - - /** - * @return the PotionEffect. - */ - @Override - @NotNull - public MobEffectInstance getPotionEffect() - { - return super.getPotionEffect(); - } - } - - /** - * This Event is fired when a new Potion is added to the Entity. This is also fired if the Entity already has this effect but with different duration/level. - * This Event is not {@link Cancelable} - * This Event does not have a Result. - */ - public static class PotionAddedEvent extends PotionEvent - { - private final MobEffectInstance oldEffect; - private final Entity source; - - public PotionAddedEvent(LivingEntity living, MobEffectInstance oldEffect, MobEffectInstance newEffect, Entity source) - { - super(living, newEffect); - this.oldEffect = oldEffect; - this.source = source; - } - - /** - * @return the added PotionEffect. This is the umerged PotionEffect if the old PotionEffect is not null. - */ - @Override - @NotNull - public MobEffectInstance getPotionEffect() - { - return super.getPotionEffect(); - } - - /** - * @return the old PotionEffect. THis can be null if the entity did not have an effect of this kind before. - */ - @Nullable - public MobEffectInstance getOldPotionEffect() - { - return oldEffect; - } - - /** - * Returns the entity source of the effect, or {@code null} if none exists. - * - * @return the entity source of the effect, or {@code null} - */ - @Nullable - public Entity getPotionSource() - { - return source; - } - } - - /** - * This Event is fired when a Potion effect expires on an Entity. - * This Event is not {@link Cancelable} - * This Event does not have a Result. - */ - public static class PotionExpiryEvent extends PotionEvent - { - public PotionExpiryEvent(LivingEntity living, MobEffectInstance effect) - { - super(living, effect); - } - } -} diff --git a/src/main/java/net/minecraftforge/event/entity/living/ZombieEvent.java b/src/main/java/net/minecraftforge/event/entity/living/ZombieEvent.java index 796ad232d7..455ad2da63 100644 --- a/src/main/java/net/minecraftforge/event/entity/living/ZombieEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/living/ZombieEvent.java @@ -11,64 +11,68 @@ import net.minecraft.world.level.Level; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.ForgeEventFactory; import net.minecraftforge.event.entity.EntityEvent; +import net.minecraftforge.eventbus.api.Cancelable; /** * ZombieEvent is fired whenever a zombie is spawned for aid. * If a method utilizes this event as its parameter, the method will * receive every child event of this class. - * + * * All children of this event are fired on the {@link MinecraftForge#EVENT_BUS}. **/ public class ZombieEvent extends EntityEvent { + private final Zombie zombie; - public ZombieEvent(Zombie entity) + public ZombieEvent(Zombie zombie) { - super(entity); + super(zombie); + this.zombie = zombie; } - public Zombie getSummoner() + @Override + public Zombie getEntity() { - return (Zombie) getEntity(); + return this.zombie; } - + /** * SummonAidEvent is fired when a Zombie Entity is summoned. - * This event is fired whenever a Zombie Entity is summoned in + * This event is fired whenever a Zombie Entity is summoned in * {@code Zombie#actuallyHurt(DamageSource, float)}. - * + * * This event is fired via the {@link ForgeEventFactory#fireZombieSummonAid(Zombie, Level, int, int, int, LivingEntity, double)}. - * - * {@link #customSummonedAid} remains null, but can be populated with a custom EntityZombie which will be spawned. - * {@link #world} contains the world that this summoning is occurring in. - * {@link #x} contains the x-coordinate at which this summoning event is occurring. - * {@link #y} contains the y-coordinate at which this summoning event is occurring. - * {@link #z} contains the z-coordinate at which this summoning event is occurring. - * {@link #attacker} contains the living Entity that attacked and caused this event to fire. - * {@link #summonChance} contains the likelihood that a Zombie would successfully be summoned. - * - * This event is not {@link net.minecraftforge.eventbus.api.Cancelable}. - * + * + * {@link #getCustomSummonedAid()} remains null, but can be populated with a custom EntityZombie which will be spawned. + * {@link #getLevel()} contains the world that this summoning is occurring in. + * {@link #getX()} contains the x-coordinate at which this summoning event is occurring. + * {@link #getY()} contains the y-coordinate at which this summoning event is occurring. + * {@link #getZ()} contains the z-coordinate at which this summoning event is occurring. + * {@link #getAttacker()} contains the living Entity that attacked and caused this event to fire. + * {@link #getSummonChance()} contains the likelihood that a Zombie would successfully be summoned. + * + * This event is not {@link Cancelable}. + * * This event has a result. {@link HasResult} * {@link Result#ALLOW} Zombie is summoned. * {@link Result#DENY} Zombie is not summoned. - * + * * This event is fired on the {@link MinecraftForge#EVENT_BUS}. **/ @HasResult public static class SummonAidEvent extends ZombieEvent { private Zombie customSummonedAid; - - private final Level world; + + private final Level level; private final int x; private final int y; private final int z; private final LivingEntity attacker; private final double summonChance; - - public SummonAidEvent(Zombie entity, Level world, int x, int y, int z, LivingEntity attacker, double summonChance) + + public SummonAidEvent(Zombie zombie, Level level, int x, int y, int z, LivingEntity attacker, double summonChance) { - super(entity); - this.world = world; + super(zombie); + this.level = level; this.x = x; this.y = y; this.z = z; @@ -81,7 +85,7 @@ public class ZombieEvent extends EntityEvent { */ public Zombie getCustomSummonedAid() { return customSummonedAid; } public void setCustomSummonedAid(Zombie customSummonedAid) { this.customSummonedAid = customSummonedAid; } - public Level getWorld() { return world; } + public Level getLevel() { return level; } public int getX() { return x; } public int getY() { return y; } public int getZ() { return z; } diff --git a/src/main/java/net/minecraftforge/event/entity/player/AnvilRepairEvent.java b/src/main/java/net/minecraftforge/event/entity/player/AnvilRepairEvent.java index 9649fb50b0..0dd3dc94ba 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/AnvilRepairEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/AnvilRepairEvent.java @@ -40,21 +40,21 @@ public class AnvilRepairEvent extends PlayerEvent * @return the output */ @NotNull - public ItemStack getItemResult() { return output; } + public ItemStack getOutput() { return output; } /** * Get the first item input into the anvil * @return the first input slot */ @NotNull - public ItemStack getItemInput() { return left; } + public ItemStack getLeft() { return left; } /** * Get the second item input into the anvil * @return the second input slot */ @NotNull - public ItemStack getIngredientInput() { return right; } + public ItemStack getRight() { return right; } public float getBreakChance() { return breakChance; } public void setBreakChance(float breakChance) { this.breakChance = breakChance; } diff --git a/src/main/java/net/minecraftforge/event/entity/player/ArrowLooseEvent.java b/src/main/java/net/minecraftforge/event/entity/player/ArrowLooseEvent.java index f51cb641cf..a6bf884f95 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/ArrowLooseEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/ArrowLooseEvent.java @@ -33,22 +33,22 @@ import org.jetbrains.annotations.NotNull; public class ArrowLooseEvent extends PlayerEvent { private final ItemStack bow; - private final Level world; + private final Level level; private final boolean hasAmmo; private int charge; - public ArrowLooseEvent(Player player, @NotNull ItemStack bow, Level world, int charge, boolean hasAmmo) + public ArrowLooseEvent(Player player, @NotNull ItemStack bow, Level level, int charge, boolean hasAmmo) { super(player); this.bow = bow; - this.world = world; + this.level = level; this.charge = charge; this.hasAmmo = hasAmmo; } @NotNull public ItemStack getBow() { return this.bow; } - public Level getWorld() { return this.world; } + public Level getLevel() { return this.level; } public boolean hasAmmo() { return this.hasAmmo; } public int getCharge() { return this.charge; } public void setCharge(int charge) { this.charge = charge; } diff --git a/src/main/java/net/minecraftforge/event/entity/player/ArrowNockEvent.java b/src/main/java/net/minecraftforge/event/entity/player/ArrowNockEvent.java index 85b1b06625..8198a39c28 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/ArrowNockEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/ArrowNockEvent.java @@ -25,22 +25,22 @@ public class ArrowNockEvent extends PlayerEvent { private final ItemStack bow; private final InteractionHand hand; - private final Level world; + private final Level level; private final boolean hasAmmo; private InteractionResultHolder action; - public ArrowNockEvent(Player player, @NotNull ItemStack item, InteractionHand hand, Level world, boolean hasAmmo) + public ArrowNockEvent(Player player, @NotNull ItemStack item, InteractionHand hand, Level level, boolean hasAmmo) { super(player); this.bow = item; this.hand = hand; - this.world = world; + this.level = level; this.hasAmmo = hasAmmo; } @NotNull public ItemStack getBow() { return this.bow; } - public Level getWorld() { return this.world; } + public Level getLevel() { return this.level; } public InteractionHand getHand() { return this.hand; } public boolean hasAmmo() { return this.hasAmmo; } public InteractionResultHolder getAction() diff --git a/src/main/java/net/minecraftforge/event/entity/player/BonemealEvent.java b/src/main/java/net/minecraftforge/event/entity/player/BonemealEvent.java index 009f094cb8..2c5a30f867 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/BonemealEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/BonemealEvent.java @@ -27,23 +27,23 @@ import org.jetbrains.annotations.NotNull; public class BonemealEvent extends PlayerEvent { - private final Level world; + private final Level level; private final BlockPos pos; private final BlockState block; private final ItemStack stack; - public BonemealEvent(@NotNull Player player, @NotNull Level world, @NotNull BlockPos pos, @NotNull BlockState block, @NotNull ItemStack stack) + public BonemealEvent(@NotNull Player player, @NotNull Level level, @NotNull BlockPos pos, @NotNull BlockState block, @NotNull ItemStack stack) { super(player); - this.world = world; + this.level = level; this.pos = pos; this.block = block; this.stack = stack; } - public Level getWorld() + public Level getLevel() { - return world; + return level; } public BlockPos getPos() diff --git a/src/main/java/net/minecraftforge/event/entity/player/FillBucketEvent.java b/src/main/java/net/minecraftforge/event/entity/player/FillBucketEvent.java index 6a00343dcf..2119eb06e0 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/FillBucketEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/FillBucketEvent.java @@ -29,23 +29,23 @@ public class FillBucketEvent extends PlayerEvent { private final ItemStack current; - private final Level world; + private final Level level; @Nullable private final HitResult target; private ItemStack result; - public FillBucketEvent(Player player, @NotNull ItemStack current, Level world, @Nullable HitResult target) + public FillBucketEvent(Player player, @NotNull ItemStack current, Level level, @Nullable HitResult target) { super(player); this.current = current; - this.world = world; + this.level = level; this.target = target; } @NotNull public ItemStack getEmptyBucket() { return this.current; } - public Level getWorld(){ return this.world; } + public Level getLevel(){ return this.level; } @Nullable public HitResult getTarget() { return this.target; } @NotNull diff --git a/src/main/java/net/minecraftforge/event/entity/player/ItemTooltipEvent.java b/src/main/java/net/minecraftforge/event/entity/player/ItemTooltipEvent.java index 24941e942d..25c82bf1a1 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/ItemTooltipEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/ItemTooltipEvent.java @@ -23,12 +23,12 @@ public class ItemTooltipEvent extends PlayerEvent private final List toolTip; /** - * This event is fired in {@link ItemStack#getTooltipLines(Player, TooltipFlag)}, which in turn is called from it's respective GUIContainer. - * Tooltips are also gathered with a null entityPlayer during startup by {@link Minecraft#createSearchTrees()}. + * This event is fired in {@link ItemStack#getTooltipLines(Player, TooltipFlag)}, which in turn is called from its respective GUIContainer. + * Tooltips are also gathered with a null player during startup by {@link Minecraft#createSearchTrees()}. */ - public ItemTooltipEvent(@NotNull ItemStack itemStack, @Nullable Player entityPlayer, List list, TooltipFlag flags) + public ItemTooltipEvent(@NotNull ItemStack itemStack, @Nullable Player player, List list, TooltipFlag flags) { - super(entityPlayer); + super(player); this.itemStack = itemStack; this.toolTip = list; this.flags = flags; @@ -64,8 +64,8 @@ public class ItemTooltipEvent extends PlayerEvent */ @Override @Nullable - public Player getPlayer() + public Player getEntity() { - return super.getPlayer(); + return super.getEntity(); } } diff --git a/src/main/java/net/minecraftforge/event/entity/player/PlayerDestroyItemEvent.java b/src/main/java/net/minecraftforge/event/entity/player/PlayerDestroyItemEvent.java index 7446bfc24f..aca1d8e4bb 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/PlayerDestroyItemEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/PlayerDestroyItemEvent.java @@ -5,7 +5,6 @@ package net.minecraftforge.event.entity.player; -import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.multiplayer.MultiPlayerGameMode; import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.BlockPos; @@ -33,7 +32,7 @@ import org.jetbrains.annotations.Nullable; * {@link Player#attack(Entity)}, * {@code Player#hurtCurrentlyUsedShield(float)}, * {@link Player#interactOn(Entity, InteractionHand)}, - * {@link ForgeHooks#getContainerItem(ItemStack)}, + * {@link ForgeHooks#getCraftingRemainingItem(ItemStack)}, * {@link ServerPlayerGameMode#useItem(ServerPlayer, Level, ItemStack, InteractionHand)} , * {@link ServerPlayerGameMode#useItemOn(ServerPlayer, Level, ItemStack, InteractionHand, BlockHitResult)} * and {@link ServerPlayerGameMode#destroyBlock(BlockPos)}.
diff --git a/src/main/java/net/minecraftforge/event/entity/player/PlayerEvent.java b/src/main/java/net/minecraftforge/event/entity/player/PlayerEvent.java index 6634a21d40..9e3cdc3e15 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/PlayerEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/PlayerEvent.java @@ -27,7 +27,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** - * PlayerEvent is fired whenever an event involving Living entities occurs.
+ * PlayerEvent is fired whenever an event involving a {@link Player} occurs.
* If a method utilizes this {@link net.minecraftforge.eventbus.api.Event} as its parameter, the method will * receive every child event of this class.
*
@@ -35,17 +35,20 @@ import org.jetbrains.annotations.Nullable; **/ public class PlayerEvent extends LivingEvent { - private final Player entityPlayer; + private final Player player; + public PlayerEvent(Player player) { super(player); - entityPlayer = player; + this.player = player; + } + + @Override + public Player getEntity() + { + return player; } - /** - * @return Player - */ - public Player getPlayer() { return entityPlayer; } /** * HarvestCheck is fired when a player attempts to harvest a block.
* This event is fired whenever a player attempts to harvest a block in diff --git a/src/main/java/net/minecraftforge/event/entity/player/PlayerInteractEvent.java b/src/main/java/net/minecraftforge/event/entity/player/PlayerInteractEvent.java index 29f0e34df7..08d08fecdc 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/PlayerInteractEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/PlayerInteractEvent.java @@ -322,7 +322,7 @@ public class PlayerInteractEvent extends PlayerEvent @NotNull public ItemStack getItemStack() { - return getPlayer().getItemInHand(hand); + return getEntity().getItemInHand(hand); } /** @@ -348,11 +348,11 @@ public class PlayerInteractEvent extends PlayerEvent } /** - * @return Convenience method to get the world of this interaction. + * @return Convenience method to get the level of this interaction. */ - public Level getWorld() + public Level getLevel() { - return getPlayer().getCommandSenderWorld(); + return getEntity().level; } /** @@ -360,7 +360,7 @@ public class PlayerInteractEvent extends PlayerEvent */ public LogicalSide getSide() { - return getWorld().isClientSide ? LogicalSide.CLIENT : LogicalSide.SERVER; + return getLevel().isClientSide ? LogicalSide.CLIENT : LogicalSide.SERVER; } /** diff --git a/src/main/java/net/minecraftforge/event/entity/player/PlayerSetSpawnEvent.java b/src/main/java/net/minecraftforge/event/entity/player/PlayerSetSpawnEvent.java index 14177f77b6..a0103f9e56 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/PlayerSetSpawnEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/PlayerSetSpawnEvent.java @@ -19,15 +19,15 @@ import org.jetbrains.annotations.Nullable; @Cancelable public class PlayerSetSpawnEvent extends PlayerEvent { - private final ResourceKey spawnWorld; + private final ResourceKey spawnLevel; private final boolean forced; @Nullable private final BlockPos newSpawn; - public PlayerSetSpawnEvent(Player player, ResourceKey spawnWorld, @Nullable BlockPos newSpawn, boolean forced) + public PlayerSetSpawnEvent(Player player, ResourceKey spawnLevel, @Nullable BlockPos newSpawn, boolean forced) { super(player); - this.spawnWorld = spawnWorld; + this.spawnLevel = spawnLevel; this.newSpawn = newSpawn; this.forced = forced; } @@ -46,8 +46,8 @@ public class PlayerSetSpawnEvent extends PlayerEvent return newSpawn; } - public ResourceKey getSpawnWorld() + public ResourceKey getSpawnLevel() { - return spawnWorld; + return spawnLevel; } } diff --git a/src/main/java/net/minecraftforge/event/entity/player/PlayerWakeUpEvent.java b/src/main/java/net/minecraftforge/event/entity/player/PlayerWakeUpEvent.java index 8e37ba1592..3074a7ee48 100644 --- a/src/main/java/net/minecraftforge/event/entity/player/PlayerWakeUpEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/player/PlayerWakeUpEvent.java @@ -16,13 +16,13 @@ public class PlayerWakeUpEvent extends PlayerEvent { private final boolean wakeImmediately; - private final boolean updateWorld; + private final boolean updateLevel; - public PlayerWakeUpEvent(Player player, boolean wakeImmediately, boolean updateWorld) + public PlayerWakeUpEvent(Player player, boolean wakeImmediately, boolean updateLevel) { super(player); this.wakeImmediately = wakeImmediately; - this.updateWorld = updateWorld; + this.updateLevel = updateLevel; } /** @@ -35,5 +35,5 @@ public class PlayerWakeUpEvent extends PlayerEvent * Indicates if the server should be notified of sleeping changes. * This will only be false if the server is considered 'up to date' already, because, for example, it initiated the call. */ - public boolean updateWorld() { return updateWorld; } + public boolean updateLevel() { return updateLevel; } } diff --git a/src/main/java/net/minecraftforge/event/world/BlockEvent.java b/src/main/java/net/minecraftforge/event/level/BlockEvent.java similarity index 89% rename from src/main/java/net/minecraftforge/event/world/BlockEvent.java rename to src/main/java/net/minecraftforge/event/level/BlockEvent.java index 057126e0a5..b0634ae8d4 100644 --- a/src/main/java/net/minecraftforge/event/world/BlockEvent.java +++ b/src/main/java/net/minecraftforge/event/level/BlockEvent.java @@ -3,12 +3,13 @@ * SPDX-License-Identifier: LGPL-2.1-only */ -package net.minecraftforge.event.world; +package net.minecraftforge.event.level; import java.util.EnumSet; import java.util.List; import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.block.BaseFireBlock; import net.minecraft.world.level.portal.PortalShape; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.item.enchantment.EnchantmentHelper; @@ -36,19 +37,19 @@ public class BlockEvent extends Event { private static final boolean DEBUG = Boolean.parseBoolean(System.getProperty("forge.debugBlockEvent", "false")); - private final LevelAccessor world; + private final LevelAccessor level; private final BlockPos pos; private final BlockState state; - public BlockEvent(LevelAccessor world, BlockPos pos, BlockState state) + public BlockEvent(LevelAccessor level, BlockPos pos, BlockState state) { this.pos = pos; - this.world = world; + this.level = level; this.state = state; } - public LevelAccessor getWorld() + public LevelAccessor getLevel() { - return world; + return level; } public BlockPos getPos() @@ -72,9 +73,9 @@ public class BlockEvent extends Event private final Player player; private int exp; - public BreakEvent(Level world, BlockPos pos, BlockState state, Player player) + public BreakEvent(Level level, BlockPos pos, BlockState state, Player player) { - super(world, pos, state); + super(level, pos, state); this.player = player; if (state == null || !ForgeHooks.isCorrectToolForDrops(state, player)) // Handle empty block or player unable to break block scenario @@ -85,7 +86,7 @@ public class BlockEvent extends Event { int fortuneLevel = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.BLOCK_FORTUNE, player.getMainHandItem()); int silkTouchLevel = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, player.getMainHandItem()); - this.exp = state.getExpDrop(world, world.random, pos, fortuneLevel, silkTouchLevel); + this.exp = state.getExpDrop(level, level.random, pos, fortuneLevel, silkTouchLevel); } } @@ -193,9 +194,9 @@ public class BlockEvent extends Event private final EnumSet notifiedSides; private final boolean forceRedstoneUpdate; - public NeighborNotifyEvent(Level world, BlockPos pos, BlockState state, EnumSet notifiedSides, boolean forceRedstoneUpdate) + public NeighborNotifyEvent(Level level, BlockPos pos, BlockState state, EnumSet notifiedSides, boolean forceRedstoneUpdate) { - super(world, pos, state); + super(level, pos, state); this.notifiedSides = notifiedSides; this.forceRedstoneUpdate = forceRedstoneUpdate; } @@ -229,20 +230,20 @@ public class BlockEvent extends Event @HasResult public static class CreateFluidSourceEvent extends Event { - private final LevelReader world; + private final LevelReader level; private final BlockPos pos; private final BlockState state; - public CreateFluidSourceEvent(LevelReader world, BlockPos pos, BlockState state) + public CreateFluidSourceEvent(LevelReader level, BlockPos pos, BlockState state) { - this.world = world; + this.level = level; this.pos = pos; this.state = state; } - public LevelReader getWorld() + public LevelReader getLevel() { - return world; + return level; } public BlockPos getPos() @@ -271,12 +272,12 @@ public class BlockEvent extends Event private BlockState newState; private BlockState origState; - public FluidPlaceBlockEvent(LevelAccessor world, BlockPos pos, BlockPos liquidPos, BlockState state) + public FluidPlaceBlockEvent(LevelAccessor level, BlockPos pos, BlockPos liquidPos, BlockState state) { - super(world, pos, state); + super(level, pos, state); this.liquidPos = liquidPos; this.newState = state; - this.origState = world.getBlockState(pos); + this.origState = level.getBlockState(pos); } /** @@ -315,9 +316,9 @@ public class BlockEvent extends Event */ public static class CropGrowEvent extends BlockEvent { - public CropGrowEvent(Level world, BlockPos pos, BlockState state) + public CropGrowEvent(Level level, BlockPos pos, BlockState state) { - super(world, pos, state); + super(level, pos, state); } /** @@ -334,9 +335,9 @@ public class BlockEvent extends Event @HasResult public static class Pre extends CropGrowEvent { - public Pre(Level world, BlockPos pos, BlockState state) + public Pre(Level level, BlockPos pos, BlockState state) { - super(world, pos, state); + super(level, pos, state); } } @@ -352,9 +353,9 @@ public class BlockEvent extends Event public static class Post extends CropGrowEvent { private final BlockState originalState; - public Post(Level world, BlockPos pos, BlockState original, BlockState state) + public Post(Level level, BlockPos pos, BlockState original, BlockState state) { - super(world, pos, state); + super(level, pos, state); originalState = original; } @@ -376,9 +377,9 @@ public class BlockEvent extends Event private final Entity entity; private final float fallDistance; - public FarmlandTrampleEvent(Level world, BlockPos pos, BlockState state, float fallDistance, Entity entity) + public FarmlandTrampleEvent(Level level, BlockPos pos, BlockState state, float fallDistance, Entity entity) { - super(world, pos, state); + super(level, pos, state); this.entity = entity; this.fallDistance = fallDistance; } @@ -393,8 +394,8 @@ public class BlockEvent extends Event } - /* Fired when an attempt is made to spawn a nether portal from - * {@link net.minecraft.block.BlockPortal#trySpawnPortal(World, BlockPos)}. + /** Fired when an attempt is made to spawn a nether portal from + * {@link BaseFireBlock#onPlace(BlockState, Level, BlockPos, BlockState, boolean)}. * * If cancelled, the portal will not be spawned. */ @@ -403,9 +404,9 @@ public class BlockEvent extends Event { private final PortalShape size; - public PortalSpawnEvent(LevelAccessor world, BlockPos pos, BlockState state, PortalShape size) + public PortalSpawnEvent(LevelAccessor level, BlockPos pos, BlockState state, PortalShape size) { - super(world, pos, state); + super(level, pos, state); this.size = size; } @@ -420,7 +421,7 @@ public class BlockEvent extends Event * For example: Used to determine if {@link ToolActions#AXE_STRIP an axe can strip}, * {@link ToolActions#SHOVEL_FLATTEN a shovel can path}, or {@link ToolActions#HOE_TILL a hoe can till}. *

- * Care must be taken to ensure world-modifying events are only performed if {@link #isSimulated()} returns {@code false}. + * Care must be taken to ensure level-modifying events are only performed if {@link #isSimulated()} returns {@code false}. *

* This event is {@link Cancelable}. If canceled, this will prevent the tool * from changing the block's state. @@ -469,11 +470,11 @@ public class BlockEvent extends Event } /** - * Returns {@code true} if this event should not perform any actions that modify the world. - * If {@code false}, then world-modifying actions can be performed. + * Returns {@code true} if this event should not perform any actions that modify the level. + * If {@code false}, then level-modifying actions can be performed. * - * @return {@code true} if this event should not perform any actions that modify the world. - * If {@code false}, then world-modifying actions can be performed. + * @return {@code true} if this event should not perform any actions that modify the level. + * If {@code false}, then level-modifying actions can be performed. */ public boolean isSimulated() { diff --git a/src/main/java/net/minecraftforge/event/world/ChunkDataEvent.java b/src/main/java/net/minecraftforge/event/level/ChunkDataEvent.java similarity index 96% rename from src/main/java/net/minecraftforge/event/world/ChunkDataEvent.java rename to src/main/java/net/minecraftforge/event/level/ChunkDataEvent.java index 7e6d28d371..8557451efd 100644 --- a/src/main/java/net/minecraftforge/event/world/ChunkDataEvent.java +++ b/src/main/java/net/minecraftforge/event/level/ChunkDataEvent.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: LGPL-2.1-only */ -package net.minecraftforge.event.world; +package net.minecraftforge.event.level; import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; @@ -79,7 +79,7 @@ public class ChunkDataEvent extends ChunkEvent * This event is fired during chunk saving in * {@code ChunkMap#save(ChunkAccess)}.
*
- * This event is not {@link net.minecraftforge.eventbus.api.Cancelable}.
+ * This event is not {@link Cancelable}.
*
* This event does not have a result. {@link HasResult}
*
diff --git a/src/main/java/net/minecraftforge/event/world/ChunkEvent.java b/src/main/java/net/minecraftforge/event/level/ChunkEvent.java similarity index 84% rename from src/main/java/net/minecraftforge/event/world/ChunkEvent.java rename to src/main/java/net/minecraftforge/event/level/ChunkEvent.java index af2de3fe21..ac8d32ca7d 100644 --- a/src/main/java/net/minecraftforge/event/world/ChunkEvent.java +++ b/src/main/java/net/minecraftforge/event/level/ChunkEvent.java @@ -3,11 +3,8 @@ * SPDX-License-Identifier: LGPL-2.1-only */ -package net.minecraftforge.event.world; +package net.minecraftforge.event.level; -import net.minecraft.client.multiplayer.ClientChunkCache; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkStatus; @@ -16,8 +13,6 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.Cancelable; import net.minecraftforge.eventbus.api.Event; -import java.util.BitSet; - /** * ChunkEvent is fired when an event involving a chunk occurs.
* If a method utilizes this {@link Event} as its parameter, the method will @@ -27,7 +22,7 @@ import java.util.BitSet; *
* All children of this event are fired on the {@link MinecraftForge#EVENT_BUS}.
**/ -public class ChunkEvent extends WorldEvent +public class ChunkEvent extends LevelEvent { private final ChunkAccess chunk; @@ -37,9 +32,9 @@ public class ChunkEvent extends WorldEvent this.chunk = chunk; } - public ChunkEvent(ChunkAccess chunk, LevelAccessor world) + public ChunkEvent(ChunkAccess chunk, LevelAccessor level) { - super(world); + super(level); this.chunk = chunk; } @@ -49,11 +44,11 @@ public class ChunkEvent extends WorldEvent } /** - * ChunkEvent.Load is fired when vanilla Minecraft attempts to load a Chunk into the world.
+ * ChunkEvent.Load is fired when vanilla Minecraft attempts to load a Chunk into the level.
* This event is fired during chunk loading in
- * + * * Chunk.onChunkLoad().
- * Note: This event may be called before the underlying {@link LevelChunk} is promoted to {@link ChunkStatus#FULL}. You will cause chunk loading deadlocks if you don't delay your world interactions.
+ * Note: This event may be called before the underlying {@link LevelChunk} is promoted to {@link ChunkStatus#FULL}. You will cause chunk loading deadlocks if you don't delay your level interactions.
*
* This event is not {@link Cancelable}.
*
@@ -70,7 +65,7 @@ public class ChunkEvent extends WorldEvent } /** - * ChunkEvent.Unload is fired when vanilla Minecraft attempts to unload a Chunk from the world.
+ * ChunkEvent.Unload is fired when vanilla Minecraft attempts to unload a Chunk from the level.
* This event is fired during chunk unloading in
* Chunk.onChunkUnload().
*
diff --git a/src/main/java/net/minecraftforge/event/world/ChunkWatchEvent.java b/src/main/java/net/minecraftforge/event/level/ChunkWatchEvent.java similarity index 52% rename from src/main/java/net/minecraftforge/event/world/ChunkWatchEvent.java rename to src/main/java/net/minecraftforge/event/level/ChunkWatchEvent.java index c9cf5c97c2..fdf0ea12d5 100644 --- a/src/main/java/net/minecraftforge/event/world/ChunkWatchEvent.java +++ b/src/main/java/net/minecraftforge/event/level/ChunkWatchEvent.java @@ -3,61 +3,67 @@ * SPDX-License-Identifier: LGPL-2.1-only */ -package net.minecraftforge.event.world; +package net.minecraftforge.event.level; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.ChunkPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.Cancelable; import net.minecraftforge.eventbus.api.Event; -import org.apache.commons.lang3.mutable.MutableObject; +import net.minecraftforge.fml.LogicalSide; /** - * ChunkWatchEvent is fired when an event involving a chunk being watched occurs. + * This event is fired whenever a chunk has a watch-related action. *

- * If a method utilizes this {@link Event} as its parameter, the method will - * receive every child event of this class. - *

- * {@link #pos} contains the ChunkPos of the Chunk this event is affecting.
- * {@link #world} contains the World of the Chunk this event is affecting.
- * {@link #player} contains the {@link ServerPlayer} that is involved with this chunk being watched. - *

- * The {@link #player}'s world may not be the same as the world of the chunk + * The {@linkplain #getPlayer() player}'s level may not be the same as the {@linkplain #getLevel() level of the chunk} * when the player is teleporting to another dimension. *

- * All children of this event are fired on the {@link MinecraftForge#EVENT_BUS}. + * This event is not {@linkplain Cancelable cancellable} and does not {@linkplain HasResult have a result}. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus} + * only on the {@linkplain LogicalSide#SERVER logical server}. **/ public class ChunkWatchEvent extends Event { - private final ServerLevel world; + private final ServerLevel level; private final ServerPlayer player; private final ChunkPos pos; - public ChunkWatchEvent(ServerPlayer player, ChunkPos pos, ServerLevel world) + public ChunkWatchEvent(ServerPlayer player, ChunkPos pos, ServerLevel level) { this.player = player; this.pos = pos; - this.world = world; + this.level = level; } + /** + * {@return the server player involved with the watch action} + */ public ServerPlayer getPlayer() { return this.player; } + /** + * {@return the chunk position this watch event is affecting} + */ public ChunkPos getPos() { return this.pos; } - public ServerLevel getWorld() + /** + * {@return the server level containing the chunk} + */ + public ServerLevel getLevel() { - return this.world; + return this.level; } /** - * ChunkWatchEvent.Watch is fired when a {@link ServerPlayer} begins watching a chunk. + * This event is fired whenever a {@link ServerPlayer} begins watching a chunk. *

* This event is fired when a chunk is added to the watched chunks of a {@link ServerPlayer} * and the chunk's data is sent to the client (see @@ -65,16 +71,18 @@ public class ChunkWatchEvent extends Event *

* This event may be used to send additional chunk-related data to the client. *

- * This event is not {@link net.minecraftforge.eventbus.api.Cancelable} and - * {@link HasResult does not have a result}. + * This event is not {@linkplain Cancelable cancellable} and does not {@linkplain HasResult have a result}. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus} + * only on the {@linkplain LogicalSide#SERVER logical server}. **/ public static class Watch extends ChunkWatchEvent { private final LevelChunk chunk; - public Watch(ServerPlayer player, LevelChunk chunk, ServerLevel world) + public Watch(ServerPlayer player, LevelChunk chunk, ServerLevel level) { - super(player, chunk.getPos(), world); + super(player, chunk.getPos(), level); this.chunk = chunk; } @@ -85,16 +93,18 @@ public class ChunkWatchEvent extends Event } /** - * ChunkWatchEvent.UnWatch is fired when a {@link ServerPlayer} stops watching a chunk. + * This event is fired whenever a {@link ServerPlayer} stops watching a chunk. *

* This event is fired when a chunk is removed from the watched chunks of an {@link ServerPlayer} * in {@code net.minecraft.server.level.ChunkMap#updateChunkTracking(ServerPlayer, ChunkPos, Packet[], boolean, boolean)}. *

- * This event is not {@link net.minecraftforge.eventbus.api.Cancelable} and - * {@link HasResult does not have a result}. + * This event is not {@linkplain Cancelable cancellable} and does not {@linkplain HasResult have a result}. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus} + * only on the {@linkplain LogicalSide#SERVER logical server}. **/ public static class UnWatch extends ChunkWatchEvent { - public UnWatch(ServerPlayer player, ChunkPos pos, ServerLevel world) {super(player, pos, world);} + public UnWatch(ServerPlayer player, ChunkPos pos, ServerLevel level) {super(player, pos, level);} } } diff --git a/src/main/java/net/minecraftforge/event/world/ExplosionEvent.java b/src/main/java/net/minecraftforge/event/level/ExplosionEvent.java similarity index 81% rename from src/main/java/net/minecraftforge/event/world/ExplosionEvent.java rename to src/main/java/net/minecraftforge/event/level/ExplosionEvent.java index 395ccf4878..b03105f194 100644 --- a/src/main/java/net/minecraftforge/event/world/ExplosionEvent.java +++ b/src/main/java/net/minecraftforge/event/level/ExplosionEvent.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: LGPL-2.1-only */ -package net.minecraftforge.event.world; +package net.minecraftforge.event.level; import java.util.List; @@ -15,7 +15,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Level; -/** ExplosionEvent triggers when an explosion happens in the world.
+/** ExplosionEvent triggers when an explosion happens in the level.
*
* ExplosionEvent.Start is fired before the explosion actually occurs.
* ExplosionEvent.Detonate is fired once the explosion has a list of affected blocks and entities.
@@ -27,18 +27,18 @@ import net.minecraft.world.level.Level; */ public class ExplosionEvent extends Event { - private final Level world; + private final Level level; private final Explosion explosion; - public ExplosionEvent(Level world, Explosion explosion) + public ExplosionEvent(Level level, Explosion explosion) { - this.world = world; + this.level = level; this.explosion = explosion; } - public Level getWorld() + public Level getLevel() { - return world; + return level; } public Explosion getExplosion() @@ -48,16 +48,16 @@ public class ExplosionEvent extends Event /** ExplosionEvent.Start is fired before the explosion actually occurs. Canceling this event will stop the explosion.
*
- * This event is {@link net.minecraftforge.eventbus.api.Cancelable}.
+ * This event is {@link Cancelable}.
* This event does not use {@link HasResult}.
* This event is fired on the {@link MinecraftForge#EVENT_BUS}.
*/ @Cancelable public static class Start extends ExplosionEvent { - public Start(Level world, Explosion explosion) + public Start(Level level, Explosion explosion) { - super(world, explosion); + super(level, explosion); } } @@ -71,9 +71,9 @@ public class ExplosionEvent extends Event { private final List entityList; - public Detonate(Level world, Explosion explosion, List entityList) + public Detonate(Level level, Explosion explosion, List entityList) { - super(world, explosion); + super(level, explosion); this.entityList = entityList; } diff --git a/src/main/java/net/minecraftforge/event/level/LevelEvent.java b/src/main/java/net/minecraftforge/event/level/LevelEvent.java new file mode 100644 index 0000000000..addc76d506 --- /dev/null +++ b/src/main/java/net/minecraftforge/event/level/LevelEvent.java @@ -0,0 +1,120 @@ +/* + * Copyright (c) Forge Development LLC and contributors + * SPDX-License-Identifier: LGPL-2.1-only + */ + +package net.minecraftforge.event.level; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.ProgressListener; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.storage.ServerLevelData; +import net.minecraftforge.common.ForgeInternalHandler; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.Cancelable; +import net.minecraftforge.eventbus.api.Event; +import net.minecraftforge.fml.LogicalSide; + +/** + * This event is fired whenever an event involving a {@link LevelAccessor} occurs. + *

+ * All children of this event are fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus}. + */ +public class LevelEvent extends Event +{ + private final LevelAccessor level; + + public LevelEvent(LevelAccessor level) + { + this.level = level; + } + + /** + * {@return the level this event is affecting} + */ + public LevelAccessor getLevel() + { + return level; + } + + /** + * This event is fired whenever a level loads. + * This event is fired whenever a level loads in ClientLevel's constructor and + * {@literal MinecraftServer#createLevels(ChunkProgressListener)}. + *

+ * This event is not {@linkplain Cancelable cancellable} and does not {@linkplain HasResult have a result}. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus} + * on both logical sides. + **/ + public static class Load extends LevelEvent + { + public Load(LevelAccessor level) { super(level); } + } + + /** + * This event is fired whenever a level unloads. + * This event is fired whenever a level unloads in + * {@link Minecraft#setLevel(ClientLevel)}, + * {@link MinecraftServer#stopServer()}, + * {@link Minecraft#clearLevel(Screen)}, and + * {@link ForgeInternalHandler#onDimensionUnload(Unload)}. + *

+ * This event is not {@linkplain Cancelable cancellable} and does not {@linkplain HasResult have a result}. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus} + * on both logical sides. + **/ + public static class Unload extends LevelEvent + { + public Unload(LevelAccessor level) { super(level); } + } + + /** + * This event fires whenever a level is saved. + * This event is fired when a level is saved in + * {@link ServerLevel#save(ProgressListener, boolean, boolean)}. + *

+ * This event is not {@linkplain Cancelable cancellable} and does not {@linkplain HasResult have a result}. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus} + * only on the {@linkplain LogicalSide#SERVER logical server}. + **/ + public static class Save extends LevelEvent + { + public Save(LevelAccessor level) { super(level); } + } + + /** + * This event fires whenever a {@link ServerLevel} is initialized for the first time + * and a spawn position needs to be chosen. + *

+ * This event is {@linkplain Cancelable cancellable} and does not {@linkplain HasResult have a result}. + * If the event is canceled, the vanilla logic to choose a spawn position will be skipped. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus} + * only on the {@linkplain LogicalSide#SERVER logical server}. + * + * @see ServerLevelData#isInitialized() + */ + @Cancelable + public static class CreateSpawnPosition extends LevelEvent + { + private final ServerLevelData settings; + + public CreateSpawnPosition(LevelAccessor level, ServerLevelData settings) + { + super(level); + this.settings = settings; + } + + public ServerLevelData getSettings() + { + return settings; + } + } +} diff --git a/src/main/java/net/minecraftforge/event/world/NoteBlockEvent.java b/src/main/java/net/minecraftforge/event/level/NoteBlockEvent.java similarity index 99% rename from src/main/java/net/minecraftforge/event/world/NoteBlockEvent.java rename to src/main/java/net/minecraftforge/event/level/NoteBlockEvent.java index c82778d046..f88e1f9fc5 100644 --- a/src/main/java/net/minecraftforge/event/world/NoteBlockEvent.java +++ b/src/main/java/net/minecraftforge/event/level/NoteBlockEvent.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: LGPL-2.1-only */ -package net.minecraftforge.event.world; +package net.minecraftforge.event.level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; diff --git a/src/main/java/net/minecraftforge/event/world/PistonEvent.java b/src/main/java/net/minecraftforge/event/level/PistonEvent.java similarity index 92% rename from src/main/java/net/minecraftforge/event/world/PistonEvent.java rename to src/main/java/net/minecraftforge/event/level/PistonEvent.java index 91664a11e5..86556d447b 100644 --- a/src/main/java/net/minecraftforge/event/world/PistonEvent.java +++ b/src/main/java/net/minecraftforge/event/level/PistonEvent.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: LGPL-2.1-only */ -package net.minecraftforge.event.world; +package net.minecraftforge.event.level; import net.minecraft.world.level.block.piston.PistonStructureResolver; import net.minecraft.core.Direction; @@ -62,8 +62,8 @@ public abstract class PistonEvent extends BlockEvent @Nullable public PistonStructureResolver getStructureHelper() { - if(this.getWorld() instanceof Level) { - return new PistonStructureResolver((Level) this.getWorld(), this.getPos(), this.getDirection(), this.getPistonMoveType().isExtend); + if(this.getLevel() instanceof Level) { + return new PistonStructureResolver((Level) this.getLevel(), this.getPos(), this.getDirection(), this.getPistonMoveType().isExtend); } else { return null; } diff --git a/src/main/java/net/minecraftforge/event/level/SaplingGrowTreeEvent.java b/src/main/java/net/minecraftforge/event/level/SaplingGrowTreeEvent.java new file mode 100644 index 0000000000..e5732be475 --- /dev/null +++ b/src/main/java/net/minecraftforge/event/level/SaplingGrowTreeEvent.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) Forge Development LLC and contributors + * SPDX-License-Identifier: LGPL-2.1-only + */ + +package net.minecraftforge.event.level; + +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.SaplingBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.Cancelable; +import net.minecraftforge.eventbus.api.Event.HasResult; + +/** + * This event is fired whenever a sapling grows into a tree. + * This event is fired during sapling growth in + * {@link SaplingBlock#advanceTree(ServerLevel, BlockPos, BlockState, RandomSource)}. + *

+ * This event is not {@linkplain Cancelable cancellable} but does {@linkplain HasResult have a result}. + * {@linkplain Result#ALLOW ALLOW} and {@linkplain Result#DEFAULT DEFAULT} will allow the sapling to grow. + * {@linkplain Result#DENY DENY} will prevent the sapling from growing. + *

+ * This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus} + * only on the {@linkplain net.minecraftforge.fml.LogicalSide#SERVER logical server}. + */ +@HasResult +public class SaplingGrowTreeEvent extends LevelEvent +{ + private final BlockPos pos; + private final RandomSource randomSource; + + public SaplingGrowTreeEvent(LevelAccessor level, RandomSource randomSource, BlockPos pos) + { + super(level); + this.randomSource = randomSource; + this.pos = pos; + } + + /** + * {@return the coordinates of the sapling attempting to grow} + */ + public BlockPos getPos() + { + return pos; + } + + /** + * {@return the random source which initiated the sapling growth} + */ + public RandomSource getRandomSource() + { + return this.randomSource; + } +} diff --git a/src/main/java/net/minecraftforge/event/world/SleepFinishedTimeEvent.java b/src/main/java/net/minecraftforge/event/level/SleepFinishedTimeEvent.java similarity index 76% rename from src/main/java/net/minecraftforge/event/world/SleepFinishedTimeEvent.java rename to src/main/java/net/minecraftforge/event/level/SleepFinishedTimeEvent.java index 308c41a04e..4847e1f11f 100644 --- a/src/main/java/net/minecraftforge/event/world/SleepFinishedTimeEvent.java +++ b/src/main/java/net/minecraftforge/event/level/SleepFinishedTimeEvent.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: LGPL-2.1-only */ -package net.minecraftforge.event.world; +package net.minecraftforge.event.level; import net.minecraft.server.level.ServerLevel; @@ -12,16 +12,16 @@ import net.minecraft.server.level.ServerLevel; * * setWakeUpTime(wakeUpTime) sets a new time that will be added to the dayTime.
*/ -public class SleepFinishedTimeEvent extends WorldEvent +public class SleepFinishedTimeEvent extends LevelEvent { private long newTime; private final long minTime; - public SleepFinishedTimeEvent(ServerLevel worldIn, long newTimeIn, long minTimeIn) + public SleepFinishedTimeEvent(ServerLevel level, long newTime, long minTime) { - super(worldIn); - this.newTime = newTimeIn; - this.minTime = minTimeIn; + super(level); + this.newTime = newTime; + this.minTime = minTime; } /** diff --git a/src/main/java/net/minecraftforge/event/village/VillageSiegeEvent.java b/src/main/java/net/minecraftforge/event/village/VillageSiegeEvent.java index 44c2cab781..bffffac3c0 100644 --- a/src/main/java/net/minecraftforge/event/village/VillageSiegeEvent.java +++ b/src/main/java/net/minecraftforge/event/village/VillageSiegeEvent.java @@ -27,14 +27,14 @@ import net.minecraftforge.eventbus.api.Event; public class VillageSiegeEvent extends Event { private final VillageSiege siege; - private final Level world; + private final Level level; private final Player player; private final Vec3 attemptedSpawnPos; - public VillageSiegeEvent(VillageSiege siege, Level world, Player player, Vec3 attemptedSpawnPos) + public VillageSiegeEvent(VillageSiege siege, Level level, Player player, Vec3 attemptedSpawnPos) { this.siege = siege; - this.world = world; + this.level = level; this.player = player; this.attemptedSpawnPos = attemptedSpawnPos; } @@ -44,9 +44,9 @@ public class VillageSiegeEvent extends Event return siege; } - public Level getWorld() + public Level getLevel() { - return world; + return level; } public Player getPlayer() diff --git a/src/main/java/net/minecraftforge/event/world/RegisterDimensionsEvent.java b/src/main/java/net/minecraftforge/event/world/RegisterDimensionsEvent.java deleted file mode 100644 index 50493de9f2..0000000000 --- a/src/main/java/net/minecraftforge/event/world/RegisterDimensionsEvent.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) Forge Development LLC and contributors - * SPDX-License-Identifier: LGPL-2.1-only - */ - -/*package net.minecraftforge.event.world; - -/** - * Register all of your custom ModDimensons here, fired during server loading when - * dimension data is read from the world file. - * - * Contains a list of missing entries. Registering an entry with the DimensionManger - * will remove the matching entry from the missing list. - * / -public class RegisterDimensionsEvent extends Event -{ - private final Map missing; - private final Set keys; - - public RegisterDimensionsEvent(Map missing) - { - this.missing = missing; - this.keys = Collections.unmodifiableSet(this.missing.keySet()); - } - - public Set getMissingNames() - { - return keys; - } - - @Nullable - public SavedEntry getEntry(ResourceLocation key) - { - return missing.get(key); - } -}*/ diff --git a/src/main/java/net/minecraftforge/event/world/SaplingGrowTreeEvent.java b/src/main/java/net/minecraftforge/event/world/SaplingGrowTreeEvent.java deleted file mode 100644 index 9741cd5122..0000000000 --- a/src/main/java/net/minecraftforge/event/world/SaplingGrowTreeEvent.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) Forge Development LLC and contributors - * SPDX-License-Identifier: LGPL-2.1-only - */ - -package net.minecraftforge.event.world; - -import java.util.Random; - -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.RandomSource; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.block.SaplingBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.eventbus.api.Cancelable; -import net.minecraftforge.eventbus.api.Event.HasResult; - -/** - * SaplingGrowTreeEvent is fired when a sapling grows into a tree.
- * This event is fired during sapling growth in - * {@link SaplingBlock#advanceTree(ServerLevel, BlockPos, BlockState, RandomSource)} .
- *
- * {@link #pos} contains the coordinates of the growing sapling.
- * {@link #rand} contains an instance of Random for use.
- *
- * This event is not {@link Cancelable}.
- *
- * This event has a result. {@link HasResult}
- * This result determines if the sapling is allowed to grow.
- *
- * This event is fired on the {@link MinecraftForge#EVENT_BUS}.
- **/ -@HasResult -public class SaplingGrowTreeEvent extends WorldEvent -{ - private final BlockPos pos; - private final RandomSource rand; - - public SaplingGrowTreeEvent(LevelAccessor world, RandomSource rand, BlockPos pos) - { - super(world); - this.rand = rand; - this.pos = pos; - } - - public BlockPos getPos() - { - return pos; - } - - public RandomSource getRand() - { - return rand; - } -} diff --git a/src/main/java/net/minecraftforge/event/world/WorldEvent.java b/src/main/java/net/minecraftforge/event/world/WorldEvent.java deleted file mode 100644 index afd47c01ba..0000000000 --- a/src/main/java/net/minecraftforge/event/world/WorldEvent.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (c) Forge Development LLC and contributors - * SPDX-License-Identifier: LGPL-2.1-only - */ - -package net.minecraftforge.event.world; - -import java.util.function.Supplier; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.multiplayer.ClientPacketListener; -import net.minecraft.client.renderer.LevelRenderer; -import net.minecraft.resources.ResourceKey; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.ProgressListener; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.dimension.DimensionType; -import net.minecraft.world.level.storage.ServerLevelData; -import net.minecraftforge.common.ForgeInternalHandler; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.eventbus.api.Cancelable; -import net.minecraftforge.eventbus.api.Event; - -/** - * WorldEvent is fired when an event involving the world occurs.
- * If a method utilizes this {@link Event} as its parameter, the method will - * receive every child event of this class.
- *
- * {@link #world} contains the World this event is occurring in.
- *
- * All children of this event are fired on the {@link MinecraftForge#EVENT_BUS}.
- **/ -public class WorldEvent extends Event -{ - private final LevelAccessor world; - - public WorldEvent(LevelAccessor world) - { - this.world = world; - } - - public LevelAccessor getWorld() - { - return world; - } - - /** - * WorldEvent.Load is fired when Minecraft loads a world.
- * This event is fired when a world is loaded in - * {@code ClientLevel#ClientLevel(ClientPacketListener, ClientLevel.ClientLevelData, ResourceKey, DimensionType, int, int, Supplier, LevelRenderer, boolean, long)}, - * {@code MinecraftServer#createLevels(ChunkProgressListener)}.
- *
- * This event is not {@link Cancelable}.
- *
- * This event does not have a result. {@link HasResult}
- *
- * This event is fired on the {@link MinecraftForge#EVENT_BUS}.
- **/ - public static class Load extends WorldEvent - { - public Load(LevelAccessor world) { super(world); } - } - - /** - * WorldEvent.Unload is fired when Minecraft unloads a world.
- * This event is fired when a world is unloaded in - * {@link Minecraft#setLevel(ClientLevel)}, - * {@link MinecraftServer#stopServer()},, - * {@link Minecraft#clearLevel(Screen)} - * {@link ForgeInternalHandler#onDimensionUnload(Unload)}.
- *
- * This event is not {@link Cancelable}.
- *
- * This event does not have a result. {@link HasResult}
- *
- * This event is fired on the {@link MinecraftForge#EVENT_BUS}.
- **/ - public static class Unload extends WorldEvent - { - public Unload(LevelAccessor world) { super(world); } - } - - /** - * WorldEvent.Save is fired when Minecraft saves a world.
- * This event is fired when a world is saved in - * {@link ServerLevel#save(ProgressListener, boolean, boolean)}.
- *
- * This event is not {@link Cancelable}.
- *
- * This event does not have a result. {@link HasResult}
- *
- * This event is fired on the {@link MinecraftForge#EVENT_BUS}.
- **/ - public static class Save extends WorldEvent - { - public Save(LevelAccessor world) { super(world); } - } - - /** - * Called by WorldServer when it attempts to create a spawnpoint for a dimension. - * Canceling the event will prevent the vanilla code from running. - */ - @net.minecraftforge.eventbus.api.Cancelable - public static class CreateSpawnPosition extends WorldEvent - { - private final ServerLevelData settings; - public CreateSpawnPosition(LevelAccessor world, ServerLevelData settings) - { - super(world); - this.settings = settings; - } - - public ServerLevelData getSettings() - { - return settings; - } - } -} diff --git a/src/main/java/net/minecraftforge/fluids/capability/TileFluidHandler.java b/src/main/java/net/minecraftforge/fluids/capability/FluidHandlerBlockEntity.java similarity index 90% rename from src/main/java/net/minecraftforge/fluids/capability/TileFluidHandler.java rename to src/main/java/net/minecraftforge/fluids/capability/FluidHandlerBlockEntity.java index 3c07c7e4b2..309f937580 100644 --- a/src/main/java/net/minecraftforge/fluids/capability/TileFluidHandler.java +++ b/src/main/java/net/minecraftforge/fluids/capability/FluidHandlerBlockEntity.java @@ -18,13 +18,13 @@ import net.minecraftforge.fluids.capability.templates.FluidTank; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class TileFluidHandler extends BlockEntity +public class FluidHandlerBlockEntity extends BlockEntity { protected FluidTank tank = new FluidTank(FluidType.BUCKET_VOLUME); private final LazyOptional holder = LazyOptional.of(() -> tank); - public TileFluidHandler(@NotNull BlockEntityType blockEntityType, BlockPos pos, BlockState state) + public FluidHandlerBlockEntity(@NotNull BlockEntityType blockEntityType, BlockPos pos, BlockState state) { super(blockEntityType, pos, state); } diff --git a/src/main/java/net/minecraftforge/network/NetworkHooks.java b/src/main/java/net/minecraftforge/network/NetworkHooks.java index 294803a7d8..5f4a1a5ae8 100644 --- a/src/main/java/net/minecraftforge/network/NetworkHooks.java +++ b/src/main/java/net/minecraftforge/network/NetworkHooks.java @@ -16,8 +16,8 @@ import java.util.stream.Collectors; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; import net.minecraft.network.chat.Component; +import net.minecraftforge.client.ConfigScreenHandler; import net.minecraftforge.fml.util.thread.EffectiveSide; -import net.minecraftforge.client.ConfigGuiHandler.ConfigGuiFactory; import net.minecraftforge.network.ConnectionData.ModMismatchData; import net.minecraftforge.network.filters.NetworkFilters; import org.apache.commons.lang3.tuple.Pair; @@ -144,35 +144,35 @@ public class NetworkHooks /** * Request to open a GUI on the client, from the server * - * Refer to {@link ConfigGuiFactory} for how to provide a function to consume + * Refer to {@link ConfigScreenHandler.ConfigScreenFactory} for how to provide a function to consume * these GUI requests on the client. * * @param player The player to open the GUI for * @param containerSupplier A supplier of container properties including the registry name of the container */ - public static void openGui(ServerPlayer player, MenuProvider containerSupplier) + public static void openScreen(ServerPlayer player, MenuProvider containerSupplier) { - openGui(player, containerSupplier, buf -> {}); + openScreen(player, containerSupplier, buf -> {}); } /** * Request to open a GUI on the client, from the server * - * Refer to {@link ConfigGuiFactory} for how to provide a function to consume + * Refer to {@link ConfigScreenHandler.ConfigScreenFactory} for how to provide a function to consume * these GUI requests on the client. * * @param player The player to open the GUI for * @param containerSupplier A supplier of container properties including the registry name of the container * @param pos A block pos, which will be encoded into the auxillary data for this request */ - public static void openGui(ServerPlayer player, MenuProvider containerSupplier, BlockPos pos) + public static void openScreen(ServerPlayer player, MenuProvider containerSupplier, BlockPos pos) { - openGui(player, containerSupplier, buf -> buf.writeBlockPos(pos)); + openScreen(player, containerSupplier, buf -> buf.writeBlockPos(pos)); } /** * Request to open a GUI on the client, from the server * - * Refer to {@link ConfigGuiFactory} for how to provide a function to consume + * Refer to {@link ConfigScreenHandler.ConfigScreenFactory} for how to provide a function to consume * these GUI requests on the client. * * The maximum size for #extraDataWriter is 32600 bytes. @@ -181,7 +181,7 @@ public class NetworkHooks * @param containerSupplier A supplier of container properties including the registry name of the container * @param extraDataWriter Consumer to write any additional data the GUI needs */ - public static void openGui(ServerPlayer player, MenuProvider containerSupplier, Consumer extraDataWriter) + public static void openScreen(ServerPlayer player, MenuProvider containerSupplier, Consumer extraDataWriter) { if (player.level.isClientSide) return; player.doCloseContainer(); diff --git a/src/main/java/net/minecraftforge/registries/ForgeDeferredRegistriesSetup.java b/src/main/java/net/minecraftforge/registries/ForgeDeferredRegistriesSetup.java index 9f07fcef6f..5b89582e14 100644 --- a/src/main/java/net/minecraftforge/registries/ForgeDeferredRegistriesSetup.java +++ b/src/main/java/net/minecraftforge/registries/ForgeDeferredRegistriesSetup.java @@ -19,8 +19,8 @@ public class ForgeDeferredRegistriesSetup if (setup) throw new IllegalStateException("Setup has already been called!"); - ForgeRegistries.DEFERRED_DATA_SERIALIZERS.register(modEventBus); - ForgeRegistries.DEFERRED_LOOT_MODIFIER_SERIALIZERS.register(modEventBus); + ForgeRegistries.DEFERRED_ENTITY_DATA_SERIALIZERS.register(modEventBus); + ForgeRegistries.DEFERRED_GLOBAL_LOOT_MODIFIER_SERIALIZERS.register(modEventBus); ForgeRegistries.DEFERRED_BIOME_MODIFIER_SERIALIZERS.register(modEventBus); ForgeRegistries.DEFERRED_FLUID_TYPES.register(modEventBus); ForgeRegistries.DEFERRED_BIOME_MODIFIERS.register(modEventBus); diff --git a/src/main/java/net/minecraftforge/registries/ForgeRegistries.java b/src/main/java/net/minecraftforge/registries/ForgeRegistries.java index a43a244be9..0ef0f96619 100644 --- a/src/main/java/net/minecraftforge/registries/ForgeRegistries.java +++ b/src/main/java/net/minecraftforge/registries/ForgeRegistries.java @@ -65,10 +65,10 @@ public class ForgeRegistries public static final IForgeRegistry SOUND_EVENTS = RegistryManager.ACTIVE.getRegistry(Keys.SOUND_EVENTS); public static final IForgeRegistry POTIONS = RegistryManager.ACTIVE.getRegistry(Keys.POTIONS); public static final IForgeRegistry ENCHANTMENTS = RegistryManager.ACTIVE.getRegistry(Keys.ENCHANTMENTS); - public static final IForgeRegistry> ENTITIES = RegistryManager.ACTIVE.getRegistry(Keys.ENTITY_TYPES); - public static final IForgeRegistry> BLOCK_ENTITIES = RegistryManager.ACTIVE.getRegistry(Keys.BLOCK_ENTITY_TYPES); + public static final IForgeRegistry> ENTITY_TYPES = RegistryManager.ACTIVE.getRegistry(Keys.ENTITY_TYPES); + public static final IForgeRegistry> BLOCK_ENTITY_TYPES = RegistryManager.ACTIVE.getRegistry(Keys.BLOCK_ENTITY_TYPES); public static final IForgeRegistry> PARTICLE_TYPES = RegistryManager.ACTIVE.getRegistry(Keys.PARTICLE_TYPES); - public static final IForgeRegistry> CONTAINERS = RegistryManager.ACTIVE.getRegistry(Keys.CONTAINER_TYPES); + public static final IForgeRegistry> MENU_TYPES = RegistryManager.ACTIVE.getRegistry(Keys.MENU_TYPES); public static final IForgeRegistry PAINTING_VARIANTS = RegistryManager.ACTIVE.getRegistry(Keys.PAINTING_VARIANTS); public static final IForgeRegistry> RECIPE_TYPES = RegistryManager.ACTIVE.getRegistry(Keys.RECIPE_TYPES); public static final IForgeRegistry> RECIPE_SERIALIZERS = RegistryManager.ACTIVE.getRegistry(Keys.RECIPE_SERIALIZERS); @@ -76,7 +76,7 @@ public class ForgeRegistries public static final IForgeRegistry> STAT_TYPES = RegistryManager.ACTIVE.getRegistry(Keys.STAT_TYPES); // Villages - public static final IForgeRegistry PROFESSIONS = RegistryManager.ACTIVE.getRegistry(Keys.VILLAGER_PROFESSIONS); + public static final IForgeRegistry VILLAGER_PROFESSIONS = RegistryManager.ACTIVE.getRegistry(Keys.VILLAGER_PROFESSIONS); public static final IForgeRegistry POI_TYPES = RegistryManager.ACTIVE.getRegistry(Keys.POI_TYPES); public static final IForgeRegistry> MEMORY_MODULE_TYPES = RegistryManager.ACTIVE.getRegistry(Keys.MEMORY_MODULE_TYPES); public static final IForgeRegistry> SENSOR_TYPES = RegistryManager.ACTIVE.getRegistry(Keys.SENSOR_TYPES); @@ -95,15 +95,35 @@ public class ForgeRegistries public static final IForgeRegistry BIOMES = RegistryManager.ACTIVE.getRegistry(Keys.BIOMES); // Custom forge registries - static final DeferredRegister> DEFERRED_DATA_SERIALIZERS = DeferredRegister.create(Keys.DATA_SERIALIZERS, Keys.DATA_SERIALIZERS.location().getNamespace()); - public static final Supplier>> DATA_SERIALIZERS = DEFERRED_DATA_SERIALIZERS.makeRegistry(GameData::getDataSerializersRegistryBuilder); - static final DeferredRegister> DEFERRED_LOOT_MODIFIER_SERIALIZERS = DeferredRegister.create(Keys.LOOT_MODIFIER_SERIALIZERS, Keys.LOOT_MODIFIER_SERIALIZERS.location().getNamespace()); - public static final Supplier>> LOOT_MODIFIER_SERIALIZERS = DEFERRED_LOOT_MODIFIER_SERIALIZERS.makeRegistry(GameData::getGLMSerializersRegistryBuilder); + static final DeferredRegister> DEFERRED_ENTITY_DATA_SERIALIZERS = DeferredRegister.create(Keys.ENTITY_DATA_SERIALIZERS, Keys.ENTITY_DATA_SERIALIZERS.location().getNamespace()); + /** + * Calling {@link Supplier#get()} before {@link NewRegistryEvent} is fired will result in a null registry returned. + * Use {@link Keys#ENTITY_DATA_SERIALIZERS} to create a {@link DeferredRegister}. + */ + public static final Supplier>> ENTITY_DATA_SERIALIZERS = DEFERRED_ENTITY_DATA_SERIALIZERS.makeRegistry(GameData::getDataSerializersRegistryBuilder); + static final DeferredRegister> DEFERRED_GLOBAL_LOOT_MODIFIER_SERIALIZERS = DeferredRegister.create(Keys.GLOBAL_LOOT_MODIFIER_SERIALIZERS, Keys.GLOBAL_LOOT_MODIFIER_SERIALIZERS.location().getNamespace()); + /** + * Calling {@link Supplier#get()} before {@link NewRegistryEvent} is fired will result in a null registry returned. + * Use {@link Keys#GLOBAL_LOOT_MODIFIER_SERIALIZERS} to create a {@link DeferredRegister}. + */ + public static final Supplier>> GLOBAL_LOOT_MODIFIER_SERIALIZERS = DEFERRED_GLOBAL_LOOT_MODIFIER_SERIALIZERS.makeRegistry(GameData::getGLMSerializersRegistryBuilder); static final DeferredRegister> DEFERRED_BIOME_MODIFIER_SERIALIZERS = DeferredRegister.create(Keys.BIOME_MODIFIER_SERIALIZERS, Keys.BIOME_MODIFIER_SERIALIZERS.location().getNamespace()); + /** + * Calling {@link Supplier#get()} before {@link NewRegistryEvent} is fired will result in a null registry returned. + * Use {@link Keys#BIOME_MODIFIER_SERIALIZERS} to create a {@link DeferredRegister}. + */ public static final Supplier>> BIOME_MODIFIER_SERIALIZERS = DEFERRED_BIOME_MODIFIER_SERIALIZERS.makeRegistry(() -> new RegistryBuilder>().disableSaving().disableSync()); static final DeferredRegister> DEFERRED_STRUCTURE_MODIFIER_SERIALIZERS = DeferredRegister.create(Keys.STRUCTURE_MODIFIER_SERIALIZERS, Keys.STRUCTURE_MODIFIER_SERIALIZERS.location().getNamespace()); + /** + * Calling {@link Supplier#get()} before {@link NewRegistryEvent} is fired will result in a null registry returned. + * Use {@link Keys#STRUCTURE_MODIFIER_SERIALIZERS} to create a {@link DeferredRegister}. + */ public static final Supplier>> STRUCTURE_MODIFIER_SERIALIZERS = DEFERRED_STRUCTURE_MODIFIER_SERIALIZERS.makeRegistry(() -> new RegistryBuilder>().disableSaving().disableSync()); static final DeferredRegister DEFERRED_FLUID_TYPES = DeferredRegister.create(Keys.FLUID_TYPES, Keys.FLUID_TYPES.location().getNamespace()); + /** + * Calling {@link Supplier#get()} before {@link NewRegistryEvent} is fired will result in a null registry returned. + * Use {@link Keys#FLUID_TYPES} to create a {@link DeferredRegister}. + */ public static final Supplier> FLUID_TYPES = DEFERRED_FLUID_TYPES.makeRegistry(GameData::getFluidTypeRegistryBuilder); // Custom forge datapack registries @@ -126,7 +146,7 @@ public class ForgeRegistries public static final ResourceKey>> ENTITY_TYPES = key("entity_type"); public static final ResourceKey> PAINTING_VARIANTS = key("painting_variant"); public static final ResourceKey>> PARTICLE_TYPES = key("particle_type"); - public static final ResourceKey>> CONTAINER_TYPES = key("menu"); + public static final ResourceKey>> MENU_TYPES = key("menu"); public static final ResourceKey>> BLOCK_ENTITY_TYPES = key("block_entity_type"); public static final ResourceKey>> RECIPE_TYPES = key("recipe_type"); public static final ResourceKey>> RECIPE_SERIALIZERS = key("recipe_serializer"); @@ -147,8 +167,8 @@ public class ForgeRegistries public static final ResourceKey> BIOMES = key("worldgen/biome"); // Forge - public static final ResourceKey>> DATA_SERIALIZERS = key("forge:data_serializers"); - public static final ResourceKey>> LOOT_MODIFIER_SERIALIZERS = key("forge:loot_modifier_serializers"); + public static final ResourceKey>> ENTITY_DATA_SERIALIZERS = key("forge:data_serializers"); + public static final ResourceKey>> GLOBAL_LOOT_MODIFIER_SERIALIZERS = key("forge:loot_modifier_serializers"); public static final ResourceKey>> BIOME_MODIFIER_SERIALIZERS = key("forge:biome_modifier_serializers"); public static final ResourceKey>> STRUCTURE_MODIFIER_SERIALIZERS = key("forge:structure_modifier_serializers"); public static final ResourceKey> FLUID_TYPES = key("forge:fluid_type"); diff --git a/src/main/java/net/minecraftforge/registries/GameData.java b/src/main/java/net/minecraftforge/registries/GameData.java index 021d3139a5..90007edf93 100644 --- a/src/main/java/net/minecraftforge/registries/GameData.java +++ b/src/main/java/net/minecraftforge/registries/GameData.java @@ -111,7 +111,7 @@ public class GameData makeRegistry(ENTITY_TYPES, "pig").legacyName("entities").vanillaHolder(EntityType::builtInRegistryHolder).create(); makeRegistry(BLOCK_ENTITY_TYPES).disableSaving().legacyName("blockentities").create(); makeRegistry(PARTICLE_TYPES).disableSaving().create(); - makeRegistry(CONTAINER_TYPES).disableSaving().create(); + makeRegistry(MENU_TYPES).disableSaving().create(); makeRegistry(PAINTING_VARIANTS, "kebab").create(); makeRegistry(RECIPE_TYPES).disableSaving().disableSync().create(); makeRegistry(RECIPE_SERIALIZERS).disableSaving().create(); @@ -140,12 +140,12 @@ public class GameData static RegistryBuilder> getDataSerializersRegistryBuilder() { - return makeRegistry(DATA_SERIALIZERS, 256 /*vanilla space*/, MAX_VARINT).disableSaving().disableOverrides(); + return makeRegistry(ENTITY_DATA_SERIALIZERS, 256 /*vanilla space*/, MAX_VARINT).disableSaving().disableOverrides(); } static RegistryBuilder> getGLMSerializersRegistryBuilder() { - return makeRegistry(LOOT_MODIFIER_SERIALIZERS).disableSaving().disableSync(); + return makeRegistry(GLOBAL_LOOT_MODIFIER_SERIALIZERS).disableSaving().disableSync(); } static RegistryBuilder getFluidTypeRegistryBuilder() diff --git a/src/main/java/net/minecraftforge/resource/DelegatingResourcePack.java b/src/main/java/net/minecraftforge/resource/DelegatingPackResources.java similarity index 96% rename from src/main/java/net/minecraftforge/resource/DelegatingResourcePack.java rename to src/main/java/net/minecraftforge/resource/DelegatingPackResources.java index 9778f29e98..e528a30915 100644 --- a/src/main/java/net/minecraftforge/resource/DelegatingResourcePack.java +++ b/src/main/java/net/minecraftforge/resource/DelegatingPackResources.java @@ -22,7 +22,7 @@ import net.minecraft.server.packs.metadata.MetadataSectionSerializer; import net.minecraft.server.packs.metadata.pack.PackMetadataSection; import net.minecraft.resources.ResourceLocation; -public class DelegatingResourcePack extends AbstractPackResources +public class DelegatingPackResources extends AbstractPackResources { private final List delegates; private Map> namespacesAssets; @@ -31,7 +31,7 @@ public class DelegatingResourcePack extends AbstractPackResources private final String name; private final PackMetadataSection packInfo; - public DelegatingResourcePack(String id, String name, PackMetadataSection packInfo, List packs) + public DelegatingPackResources(String id, String name, PackMetadataSection packInfo, List packs) { super(new File(id)); this.name = name; @@ -75,7 +75,7 @@ public class DelegatingResourcePack extends AbstractPackResources { return name; } - + @SuppressWarnings("unchecked") @Override public T getMetadataSection(MetadataSectionSerializer deserializer) throws IOException diff --git a/src/main/java/net/minecraftforge/resource/PathResourcePack.java b/src/main/java/net/minecraftforge/resource/PathPackResources.java similarity index 98% rename from src/main/java/net/minecraftforge/resource/PathResourcePack.java rename to src/main/java/net/minecraftforge/resource/PathPackResources.java index e89802de8b..59bc9d9d99 100644 --- a/src/main/java/net/minecraftforge/resource/PathResourcePack.java +++ b/src/main/java/net/minecraftforge/resource/PathPackResources.java @@ -33,7 +33,7 @@ import java.util.stream.Collectors; * such as to have alternative textures to use along with Programmer Art, or optional * alternative recipes for compatibility ot to replace vanilla recipes. */ -public class PathResourcePack extends AbstractPackResources +public class PathPackResources extends AbstractPackResources { private final Path source; private final String packName; @@ -47,7 +47,7 @@ public class PathResourcePack extends AbstractPackResources * This name should be unique within the pack finder, preferably the name of the file or folder containing the resources. * @param source the root path of the pack. This needs to point to the folder that contains "assets" and/or "data", not the asset folder itself! */ - public PathResourcePack(String packName, final Path source) + public PathPackResources(String packName, final Path source) { super(new File("dummy")); this.source = source; diff --git a/src/main/java/net/minecraftforge/resource/ResourcePackLoader.java b/src/main/java/net/minecraftforge/resource/ResourcePackLoader.java index 5eda9d9044..2133492c42 100644 --- a/src/main/java/net/minecraftforge/resource/ResourcePackLoader.java +++ b/src/main/java/net/minecraftforge/resource/ResourcePackLoader.java @@ -30,19 +30,19 @@ import net.minecraftforge.forgespi.locating.IModFile; import org.jetbrains.annotations.NotNull; public class ResourcePackLoader { - private static Map modResourcePacks; + private static Map modResourcePacks; - public static Optional getPackFor(String modId) { + public static Optional getPackFor(String modId) { return Optional.ofNullable(ModList.get().getModFileById(modId)). map(IModFileInfo::getFile).map(mf->modResourcePacks.get(mf)); } @Deprecated - public static void loadResourcePacks(PackRepository resourcePacks, BiFunction, BiConsumer, ? extends RepositorySource> packFinder) { + public static void loadResourcePacks(PackRepository resourcePacks, BiFunction, BiConsumer, ? extends RepositorySource> packFinder) { loadResourcePacks(resourcePacks, (map) -> packFinder.apply(map, (rp,p) -> {})); } - public static void loadResourcePacks(PackRepository resourcePacks, Function, ? extends RepositorySource> packFinder) { + public static void loadResourcePacks(PackRepository resourcePacks, Function, ? extends RepositorySource> packFinder) { modResourcePacks = ModList.get().getModFiles().stream() .filter(mf->mf.requiredLanguageLoaders().stream().noneMatch(ls->ls.languageName().equals("minecraft"))) .map(mf -> Pair.of(mf, createPackForMod(mf))) @@ -51,9 +51,9 @@ public class ResourcePackLoader { } @NotNull - public static PathResourcePack createPackForMod(IModFileInfo mf) + public static PathPackResources createPackForMod(IModFileInfo mf) { - return new PathResourcePack(mf.getFile().getFileName(), mf.getFile().getFilePath()){ + return new PathPackResources(mf.getFile().getFileName(), mf.getFile().getFilePath()){ final IModFile modFile = mf.getFile(); @NotNull @Override diff --git a/src/main/java/net/minecraftforge/server/ServerLifecycleHooks.java b/src/main/java/net/minecraftforge/server/ServerLifecycleHooks.java index e91a9c6033..0f279628c6 100644 --- a/src/main/java/net/minecraftforge/server/ServerLifecycleHooks.java +++ b/src/main/java/net/minecraftforge/server/ServerLifecycleHooks.java @@ -12,7 +12,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; -import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; @@ -40,7 +39,7 @@ import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.NetworkRegistry; import net.minecraftforge.forgespi.locating.IModFile; import net.minecraftforge.registries.ForgeRegistries.Keys; -import net.minecraftforge.resource.PathResourcePack; +import net.minecraftforge.resource.PathPackResources; import net.minecraftforge.server.permission.PermissionAPI; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -51,7 +50,6 @@ import net.minecraft.network.Connection; import net.minecraft.network.ConnectionProtocol; import net.minecraft.network.protocol.handshake.ClientIntentionPacket; import net.minecraft.network.protocol.login.ClientboundLoginDisconnectPacket; -import net.minecraft.resources.ResourceKey; import net.minecraft.server.packs.repository.Pack; import net.minecraft.server.MinecraftServer; import net.minecraftforge.api.distmarker.Dist; @@ -65,7 +63,6 @@ import net.minecraftforge.event.server.ServerStoppedEvent; import net.minecraftforge.event.server.ServerStoppingEvent; import net.minecraftforge.fml.loading.FileUtils; import net.minecraftforge.forgespi.language.IModInfo; -import net.minecraftforge.registries.DataPackRegistriesHooks; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.GameData; @@ -192,12 +189,12 @@ public class ServerLifecycleHooks } //INTERNAL MODDERS DO NOT USE - public static RepositorySource buildPackFinder(Map modResourcePacks) { + public static RepositorySource buildPackFinder(Map modResourcePacks) { return (packList, factory) -> serverPackFinder(modResourcePacks, packList, factory); } - private static void serverPackFinder(Map modResourcePacks, Consumer consumer, Pack.PackConstructor factory) { - for (Entry e : modResourcePacks.entrySet()) + private static void serverPackFinder(Map modResourcePacks, Consumer consumer, Pack.PackConstructor factory) { + for (Entry e : modResourcePacks.entrySet()) { IModInfo mod = e.getKey().getModInfos().get(0); if (Objects.equals(mod.getModId(), "minecraft")) continue; // skip the minecraft "mod" @@ -212,7 +209,7 @@ public class ServerLifecycleHooks consumer.accept(packInfo); } } - + private static void runModifiers(final MinecraftServer server) { final RegistryAccess registries = server.registryAccess(); @@ -226,7 +223,7 @@ public class ServerLifecycleHooks .holders() .map(Holder::value) .toList(); - + // Apply sorted biome modifiers to each biome. registries.registryOrThrow(Registry.BIOME_REGISTRY).holders().forEach(biomeHolder -> { diff --git a/src/main/java/net/minecraftforge/server/command/EntityCommand.java b/src/main/java/net/minecraftforge/server/command/EntityCommand.java index 9350da03a2..fc7f67ecfe 100644 --- a/src/main/java/net/minecraftforge/server/command/EntityCommand.java +++ b/src/main/java/net/minecraftforge/server/command/EntityCommand.java @@ -52,7 +52,7 @@ class EntityCommand return Commands.literal("list") .requires(cs->cs.hasPermission(2)) //permission .then(Commands.argument("filter", StringArgumentType.string()) - .suggests((ctx, builder) -> SharedSuggestionProvider.suggest(ForgeRegistries.ENTITIES.getKeys().stream().map(ResourceLocation::toString).map(StringArgumentType::escapeIfRequired), builder)) + .suggests((ctx, builder) -> SharedSuggestionProvider.suggest(ForgeRegistries.ENTITY_TYPES.getKeys().stream().map(ResourceLocation::toString).map(StringArgumentType::escapeIfRequired), builder)) .then(Commands.argument("dim", DimensionArgument.dimension()) .executes(ctx -> execute(ctx.getSource(), StringArgumentType.getString(ctx, "filter"), DimensionArgument.getDimension(ctx, "dim").dimension())) ) @@ -65,7 +65,7 @@ class EntityCommand { final String cleanFilter = filter.replace("?", ".?").replace("*", ".*?"); - Set names = ForgeRegistries.ENTITIES.getKeys().stream().filter(n -> n.toString().matches(cleanFilter)).collect(Collectors.toSet()); + Set names = ForgeRegistries.ENTITY_TYPES.getKeys().stream().filter(n -> n.toString().matches(cleanFilter)).collect(Collectors.toSet()); if (names.isEmpty()) throw INVALID_FILTER.create(); @@ -76,7 +76,7 @@ class EntityCommand Map>> list = Maps.newHashMap(); level.getEntities().getAll().forEach(e -> { - MutablePair> info = list.computeIfAbsent(ForgeRegistries.ENTITIES.getKey(e.getType()), k -> MutablePair.of(0, Maps.newHashMap())); + MutablePair> info = list.computeIfAbsent(ForgeRegistries.ENTITY_TYPES.getKey(e.getType()), k -> MutablePair.of(0, Maps.newHashMap())); ChunkPos chunk = new ChunkPos(e.blockPosition()); info.left++; info.right.put(chunk, info.right.getOrDefault(chunk, 0) + 1); diff --git a/src/main/java/net/minecraftforge/server/command/TrackCommand.java b/src/main/java/net/minecraftforge/server/command/TrackCommand.java index 08ae07956f..15c02b6380 100644 --- a/src/main/java/net/minecraftforge/server/command/TrackCommand.java +++ b/src/main/java/net/minecraftforge/server/command/TrackCommand.java @@ -143,7 +143,7 @@ class TrackCommand double averageTimings = data.getAverageTimings(); String tickTime = (averageTimings > 1000 ? TIME_FORMAT.format(averageTimings / 1000) : TIME_FORMAT.format(averageTimings)) + (averageTimings < 1000 ? "\u03bcs" : "ms"); - return Component.translatable("commands.forge.tracking.timing_entry", ForgeRegistries.ENTITIES.getKey(entity.getType()), entity.level.dimension().location().toString(), pos.getX(), pos.getY(), pos.getZ(), tickTime); + return Component.translatable("commands.forge.tracking.timing_entry", ForgeRegistries.ENTITY_TYPES.getKey(entity.getType()), entity.level.dimension().location().toString(), pos.getX(), pos.getY(), pos.getZ(), tickTime); }) ); } @@ -163,7 +163,7 @@ class TrackCommand double averageTimings = data.getAverageTimings(); String tickTime = (averageTimings > 1000 ? TIME_FORMAT.format(averageTimings / 1000) : TIME_FORMAT.format(averageTimings)) + (averageTimings < 1000 ? "\u03bcs" : "ms"); - return Component.translatable("commands.forge.tracking.timing_entry", ForgeRegistries.BLOCK_ENTITIES.getKey(be.getType()), be.getLevel().dimension().location().toString(), pos.getX(), pos.getY(), pos.getZ(), tickTime); + return Component.translatable("commands.forge.tracking.timing_entry", ForgeRegistries.BLOCK_ENTITY_TYPES.getKey(be.getType()), be.getLevel().dimension().location().toString(), pos.getX(), pos.getY(), pos.getZ(), tickTime); }) ); } diff --git a/src/test/java/net/minecraftforge/debug/AddPackFinderEventTest.java b/src/test/java/net/minecraftforge/debug/AddPackFinderEventTest.java index 991b9be50d..512b4c3316 100644 --- a/src/test/java/net/minecraftforge/debug/AddPackFinderEventTest.java +++ b/src/test/java/net/minecraftforge/debug/AddPackFinderEventTest.java @@ -14,7 +14,7 @@ import net.minecraftforge.event.AddPackFindersEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.resource.PathResourcePack; +import net.minecraftforge.resource.PathPackResources; import java.io.IOException; @@ -32,7 +32,7 @@ public class AddPackFinderEventTest if (event.getPackType() == PackType.CLIENT_RESOURCES) { var resourcePath = ModList.get().getModFileById(MODID).getFile().findResource("test_nested_resource_pack"); - var pack = new PathResourcePack(ModList.get().getModFileById(MODID).getFile().getFileName() + ":" + resourcePath, resourcePath); + var pack = new PathPackResources(ModList.get().getModFileById(MODID).getFile().getFileName() + ":" + resourcePath, resourcePath); var metadataSection = pack.getMetadataSection(PackMetadataSection.SERIALIZER); if (metadataSection != null) { diff --git a/src/test/java/net/minecraftforge/debug/DataGeneratorTest.java b/src/test/java/net/minecraftforge/debug/DataGeneratorTest.java index 264f3504e1..1c849e70db 100644 --- a/src/test/java/net/minecraftforge/debug/DataGeneratorTest.java +++ b/src/test/java/net/minecraftforge/debug/DataGeneratorTest.java @@ -39,6 +39,7 @@ import net.minecraft.tags.ItemTags; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.block.ButtonBlock; +import net.minecraft.world.level.block.DoorBlock; import net.minecraft.world.level.block.PressurePlateBlock; import net.minecraft.world.level.block.StandingSignBlock; import net.minecraft.world.level.block.WallSignBlock; @@ -46,7 +47,7 @@ import net.minecraftforge.common.crafting.CompoundIngredient; import net.minecraftforge.common.crafting.PartialNBTIngredient; import net.minecraftforge.common.crafting.DifferenceIngredient; import net.minecraftforge.common.crafting.IntersectionIngredient; -import net.minecraftforge.common.crafting.NBTIngredient; +import net.minecraftforge.common.crafting.StrictNBTIngredient; import net.minecraftforge.common.data.SoundDefinition; import net.minecraftforge.common.data.SoundDefinitionsProvider; import net.minecraftforge.registries.ForgeRegistries; @@ -54,7 +55,6 @@ import org.apache.commons.lang3.tuple.Triple; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.Nullable; -import org.jline.utils.InputStreamReader; import com.google.common.collect.HashMultimap; import com.google.common.collect.ImmutableSet; @@ -76,7 +76,6 @@ import net.minecraft.client.renderer.block.model.Variant; import net.minecraft.client.renderer.block.model.BlockModel.GuiLight; import net.minecraft.data.tags.BlockTagsProvider; import net.minecraft.data.DataGenerator; -import net.minecraft.data.HashCache; import net.minecraft.data.recipes.FinishedRecipe; import net.minecraft.data.recipes.RecipeProvider; import net.minecraft.data.recipes.ShapedRecipeBuilder; @@ -105,13 +104,11 @@ import net.minecraftforge.common.data.LanguageProvider; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraft.world.level.block.BarrelBlock; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.DoorBlock; -import net.minecraft.world.level.block.FenceBlock; import net.minecraft.world.level.block.FenceGateBlock; import net.minecraft.world.level.block.FurnaceBlock; import net.minecraft.world.level.block.IronBarsBlock; @@ -119,7 +116,6 @@ import net.minecraft.world.level.block.RotatedPillarBlock; import net.minecraft.world.level.block.SlabBlock; import net.minecraft.world.level.block.StairBlock; import net.minecraft.world.level.block.TrapDoorBlock; -import net.minecraft.world.level.block.WallBlock; @SuppressWarnings("deprecation") @Mod(MODID) @@ -262,7 +258,7 @@ public class DataGeneratorTest // ingredient tests // strict NBT match - should match an unnamed iron pickaxe that lost 3 durability - Ingredient nbtIngredient = NBTIngredient.of(Util.make(() -> + Ingredient nbtIngredient = StrictNBTIngredient.of(Util.make(() -> { ItemStack stack = new ItemStack(Items.IRON_PICKAXE); stack.setDamageValue(3); diff --git a/src/test/java/net/minecraftforge/debug/DeferredRegistryTest.java b/src/test/java/net/minecraftforge/debug/DeferredRegistryTest.java index 7845084d95..8a59d3b586 100644 --- a/src/test/java/net/minecraftforge/debug/DeferredRegistryTest.java +++ b/src/test/java/net/minecraftforge/debug/DeferredRegistryTest.java @@ -33,7 +33,7 @@ import net.minecraftforge.client.model.generators.ModelFile; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.RegistryObject; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; diff --git a/src/test/java/net/minecraftforge/debug/ManyMobEffectsTest.java b/src/test/java/net/minecraftforge/debug/ManyMobEffectsTest.java index 59bb33eda0..42988a7979 100644 --- a/src/test/java/net/minecraftforge/debug/ManyMobEffectsTest.java +++ b/src/test/java/net/minecraftforge/debug/ManyMobEffectsTest.java @@ -5,7 +5,6 @@ package net.minecraftforge.debug; -import net.minecraft.Util; import net.minecraft.core.NonNullList; import net.minecraft.network.chat.Component; import net.minecraft.world.effect.MobEffect; @@ -116,7 +115,7 @@ public class ManyMobEffectsTest { if (!event.getTarget().getLevel().isClientSide() && event.getTarget() instanceof MushroomCow cow) { - var heldItem = event.getPlayer().getItemInHand(event.getHand()); + var heldItem = event.getEntity().getItemInHand(event.getHand()); if (heldItem.is(Items.POTION)) { var effects = PotionUtils.getMobEffects(heldItem); @@ -131,7 +130,7 @@ public class ManyMobEffectsTest var effect = ((MobEffect) ObfuscationReflectionHelper.getPrivateValue(MushroomCow.class, cow, "f_289" + "09_")); if (effect != null) { - event.getPlayer().sendSystemMessage(Component.literal(String.valueOf(ForgeRegistries.MOB_EFFECTS.getKey(effect)))); + event.getEntity().sendSystemMessage(Component.literal(String.valueOf(ForgeRegistries.MOB_EFFECTS.getKey(effect)))); } } } diff --git a/src/test/java/net/minecraftforge/debug/PotionEventTest.java b/src/test/java/net/minecraftforge/debug/PotionEventTest.java index 05dc24fd09..e960d2842e 100644 --- a/src/test/java/net/minecraftforge/debug/PotionEventTest.java +++ b/src/test/java/net/minecraftforge/debug/PotionEventTest.java @@ -12,7 +12,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Ingredient; import net.minecraftforge.common.brewing.BrewingRecipeRegistry; -import net.minecraftforge.event.entity.living.PotionEvent; +import net.minecraftforge.event.entity.living.MobEffectEvent; import net.minecraftforge.eventbus.api.Event.Result; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; @@ -29,40 +29,40 @@ public class PotionEventTest { FMLJavaModLoadingContext.get().getModEventBus().addListener(this::onSetup); } - + private void onSetup(FMLCommonSetupEvent event) { BrewingRecipeRegistry.addRecipe(Ingredient.of(Items.ICE), Ingredient.of(Items.LAVA_BUCKET), new ItemStack(Items.OBSIDIAN)); } - + @SubscribeEvent - public static void onPotionAdded(PotionEvent.PotionAddedEvent event) + public static void onPotionAdded(MobEffectEvent.Added event) { if (!event.getEntity().getCommandSenderWorld().isClientSide) - LOGGER.info("{} has a new PotionEffect {} from {}, the old one was {}", event.getEntityLiving(), event.getPotionEffect(), event.getPotionSource(), event.getOldPotionEffect()); + LOGGER.info("{} has a new PotionEffect {} from {}, the old one was {}", event.getEntity(), event.getEffectInstance(), event.getEffectSource(), event.getOldEffectInstance()); } @SubscribeEvent - public static void isPotionApplicable(PotionEvent.PotionApplicableEvent event) + public static void isPotionApplicable(MobEffectEvent.Applicable event) { if (!event.getEntity().getCommandSenderWorld().isClientSide) { event.setResult(Result.ALLOW); - LOGGER.info("Allowed Potion {} for Entity {}", event.getPotionEffect(), event.getEntityLiving()); + LOGGER.info("Allowed Potion {} for Entity {}", event.getEffectInstance(), event.getEntity()); } } @SubscribeEvent - public static void onPotionRemove(PotionEvent.PotionRemoveEvent event) + public static void onPotionRemove(MobEffectEvent.Remove event) { if (!event.getEntity().getCommandSenderWorld().isClientSide) - LOGGER.info("Effect {} got Removed from {}", event.getPotionEffect(), event.getEntityLiving()); + LOGGER.info("Effect {} got Removed from {}", event.getEffectInstance(), event.getEntity()); } @SubscribeEvent - public static void onPotionExpiry(PotionEvent.PotionExpiryEvent event) + public static void onPotionExpiry(MobEffectEvent.Expired event) { if (!event.getEntity().getCommandSenderWorld().isClientSide) - LOGGER.info("Effect {} expired from {}", event.getPotionEffect(), event.getEntityLiving()); + LOGGER.info("Effect {} expired from {}", event.getEffectInstance(), event.getEntity()); } } diff --git a/src/test/java/net/minecraftforge/debug/RemoveTagDatagenTest.java b/src/test/java/net/minecraftforge/debug/RemoveTagDatagenTest.java index cdfb069525..02a58b0eea 100644 --- a/src/test/java/net/minecraftforge/debug/RemoveTagDatagenTest.java +++ b/src/test/java/net/minecraftforge/debug/RemoveTagDatagenTest.java @@ -16,7 +16,7 @@ import net.minecraftforge.common.data.ExistingFileHelper; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.registries.ForgeRegistries; @Mod(RemoveTagDatagenTest.MODID) @@ -24,18 +24,18 @@ public class RemoveTagDatagenTest { public static final String MODID = "remove_tag_datagen_test"; public static final TagKey TEST_TAG = BlockTags.create(new ResourceLocation("test_tag")); - + public RemoveTagDatagenTest() { IEventBus modBus = FMLJavaModLoadingContext.get().getModEventBus(); modBus.addListener(this::onGatherData); } - + private void onGatherData(GatherDataEvent event) { DataGenerator generator = event.getGenerator(); ExistingFileHelper helper = event.getExistingFileHelper(); - + generator.addProvider(true, new BlockTagsProvider(generator, MODID, helper) { @SuppressWarnings("unchecked") diff --git a/src/test/java/net/minecraftforge/debug/block/BasePlaceEventTest.java b/src/test/java/net/minecraftforge/debug/block/BasePlaceEventTest.java index 0ffa6c8470..36ff418f73 100644 --- a/src/test/java/net/minecraftforge/debug/block/BasePlaceEventTest.java +++ b/src/test/java/net/minecraftforge/debug/block/BasePlaceEventTest.java @@ -6,7 +6,7 @@ package net.minecraftforge.debug.block; import net.minecraft.world.entity.item.FallingBlockEntity; -import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.event.level.BlockEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; diff --git a/src/test/java/net/minecraftforge/debug/block/BlockEntityOnLoadTest.java b/src/test/java/net/minecraftforge/debug/block/BlockEntityOnLoadTest.java index f2951a6999..01d83bf061 100644 --- a/src/test/java/net/minecraftforge/debug/block/BlockEntityOnLoadTest.java +++ b/src/test/java/net/minecraftforge/debug/block/BlockEntityOnLoadTest.java @@ -38,7 +38,7 @@ public class BlockEntityOnLoadTest private static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, "be_onload_test"); private static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, "be_onload_test"); - private static final DeferredRegister> BE_TYPES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, "be_onload_test"); + private static final DeferredRegister> BE_TYPES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, "be_onload_test"); private static final RegistryObject TEST_BLOCK = BLOCKS.register("be_onload_testblock", () -> new TestBlock(Properties.of(Material.DECORATION, MaterialColor.SAND))); private static final RegistryObject TEST_BLOCK_ITEM = ITEMS.register("be_onload_testblock", () -> new BlockItem(TEST_BLOCK.get(), new Item.Properties().tab(CreativeModeTab.TAB_DECORATIONS))); diff --git a/src/test/java/net/minecraftforge/debug/block/CustomHeadTest.java b/src/test/java/net/minecraftforge/debug/block/CustomHeadTest.java index ccc567daa1..96f0ab8b90 100644 --- a/src/test/java/net/minecraftforge/debug/block/CustomHeadTest.java +++ b/src/test/java/net/minecraftforge/debug/block/CustomHeadTest.java @@ -54,7 +54,7 @@ public class CustomHeadTest static final String MODID = "custom_head_test"; private static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MODID); private static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); - private static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, MODID); + private static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, MODID); private static final RegistryObject BLAZE_HEAD = BLOCKS.register("blaze_head", () -> new CustomSkullBlock(SkullType.BLAZE, BlockBehaviour.Properties.of(Material.DECORATION).strength(1.0F))); private static final RegistryObject BLAZE_HEAD_WALL = BLOCKS.register("blaze_wall_head", () -> new CustomWallSkullBlock(SkullType.BLAZE, BlockBehaviour.Properties.of(Material.DECORATION).strength(1.0F).lootFrom(BLAZE_HEAD))); private static final RegistryObject BLAZE_HEAD_ITEM = ITEMS.register("blaze_head", () -> new StandingAndWallBlockItem(BLAZE_HEAD.get(), BLAZE_HEAD_WALL.get(), new Item.Properties().tab(CreativeModeTab.TAB_DECORATIONS).rarity(Rarity.UNCOMMON))); diff --git a/src/test/java/net/minecraftforge/debug/block/CustomSignsTest.java b/src/test/java/net/minecraftforge/debug/block/CustomSignsTest.java index d4a8c9da91..dc27e5589d 100644 --- a/src/test/java/net/minecraftforge/debug/block/CustomSignsTest.java +++ b/src/test/java/net/minecraftforge/debug/block/CustomSignsTest.java @@ -49,7 +49,7 @@ public class CustomSignsTest private static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); public static final RegistryObject TEST_SIGN = ITEMS.register("test_sign", () -> new SignItem((new Item.Properties()).stacksTo(16).tab(CreativeModeTab.TAB_DECORATIONS), TEST_STANDING_SIGN.get(), TEST_WALL_SIGN.get())); - private static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, MODID); + private static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, MODID); public static final RegistryObject> CUSTOM_SIGN = BLOCK_ENTITIES.register("custom_sign", () -> BlockEntityType.Builder.of(CustomSignBlockEntity::new, TEST_WALL_SIGN.get(), TEST_STANDING_SIGN.get()).build(null)); public CustomSignsTest() diff --git a/src/test/java/net/minecraftforge/debug/block/FarmlandTrampleEventTest.java b/src/test/java/net/minecraftforge/debug/block/FarmlandTrampleEventTest.java index 6cd74d7c87..09bcdb6ef2 100644 --- a/src/test/java/net/minecraftforge/debug/block/FarmlandTrampleEventTest.java +++ b/src/test/java/net/minecraftforge/debug/block/FarmlandTrampleEventTest.java @@ -5,7 +5,7 @@ package net.minecraftforge.debug.block; -import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.event.level.BlockEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; diff --git a/src/test/java/net/minecraftforge/debug/block/FullPotsAccessorDemo.java b/src/test/java/net/minecraftforge/debug/block/FullPotsAccessorDemo.java index 95c7c38100..e62415d362 100644 --- a/src/test/java/net/minecraftforge/debug/block/FullPotsAccessorDemo.java +++ b/src/test/java/net/minecraftforge/debug/block/FullPotsAccessorDemo.java @@ -67,7 +67,7 @@ public class FullPotsAccessorDemo private static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MOD_ID); private static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MOD_ID); - private static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, MOD_ID); + private static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, MOD_ID); private static final RegistryObject DIORITE_POT = BLOCKS.register("diorite_pot", DioriteFlowerPotBlock::new); private static final RegistryObject DIORITE_POT_ITEM = ITEMS.register( diff --git a/src/test/java/net/minecraftforge/debug/block/NeighborNotifyEventTest.java b/src/test/java/net/minecraftforge/debug/block/NeighborNotifyEventTest.java index d4c9a446fd..a3dce0a222 100644 --- a/src/test/java/net/minecraftforge/debug/block/NeighborNotifyEventTest.java +++ b/src/test/java/net/minecraftforge/debug/block/NeighborNotifyEventTest.java @@ -6,7 +6,7 @@ package net.minecraftforge.debug.block; import net.minecraft.world.level.block.Blocks; -import net.minecraftforge.event.world.BlockEvent.NeighborNotifyEvent; +import net.minecraftforge.event.level.BlockEvent.NeighborNotifyEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.eventbus.api.SubscribeEvent; diff --git a/src/test/java/net/minecraftforge/debug/block/PistonEventTest.java b/src/test/java/net/minecraftforge/debug/block/PistonEventTest.java index 72af1c148d..e3857b0c0a 100644 --- a/src/test/java/net/minecraftforge/debug/block/PistonEventTest.java +++ b/src/test/java/net/minecraftforge/debug/block/PistonEventTest.java @@ -28,14 +28,14 @@ import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.model.generators.BlockStateProvider; import net.minecraftforge.client.model.generators.ModelFile; import net.minecraftforge.common.data.ExistingFileHelper; -import net.minecraftforge.event.world.PistonEvent; -import net.minecraftforge.event.world.PistonEvent.PistonMoveType; +import net.minecraftforge.event.level.PistonEvent; +import net.minecraftforge.event.level.PistonEvent.PistonMoveType; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.registries.RegistryObject; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; @@ -73,7 +73,7 @@ public class PistonEventTest { if (event.getPistonMoveType() == PistonMoveType.EXTEND) { - Level world = (Level) event.getWorld(); + Level world = (Level) event.getLevel(); PistonStructureResolver pistonHelper = event.getStructureHelper(); Player player = DistExecutor.safeCallWhenOn(Dist.CLIENT, () -> () -> Minecraft.getInstance().player); if (world.isClientSide && player != null) @@ -93,7 +93,7 @@ public class PistonEventTest List posList = pistonHelper.getToPush(); for (BlockPos newPos : posList) { - BlockState state = event.getWorld().getBlockState(newPos); + BlockState state = event.getLevel().getBlockState(newPos); if (state.getBlock() == Blocks.BLACK_WOOL) { Block.dropResources(state, world, newPos); @@ -111,20 +111,20 @@ public class PistonEventTest } // Block pushing cobblestone (directly, indirectly works) - event.setCanceled(event.getWorld().getBlockState(event.getFaceOffsetPos()).getBlock() == Blocks.COBBLESTONE); + event.setCanceled(event.getLevel().getBlockState(event.getFaceOffsetPos()).getBlock() == Blocks.COBBLESTONE); } else { - boolean isSticky = event.getWorld().getBlockState(event.getPos()).getBlock() == Blocks.STICKY_PISTON; + boolean isSticky = event.getLevel().getBlockState(event.getPos()).getBlock() == Blocks.STICKY_PISTON; Player player = DistExecutor.safeCallWhenOn(Dist.CLIENT, () -> () -> Minecraft.getInstance().player); - if (event.getWorld().isClientSide() && player != null) + if (event.getLevel().isClientSide() && player != null) { if (isSticky) { BlockPos targetPos = event.getFaceOffsetPos().relative(event.getDirection()); - boolean canPush = PistonBaseBlock.isPushable(event.getWorld().getBlockState(targetPos), (Level) event.getWorld(), event.getFaceOffsetPos(), event.getDirection().getOpposite(), false, event.getDirection()); - boolean isAir = event.getWorld().isEmptyBlock(targetPos); + boolean canPush = PistonBaseBlock.isPushable(event.getLevel().getBlockState(targetPos), (Level) event.getLevel(), event.getFaceOffsetPos(), event.getDirection().getOpposite(), false, event.getDirection()); + boolean isAir = event.getLevel().isEmptyBlock(targetPos); player.sendSystemMessage(Component.literal(String.format(Locale.ENGLISH, "Piston will retract moving %d blocks", !isAir && canPush ? 1 : 0))); } else @@ -133,7 +133,7 @@ public class PistonEventTest } } // Offset twice to see if retraction will pull cobblestone - event.setCanceled(event.getWorld().getBlockState(event.getFaceOffsetPos().relative(event.getDirection())).getBlock() == Blocks.COBBLESTONE && isSticky); + event.setCanceled(event.getLevel().getBlockState(event.getFaceOffsetPos().relative(event.getDirection())).getBlock() == Blocks.COBBLESTONE && isSticky); } } diff --git a/src/test/java/net/minecraftforge/debug/block/PlaceEventTest.java b/src/test/java/net/minecraftforge/debug/block/PlaceEventTest.java index ce3fbfb8ff..3246c52314 100644 --- a/src/test/java/net/minecraftforge/debug/block/PlaceEventTest.java +++ b/src/test/java/net/minecraftforge/debug/block/PlaceEventTest.java @@ -6,7 +6,7 @@ package net.minecraftforge.debug.block; import net.minecraft.world.level.block.Blocks; -import net.minecraftforge.event.world.BlockEvent.EntityPlaceEvent; +import net.minecraftforge.event.level.BlockEvent.EntityPlaceEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; diff --git a/src/test/java/net/minecraftforge/debug/block/ScaffoldingTest.java b/src/test/java/net/minecraftforge/debug/block/ScaffoldingTest.java index 2ad582b60c..e44c3d2822 100644 --- a/src/test/java/net/minecraftforge/debug/block/ScaffoldingTest.java +++ b/src/test/java/net/minecraftforge/debug/block/ScaffoldingTest.java @@ -25,7 +25,7 @@ import net.minecraftforge.common.data.ExistingFileHelper; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.RegistryObject; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; diff --git a/src/test/java/net/minecraftforge/debug/block/ToolInteractTest.java b/src/test/java/net/minecraftforge/debug/block/ToolInteractTest.java index 86e8a52675..09d7611f9e 100644 --- a/src/test/java/net/minecraftforge/debug/block/ToolInteractTest.java +++ b/src/test/java/net/minecraftforge/debug/block/ToolInteractTest.java @@ -9,7 +9,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.world.BlockEvent.BlockToolModificationEvent; +import net.minecraftforge.event.level.BlockEvent.BlockToolModificationEvent; import net.minecraftforge.fml.common.Mod; @Mod("tool_interact_test") diff --git a/src/test/java/net/minecraftforge/debug/client/model/CustomTransformTypeTest.java b/src/test/java/net/minecraftforge/debug/client/model/CustomTransformTypeTest.java index 527eaf3705..5a7a8426fc 100644 --- a/src/test/java/net/minecraftforge/debug/client/model/CustomTransformTypeTest.java +++ b/src/test/java/net/minecraftforge/debug/client/model/CustomTransformTypeTest.java @@ -43,7 +43,7 @@ import net.minecraftforge.common.data.ExistingFileHelper; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; @@ -110,7 +110,7 @@ public class CustomTransformTypeTest public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MODID); - public static final DeferredRegister> BLOCK_ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, MODID); + public static final DeferredRegister> BLOCK_ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, MODID); public static final RegistryObject ITEM_HANGER_BLOCK = BLOCKS.register("item_hanger", () -> new ItemHangerBlock(BlockBehaviour.Properties.of(Material.WOOL).noCollission().noOcclusion().noLootTable())); diff --git a/src/test/java/net/minecraftforge/debug/client/model/MegaModelTest.java b/src/test/java/net/minecraftforge/debug/client/model/MegaModelTest.java index 2f5f35e430..a73eceeb23 100644 --- a/src/test/java/net/minecraftforge/debug/client/model/MegaModelTest.java +++ b/src/test/java/net/minecraftforge/debug/client/model/MegaModelTest.java @@ -71,7 +71,7 @@ public class MegaModelTest public static final String MOD_ID = "mega_model_test"; private static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MOD_ID); private static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MOD_ID); - private static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, MOD_ID); + private static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, MOD_ID); private static final String REG_NAME = "test_block"; public static final RegistryObject TEST_BLOCK = BLOCKS.register(REG_NAME, TestBlock::new); diff --git a/src/test/java/net/minecraftforge/debug/client/model/NewModelLoaderTest.java b/src/test/java/net/minecraftforge/debug/client/model/NewModelLoaderTest.java index 94e78b8762..dfec3b5c81 100644 --- a/src/test/java/net/minecraftforge/debug/client/model/NewModelLoaderTest.java +++ b/src/test/java/net/minecraftforge/debug/client/model/NewModelLoaderTest.java @@ -41,7 +41,7 @@ import net.minecraftforge.common.data.ExistingFileHelper; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.RegistryObject; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; diff --git a/src/test/java/net/minecraftforge/debug/entity/GravityAttributeTest.java b/src/test/java/net/minecraftforge/debug/entity/GravityAttributeTest.java index 3c9a0b5f28..e4ff4e7f2e 100644 --- a/src/test/java/net/minecraftforge/debug/entity/GravityAttributeTest.java +++ b/src/test/java/net/minecraftforge/debug/entity/GravityAttributeTest.java @@ -63,14 +63,14 @@ public class GravityAttributeTest } @SubscribeEvent - public void worldTick(TickEvent.WorldTickEvent event) + public void worldTick(TickEvent.LevelTickEvent event) { - if (!event.world.isClientSide) + if (!event.level.isClientSide) { if (ticks++ > 60) { ticks = 0; - Level w = event.world; + Level w = event.level; List list; if(w.isClientSide) { diff --git a/src/test/java/net/minecraftforge/debug/entity/PartEntityTest.java b/src/test/java/net/minecraftforge/debug/entity/PartEntityTest.java index c3cf8a28b1..48f8e227d3 100644 --- a/src/test/java/net/minecraftforge/debug/entity/PartEntityTest.java +++ b/src/test/java/net/minecraftforge/debug/entity/PartEntityTest.java @@ -35,7 +35,7 @@ public class PartEntityTest static final String MOD_ID = "part_entity_test"; static final boolean ENABLED = true; - private static final DeferredRegister> ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITIES, MOD_ID); + private static final DeferredRegister> ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, MOD_ID); private static final RegistryObject> TEST_ENTITY = ENTITIES.register("test_entity", () -> EntityType.Builder.of(TestEntity::new, MobCategory.CREATURE).sized(16.0F, 8.0F).clientTrackingRange(10).build("test_entity")); public PartEntityTest() diff --git a/src/test/java/net/minecraftforge/debug/entity/living/LivingConversionEventTest.java b/src/test/java/net/minecraftforge/debug/entity/living/LivingConversionEventTest.java index 383b5c4e5c..55e6c9acf5 100644 --- a/src/test/java/net/minecraftforge/debug/entity/living/LivingConversionEventTest.java +++ b/src/test/java/net/minecraftforge/debug/entity/living/LivingConversionEventTest.java @@ -24,7 +24,7 @@ public class LivingConversionEventTest public void canLivingConversion(LivingConversionEvent.Pre event) { - if (event.getEntityLiving() instanceof Piglin) + if (event.getEntity() instanceof Piglin) { event.setCanceled(true); event.setConversionTimer(0); @@ -33,7 +33,7 @@ public class LivingConversionEventTest public void onLivingConversion(LivingConversionEvent.Post event) { - if (event.getEntityLiving() instanceof Villager) - event.getEntityLiving().addEffect(new MobEffectInstance(MobEffects.LUCK, 20)); + if (event.getEntity() instanceof Villager) + event.getEntity().addEffect(new MobEffectInstance(MobEffects.LUCK, 20)); } } diff --git a/src/test/java/net/minecraftforge/debug/entity/living/LivingGetProjectileEventTest.java b/src/test/java/net/minecraftforge/debug/entity/living/LivingGetProjectileEventTest.java index 6fc457bf9e..ef0f435ac7 100644 --- a/src/test/java/net/minecraftforge/debug/entity/living/LivingGetProjectileEventTest.java +++ b/src/test/java/net/minecraftforge/debug/entity/living/LivingGetProjectileEventTest.java @@ -36,7 +36,7 @@ public class LivingGetProjectileEventTest // for this test, we're checking if the player has a spectral arrow itemstack in their offhand and if they're firing a normal arrow. // if they do, we're going to use that itemstack. if not, we will create a spectral arrow itemstack // this demonstrates the usage of specific itemstacks with this event. you can use specific itemstacks from the player's inventory in this similar style - if (event.getEntityLiving() instanceof Player player && event.getProjectileItemStack().getItem() == Items.ARROW) + if (event.getEntity() instanceof Player player && event.getProjectileItemStack().getItem() == Items.ARROW) { ItemStack offhandItem = player.getOffhandItem(); event.setProjectileItemStack(offhandItem.getItem() == Items.SPECTRAL_ARROW ? offhandItem : new ItemStack(Items.SPECTRAL_ARROW)); diff --git a/src/test/java/net/minecraftforge/debug/entity/player/PermissionsChangedEventTest.java b/src/test/java/net/minecraftforge/debug/entity/player/PermissionsChangedEventTest.java index 567f739ed9..50b8350e70 100644 --- a/src/test/java/net/minecraftforge/debug/entity/player/PermissionsChangedEventTest.java +++ b/src/test/java/net/minecraftforge/debug/entity/player/PermissionsChangedEventTest.java @@ -21,7 +21,7 @@ public class PermissionsChangedEventTest public static void onPermissionChanged(PermissionsChangedEvent event) { LOGGER.info("{} permission level changed to {} from {}", - event.getPlayer().getName().getString(), + event.getEntity().getName().getString(), event.getNewLevel(), event.getOldLevel()); } diff --git a/src/test/java/net/minecraftforge/debug/entity/player/PlayerGameModeEventTest.java b/src/test/java/net/minecraftforge/debug/entity/player/PlayerGameModeEventTest.java index bff611cc48..31009e40b2 100644 --- a/src/test/java/net/minecraftforge/debug/entity/player/PlayerGameModeEventTest.java +++ b/src/test/java/net/minecraftforge/debug/entity/player/PlayerGameModeEventTest.java @@ -26,7 +26,7 @@ public class PlayerGameModeEventTest public static void onPlayerChangeGameModeEvent(PlayerEvent.PlayerChangeGameModeEvent event) { if (!ENABLE) return; - LOGGER.info("{} changed game mode. Current GameType: {}. New Game Type: {}", event.getPlayer(), event.getCurrentGameMode(), event.getNewGameMode()); + LOGGER.info("{} changed game mode. Current GameType: {}. New Game Type: {}", event.getEntity(), event.getCurrentGameMode(), event.getNewGameMode()); // prevent changing to SURVIVAL if (event.getNewGameMode() == GameType.SURVIVAL) { diff --git a/src/test/java/net/minecraftforge/debug/entity/player/PlayerXpEventTest.java b/src/test/java/net/minecraftforge/debug/entity/player/PlayerXpEventTest.java index 88faa6c190..73773a96c0 100644 --- a/src/test/java/net/minecraftforge/debug/entity/player/PlayerXpEventTest.java +++ b/src/test/java/net/minecraftforge/debug/entity/player/PlayerXpEventTest.java @@ -31,21 +31,21 @@ public class PlayerXpEventTest public static void onPlayerPickupXp(PlayerXpEvent.PickupXp event) { if (!ENABLE) return; - logger.info("{} picked up an experience orb worth {}", event.getPlayer().getName().getString(), event.getOrb().getValue()); + logger.info("{} picked up an experience orb worth {}", event.getEntity().getName().getString(), event.getOrb().getValue()); } @SubscribeEvent public static void onPlayerXpChange(PlayerXpEvent.XpChange event) { if (!ENABLE) return; - logger.info("{} has been given {} experience", event.getPlayer().getName().getString(), event.getAmount()); + logger.info("{} has been given {} experience", event.getEntity().getName().getString(), event.getAmount()); } @SubscribeEvent public static void onPlayerLevelChange(PlayerXpEvent.LevelChange event) { if (!ENABLE) return; - logger.info("{} has changed {} levels", event.getPlayer().getName().getString(), event.getLevels()); + logger.info("{} has changed {} levels", event.getEntity().getName().getString(), event.getLevels()); } } diff --git a/src/test/java/net/minecraftforge/debug/fluid/FiniteWaterTest.java b/src/test/java/net/minecraftforge/debug/fluid/FiniteWaterTest.java index 158de16bc5..727c42ef3b 100644 --- a/src/test/java/net/minecraftforge/debug/fluid/FiniteWaterTest.java +++ b/src/test/java/net/minecraftforge/debug/fluid/FiniteWaterTest.java @@ -8,7 +8,7 @@ package net.minecraftforge.debug.fluid; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Fluids; -import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.event.level.BlockEvent; import net.minecraftforge.eventbus.api.Event; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; diff --git a/src/test/java/net/minecraftforge/debug/fluid/MilkFluidTest.java b/src/test/java/net/minecraftforge/debug/fluid/MilkFluidTest.java index 15b205f4f9..0f91455f04 100644 --- a/src/test/java/net/minecraftforge/debug/fluid/MilkFluidTest.java +++ b/src/test/java/net/minecraftforge/debug/fluid/MilkFluidTest.java @@ -34,7 +34,7 @@ public class MilkFluidTest ItemStack stack = event.getItemStack(); if (stack.getItem() == Items.MILK_BUCKET) { - FluidUtil.getFluidContained(stack).ifPresent((fluid) -> event.getPlayer().displayClientMessage(Component.literal("Contains ").append(fluid.getDisplayName()), true)); + FluidUtil.getFluidContained(stack).ifPresent((fluid) -> event.getEntity().displayClientMessage(Component.literal("Contains ").append(fluid.getDisplayName()), true)); } } } diff --git a/src/test/java/net/minecraftforge/debug/gameplay/loot/GlobalLootModifiersTest.java b/src/test/java/net/minecraftforge/debug/gameplay/loot/GlobalLootModifiersTest.java index 8fdcaef727..9d0d1ffb0c 100644 --- a/src/test/java/net/minecraftforge/debug/gameplay/loot/GlobalLootModifiersTest.java +++ b/src/test/java/net/minecraftforge/debug/gameplay/loot/GlobalLootModifiersTest.java @@ -43,7 +43,7 @@ import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.registries.RegistryObject; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.registries.DeferredRegister; @@ -67,7 +67,7 @@ public class GlobalLootModifiersTest { } } - private static final DeferredRegister> GLM = DeferredRegister.create(ForgeRegistries.Keys.LOOT_MODIFIER_SERIALIZERS, MODID); + private static final DeferredRegister> GLM = DeferredRegister.create(ForgeRegistries.Keys.GLOBAL_LOOT_MODIFIER_SERIALIZERS, MODID); private static final DeferredRegister ENCHANTS = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, MODID); private static final RegistryObject> DUNGEON_LOOT = GLM.register("dungeon_loot", DungeonLootEnhancerModifier.CODEC); diff --git a/src/test/java/net/minecraftforge/debug/item/ForgeSpawnEggItemTest.java b/src/test/java/net/minecraftforge/debug/item/ForgeSpawnEggItemTest.java index 373730619f..06c6bd3b84 100644 --- a/src/test/java/net/minecraftforge/debug/item/ForgeSpawnEggItemTest.java +++ b/src/test/java/net/minecraftforge/debug/item/ForgeSpawnEggItemTest.java @@ -34,7 +34,7 @@ public class ForgeSpawnEggItemTest static final String MODID = "forge_spawnegg_test"; static final boolean ENABLED = true; - private static final DeferredRegister> ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITIES, MODID); + private static final DeferredRegister> ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, MODID); private static final RegistryObject> ENTITY = ENTITIES.register("test_entity", () -> EntityType.Builder.of(Pig::new, MobCategory.CREATURE).sized(1, 1).build("test_entity") ); diff --git a/src/test/java/net/minecraftforge/debug/item/ShieldBlockTest.java b/src/test/java/net/minecraftforge/debug/item/ShieldBlockTest.java index 9397ed3232..5d0e23d3ab 100644 --- a/src/test/java/net/minecraftforge/debug/item/ShieldBlockTest.java +++ b/src/test/java/net/minecraftforge/debug/item/ShieldBlockTest.java @@ -28,7 +28,7 @@ public class ShieldBlockTest @SubscribeEvent public static void shieldBlock(ShieldBlockEvent event) { - if (event.getDamageSource().getDirectEntity() instanceof AbstractArrow arrow && event.getEntityLiving() instanceof Player player) + if (event.getDamageSource().getDirectEntity() instanceof AbstractArrow arrow && event.getEntity() instanceof Player player) { player.getInventory().add(new ItemStack(Items.ARROW)); event.setBlockedDamage(event.getOriginalBlockedDamage() / 2); diff --git a/src/test/java/net/minecraftforge/debug/item/TagBasedToolTypesTest.java b/src/test/java/net/minecraftforge/debug/item/TagBasedToolTypesTest.java index 6bf9b09635..70070d6071 100644 --- a/src/test/java/net/minecraftforge/debug/item/TagBasedToolTypesTest.java +++ b/src/test/java/net/minecraftforge/debug/item/TagBasedToolTypesTest.java @@ -35,7 +35,7 @@ import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; diff --git a/src/test/java/net/minecraftforge/debug/misc/ContainerTypeTest.java b/src/test/java/net/minecraftforge/debug/misc/ContainerTypeTest.java index d1687a3929..cf1c177f99 100644 --- a/src/test/java/net/minecraftforge/debug/misc/ContainerTypeTest.java +++ b/src/test/java/net/minecraftforge/debug/misc/ContainerTypeTest.java @@ -93,7 +93,7 @@ public class ContainerTypeTest private void registerContainers(final RegisterEvent event) { - event.register(ForgeRegistries.Keys.CONTAINER_TYPES, helper -> helper.register("container", IForgeMenuType.create(TestContainer::new))); + event.register(ForgeRegistries.Keys.MENU_TYPES, helper -> helper.register("container", IForgeMenuType.create(TestContainer::new))); } private void setup(FMLClientSetupEvent event) @@ -103,12 +103,12 @@ public class ContainerTypeTest private void onRightClick(PlayerInteractEvent.RightClickBlock event) { - if (!event.getWorld().isClientSide && event.getHand() == InteractionHand.MAIN_HAND) + if (!event.getLevel().isClientSide && event.getHand() == InteractionHand.MAIN_HAND) { - if (event.getWorld().getBlockState(event.getPos()).getBlock() == Blocks.SPONGE) + if (event.getLevel().getBlockState(event.getPos()).getBlock() == Blocks.SPONGE) { String text = "Hello World!"; - NetworkHooks.openGui((ServerPlayer) event.getPlayer(), new MenuProvider() + NetworkHooks.openScreen((ServerPlayer) event.getEntity(), new MenuProvider() { @Override public AbstractContainerMenu createMenu(int p_createMenu_1_, Inventory p_createMenu_2_, Player p_createMenu_3_) diff --git a/src/test/java/net/minecraftforge/debug/misc/DataPackRegistriesTest.java b/src/test/java/net/minecraftforge/debug/misc/DataPackRegistriesTest.java index 639db702d3..331269fa66 100644 --- a/src/test/java/net/minecraftforge/debug/misc/DataPackRegistriesTest.java +++ b/src/test/java/net/minecraftforge/debug/misc/DataPackRegistriesTest.java @@ -41,7 +41,7 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.fml.loading.FMLEnvironment; import net.minecraftforge.fml.util.thread.EffectiveSide; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.RegistryBuilder; import net.minecraftforge.registries.RegistryObject; diff --git a/src/test/java/net/minecraftforge/debug/misc/GameTestTest.java b/src/test/java/net/minecraftforge/debug/misc/GameTestTest.java index 1a1b6514a8..9d08ab6d56 100644 --- a/src/test/java/net/minecraftforge/debug/misc/GameTestTest.java +++ b/src/test/java/net/minecraftforge/debug/misc/GameTestTest.java @@ -52,7 +52,7 @@ public class GameTestTest public static final boolean ENABLED = true; private static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MODID); private static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); - private static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, MODID); + private static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, MODID); private static final RegistryObject ENERGY_BLOCK = BLOCKS.register("energy_block", () -> new EnergyBlock(Properties.of(Material.STONE, MaterialColor.STONE))); private static final RegistryObject ENERGY_BLOCK_ITEM = ITEMS.register("energy_block", diff --git a/src/test/java/net/minecraftforge/debug/recipe/recipebook/RecipeBookExtensionTest.java b/src/test/java/net/minecraftforge/debug/recipe/recipebook/RecipeBookExtensionTest.java index 8d72b44bf9..b8879edc57 100644 --- a/src/test/java/net/minecraftforge/debug/recipe/recipebook/RecipeBookExtensionTest.java +++ b/src/test/java/net/minecraftforge/debug/recipe/recipebook/RecipeBookExtensionTest.java @@ -44,7 +44,7 @@ public class RecipeBookExtensionTest public static final RegistryObject> RECIPE_BOOK_TEST_RECIPE_SERIALIZER = RECIPE_SERIALIZER.register("test_recipe", RecipeBookTestRecipeSerializer::new); - public static final DeferredRegister> MENU_TYPE = DeferredRegister.create(ForgeRegistries.CONTAINERS, MOD_ID); + public static final DeferredRegister> MENU_TYPE = DeferredRegister.create(ForgeRegistries.MENU_TYPES, MOD_ID); public static final RegistryObject> RECIPE_BOOK_TEST_MENU_TYPE = MENU_TYPE.register("test_recipe_menu", () -> IForgeMenuType.create(RecipeBookTestMenu::new)); @@ -66,10 +66,10 @@ public class RecipeBookExtensionTest private void onRightClick(PlayerInteractEvent.RightClickBlock event) { - if (event.getWorld().isClientSide) + if (event.getLevel().isClientSide) return; - if (event.getWorld().getBlockState(event.getPos()).getBlock() == Blocks.GRASS_BLOCK) - NetworkHooks.openGui((ServerPlayer) event.getPlayer(), new SimpleMenuProvider((id, inv, p) -> new RecipeBookTestMenu(id, inv, ContainerLevelAccess.create(event.getWorld(), event.getPos())), Component.literal("Test"))); + if (event.getLevel().getBlockState(event.getPos()).getBlock() == Blocks.GRASS_BLOCK) + NetworkHooks.openScreen((ServerPlayer) event.getEntity(), new SimpleMenuProvider((id, inv, p) -> new RecipeBookTestMenu(id, inv, ContainerLevelAccess.create(event.getLevel(), event.getPos())), Component.literal("Test"))); } public static ResourceLocation getId(String name) diff --git a/src/test/java/net/minecraftforge/debug/world/BiomeModifierTest.java b/src/test/java/net/minecraftforge/debug/world/BiomeModifierTest.java index 21ebca406d..da28c87694 100644 --- a/src/test/java/net/minecraftforge/debug/world/BiomeModifierTest.java +++ b/src/test/java/net/minecraftforge/debug/world/BiomeModifierTest.java @@ -44,7 +44,7 @@ import net.minecraftforge.common.world.ModifiableBiomeInfo.BiomeInfo.Builder; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; @@ -70,7 +70,7 @@ public class BiomeModifierTest private static final String LARGE_BASALT_COLUMNS = "large_basalt_columns"; private static final ResourceLocation LARGE_BASALT_COLUMNS_RL = new ResourceLocation(MODID, LARGE_BASALT_COLUMNS); private static final ResourceKey LARGE_BASALT_COLUMNS_KEY = ResourceKey.create(Registry.PLACED_FEATURE_REGISTRY, LARGE_BASALT_COLUMNS_RL); - + private static final String MODIFY_BIOMES = "modify_biomes"; private static final ResourceLocation MODIFY_BIOMES_RL = new ResourceLocation(MODID, MODIFY_BIOMES); @@ -114,19 +114,19 @@ public class BiomeModifierTest // Create our placed feature and biome modifiers. final ResourceKey> configuredFeatureKey = NetherFeatures.LARGE_BASALT_COLUMNS.unwrapKey().get().cast(Registry.CONFIGURED_FEATURE_REGISTRY).get(); // Make sure we're using the holder from the registryaccess/registryops, the static ones won't work. - final Holder> configuredFeatureHolder = ops.registry(Registry.CONFIGURED_FEATURE_REGISTRY).get().getOrCreateHolderOrThrow(configuredFeatureKey); + final Holder> configuredFeatureHolder = ops.registry(Registry.CONFIGURED_FEATURE_REGISTRY).get().getOrCreateHolderOrThrow(configuredFeatureKey); final PlacedFeature basaltFeature = new PlacedFeature( configuredFeatureHolder, List.of(CountOnEveryLayerPlacement.of(1), BiomeFilter.biome())); - + final HolderSet.Named badlandsTag = new HolderSet.Named<>(ops.registry(Registry.BIOME_REGISTRY).get(), BiomeTags.IS_BADLANDS); final HolderSet.Named forestsTag = new HolderSet.Named<>(ops.registry(Registry.BIOME_REGISTRY).get(), BiomeTags.IS_FOREST); - + final BiomeModifier addBasaltFeature = new AddFeaturesBiomeModifier( badlandsTag, HolderSet.direct(ops.registry(Registry.PLACED_FEATURE_REGISTRY).get().getOrCreateHolderOrThrow(ResourceKey.create(Registry.PLACED_FEATURE_REGISTRY, LARGE_BASALT_COLUMNS_KEY.location()))), Decoration.TOP_LAYER_MODIFICATION); - + final BiomeModifier addSpawn = AddSpawnsBiomeModifier.singleSpawn( badlandsTag, new SpawnerData(EntityType.MAGMA_CUBE, 100, 1, 4)); @@ -136,22 +136,22 @@ public class BiomeModifierTest Precipitation.SNOW, 0xFF0000 ); - + final BiomeModifier removeFeature = RemoveFeaturesBiomeModifier.allSteps( forestsTag, HolderSet.direct(ops.registry(Registry.PLACED_FEATURE_REGISTRY).get().getOrCreateHolderOrThrow(ResourceKey.create(Registry.PLACED_FEATURE_REGISTRY, new ResourceLocation("trees_birch_and_oak")))) ); - + final BiomeModifier removeSpawn = new RemoveSpawnsBiomeModifier( forestsTag, new HolderSet.Named<>(ops.registry(Registry.ENTITY_TYPE_REGISTRY).get(), EntityTypeTags.SKELETONS) ); - + // Create and add dataproviders. generator.addProvider(event.includeServer(), JsonCodecProvider.forDatapackRegistry( generator, existingFileHelper, MODID, ops, Registry.PLACED_FEATURE_REGISTRY, Map.of( LARGE_BASALT_COLUMNS_RL, basaltFeature))); - + generator.addProvider(event.includeServer(), JsonCodecProvider.forDatapackRegistry( generator, existingFileHelper, MODID, ops, ForgeRegistries.Keys.BIOME_MODIFIERS, Map.of( MODIFY_BADLANDS_RL, biomeModifier, diff --git a/src/test/java/net/minecraftforge/debug/world/ChunkDataEventSaveNullWorldTest.java b/src/test/java/net/minecraftforge/debug/world/ChunkDataEventSaveNullWorldTest.java index 36e1843c29..58c2c1bbc4 100644 --- a/src/test/java/net/minecraftforge/debug/world/ChunkDataEventSaveNullWorldTest.java +++ b/src/test/java/net/minecraftforge/debug/world/ChunkDataEventSaveNullWorldTest.java @@ -5,7 +5,7 @@ package net.minecraftforge.debug.world; -import net.minecraftforge.event.world.ChunkDataEvent; +import net.minecraftforge.event.level.ChunkDataEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import org.apache.logging.log4j.LogManager; @@ -20,7 +20,7 @@ public class ChunkDataEventSaveNullWorldTest { @SubscribeEvent public static void onChunkSave(final ChunkDataEvent.Save event) { - if(event.getWorld() == null) + if(event.getLevel() == null) { LOGGER.info("Chunk at {} had null world", event.getChunk().getPos()); } diff --git a/src/test/java/net/minecraftforge/debug/world/ChunkWatchEventTest.java b/src/test/java/net/minecraftforge/debug/world/ChunkWatchEventTest.java index b99e6dcb91..15f11025af 100644 --- a/src/test/java/net/minecraftforge/debug/world/ChunkWatchEventTest.java +++ b/src/test/java/net/minecraftforge/debug/world/ChunkWatchEventTest.java @@ -10,7 +10,7 @@ import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.world.ChunkWatchEvent; +import net.minecraftforge.event.level.ChunkWatchEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import org.apache.logging.log4j.LogManager; @@ -45,7 +45,7 @@ public class ChunkWatchEventTest --watched; watchedByPlayer.put(event.getPlayer().getUUID(), watched); logger.info("Unwatching chunk {} in dimension {}. Player's dimension: {}, total chunks watched by player {}", - event.getPos(), getDimensionName(event.getWorld()), getDimensionName(event.getPlayer().getCommandSenderWorld()), + event.getPos(), getDimensionName(event.getLevel()), getDimensionName(event.getPlayer().getCommandSenderWorld()), watched); } @@ -56,7 +56,7 @@ public class ChunkWatchEventTest ++watched; watchedByPlayer.put(event.getPlayer().getUUID(), watched); logger.info("Watching chunk {} in dimension {}. Player's dimension: {}, total chunks watched by player {}", - event.getPos(), getDimensionName(event.getWorld()), getDimensionName(event.getPlayer().getCommandSenderWorld()), + event.getPos(), getDimensionName(event.getLevel()), getDimensionName(event.getPlayer().getCommandSenderWorld()), watched); } diff --git a/src/test/java/net/minecraftforge/debug/world/StructureModifierTest.java b/src/test/java/net/minecraftforge/debug/world/StructureModifierTest.java index 52286f4f3d..094cf9bf70 100644 --- a/src/test/java/net/minecraftforge/debug/world/StructureModifierTest.java +++ b/src/test/java/net/minecraftforge/debug/world/StructureModifierTest.java @@ -30,7 +30,7 @@ import net.minecraftforge.common.world.StructureModifier; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import net.minecraftforge.data.event.GatherDataEvent; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.ForgeRegistries.Keys; diff --git a/src/test/java/net/minecraftforge/debug/world/item/IngredientInvalidationTest.java b/src/test/java/net/minecraftforge/debug/world/item/IngredientInvalidationTest.java index 81f356b52b..8ec53d3efa 100644 --- a/src/test/java/net/minecraftforge/debug/world/item/IngredientInvalidationTest.java +++ b/src/test/java/net/minecraftforge/debug/world/item/IngredientInvalidationTest.java @@ -11,7 +11,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.Level; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.world.WorldEvent; +import net.minecraftforge.event.level.LevelEvent; import net.minecraftforge.fml.common.Mod; import java.util.stream.Stream; @@ -49,9 +49,9 @@ public class IngredientInvalidationTest MinecraftForge.EVENT_BUS.addListener(IngredientInvalidationTest::worldLoad); } - private static void worldLoad(WorldEvent.Load event) + private static void worldLoad(LevelEvent.Load event) { - if (event.getWorld() instanceof ServerLevel level && level.dimension().equals(Level.OVERWORLD)) + if (event.getLevel() instanceof ServerLevel level && level.dimension().equals(Level.OVERWORLD)) { TEST_INGREDIENT.getStackingIds(); // force invalidation if necessary if (!invalidateExpected) diff --git a/src/test/java/net/minecraftforge/eventtest/tests/forge/client/EntityJoinedWorldTest.java b/src/test/java/net/minecraftforge/eventtest/tests/forge/client/EntityJoinedWorldTest.java index 05050cab9c..884c24ced8 100644 --- a/src/test/java/net/minecraftforge/eventtest/tests/forge/client/EntityJoinedWorldTest.java +++ b/src/test/java/net/minecraftforge/eventtest/tests/forge/client/EntityJoinedWorldTest.java @@ -9,7 +9,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.EntityJoinLevelEvent; import net.minecraftforge.eventtest.internal.EventTest; import net.minecraftforge.eventtest.internal.TestHolder; @@ -32,7 +32,7 @@ public class EntityJoinedWorldTest extends EventTest { MinecraftForge.EVENT_BUS.addListener(this::eventListener); } - private void eventListener(EntityJoinWorldEvent event) { + private void eventListener(EntityJoinLevelEvent event) { final Entity eventEntity = event.getEntity(); final Player gamePlayer = Minecraft.getInstance().player;