Loading src/main/java/net/minecraft/advancements/Advancement.java +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ public class Advancement private final String[][] requirements; private final Set<Advancement> children = Sets.<Advancement>newLinkedHashSet(); private final ITextComponent displayText; public final org.bukkit.advancement.Advancement bukkit = new org.bukkit.craftbukkit.advancement.CraftAdvancement(this); public Advancement(ResourceLocation id, @Nullable Advancement parentIn, @Nullable DisplayInfo displayIn, AdvancementRewards rewardsIn, Map<String, Criterion> criteriaIn, String[][] requirementsIn) { Loading src/main/java/net/minecraft/advancements/PlayerAdvancements.java +10 −9 Original line number Diff line number Diff line Loading @@ -194,37 +194,38 @@ public class PlayerAdvancements } } public boolean grantCriterion(Advancement p_192750_1_, String p_192750_2_) public boolean grantCriterion(Advancement advancement, String p_192750_2_) { // Forge: don't grant advancements for fake players if (this.player instanceof net.minecraftforge.common.util.FakePlayer) return false; boolean flag = false; AdvancementProgress advancementprogress = this.getProgress(p_192750_1_); AdvancementProgress advancementprogress = this.getProgress(advancement); boolean flag1 = advancementprogress.isDone(); if (advancementprogress.grantCriterion(p_192750_2_)) { this.unregisterListeners(p_192750_1_); this.progressChanged.add(p_192750_1_); this.unregisterListeners(advancement); this.progressChanged.add(advancement); flag = true; if (!flag1 && advancementprogress.isDone()) { p_192750_1_.getRewards().apply(this.player); this.player.world.getServer().getPluginManager().callEvent(new org.bukkit.event.player.PlayerAdvancementDoneEvent(this.player.getBukkitEntity(), advancement.bukkit)); advancement.getRewards().apply(this.player); if (p_192750_1_.getDisplay() != null && p_192750_1_.getDisplay().shouldAnnounceToChat() && this.player.world.getGameRules().getBoolean("announceAdvancements")) if (advancement.getDisplay() != null && advancement.getDisplay().shouldAnnounceToChat() && this.player.world.getGameRules().getBoolean("announceAdvancements")) { this.server.getPlayerList().sendMessage(new TextComponentTranslation("chat.type.advancement." + p_192750_1_.getDisplay().getFrame().getName(), new Object[] {this.player.getDisplayName(), p_192750_1_.getDisplayText()})); this.server.getPlayerList().sendMessage(new TextComponentTranslation("chat.type.advancement." + advancement.getDisplay().getFrame().getName(), new Object[] {this.player.getDisplayName(), advancement.getDisplayText()})); } net.minecraftforge.common.ForgeHooks.onAdvancement(this.player, p_192750_1_); net.minecraftforge.common.ForgeHooks.onAdvancement(this.player, advancement); } } if (advancementprogress.isDone()) { this.ensureVisibility(p_192750_1_); this.ensureVisibility(advancement); } return flag; Loading src/main/java/net/minecraft/block/Block.java +11 −2 Original line number Diff line number Diff line Loading @@ -573,7 +573,8 @@ public class Block extends net.minecraftforge.registries.IForgeRegistryEntry.Imp for (ItemStack drop : drops) { if (worldIn.rand.nextFloat() <= chance) // CraftBukkit - <= to < to allow for plugins to completely disable block drops from explosions if (worldIn.rand.nextFloat() < chance) { spawnAsEntity(worldIn, pos, drop); } Loading @@ -596,9 +597,17 @@ public class Block extends net.minecraftforge.registries.IForgeRegistryEntry.Imp double d2 = (double)(worldIn.rand.nextFloat() * 0.5F) + 0.25D; EntityItem entityitem = new EntityItem(worldIn, (double)pos.getX() + d0, (double)pos.getY() + d1, (double)pos.getZ() + d2, stack); entityitem.setDefaultPickupDelay(); if (worldIn.captureDrops != null) { worldIn.captureDrops.add(entityitem); } else { worldIn.spawnEntity(entityitem); } } } public int getExpDrop(World world, IBlockState state, int enchantmentLevel) { return 0; } public void dropXpOnBlockBreak(World worldIn, BlockPos pos, int amount) { Loading src/main/java/net/minecraft/block/BlockBasePressurePlate.java +12 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import org.bukkit.event.block.BlockRedstoneEvent; public abstract class BlockBasePressurePlate extends Block { Loading Loading @@ -125,6 +126,17 @@ public abstract class BlockBasePressurePlate extends Block boolean flag = oldRedstoneStrength > 0; boolean flag1 = i > 0; org.bukkit.World bworld = worldIn.getWorld(); org.bukkit.plugin.PluginManager manager = worldIn.getServer().getPluginManager(); if (flag != flag1) { BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(bworld.getBlockAt(pos.getX(), pos.getY(), pos.getZ()), oldRedstoneStrength, i); manager.callEvent(eventRedstone); flag1 = eventRedstone.getNewCurrent() > 0; i = eventRedstone.getNewCurrent(); } if (oldRedstoneStrength != i) { state = this.setRedstoneStrength(state, i); Loading src/main/java/net/minecraft/block/BlockBush.java +3 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,9 @@ public class BlockBush extends Block implements net.minecraftforge.common.IPlant { if (!this.canBlockStay(worldIn, pos, state)) { if (org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPhysicsEvent(worldIn, pos).isCancelled()) { return; } this.dropBlockAsItem(worldIn, pos, state, 0); worldIn.setBlockState(pos, Blocks.AIR.getDefaultState(), 3); } Loading Loading
src/main/java/net/minecraft/advancements/Advancement.java +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ public class Advancement private final String[][] requirements; private final Set<Advancement> children = Sets.<Advancement>newLinkedHashSet(); private final ITextComponent displayText; public final org.bukkit.advancement.Advancement bukkit = new org.bukkit.craftbukkit.advancement.CraftAdvancement(this); public Advancement(ResourceLocation id, @Nullable Advancement parentIn, @Nullable DisplayInfo displayIn, AdvancementRewards rewardsIn, Map<String, Criterion> criteriaIn, String[][] requirementsIn) { Loading
src/main/java/net/minecraft/advancements/PlayerAdvancements.java +10 −9 Original line number Diff line number Diff line Loading @@ -194,37 +194,38 @@ public class PlayerAdvancements } } public boolean grantCriterion(Advancement p_192750_1_, String p_192750_2_) public boolean grantCriterion(Advancement advancement, String p_192750_2_) { // Forge: don't grant advancements for fake players if (this.player instanceof net.minecraftforge.common.util.FakePlayer) return false; boolean flag = false; AdvancementProgress advancementprogress = this.getProgress(p_192750_1_); AdvancementProgress advancementprogress = this.getProgress(advancement); boolean flag1 = advancementprogress.isDone(); if (advancementprogress.grantCriterion(p_192750_2_)) { this.unregisterListeners(p_192750_1_); this.progressChanged.add(p_192750_1_); this.unregisterListeners(advancement); this.progressChanged.add(advancement); flag = true; if (!flag1 && advancementprogress.isDone()) { p_192750_1_.getRewards().apply(this.player); this.player.world.getServer().getPluginManager().callEvent(new org.bukkit.event.player.PlayerAdvancementDoneEvent(this.player.getBukkitEntity(), advancement.bukkit)); advancement.getRewards().apply(this.player); if (p_192750_1_.getDisplay() != null && p_192750_1_.getDisplay().shouldAnnounceToChat() && this.player.world.getGameRules().getBoolean("announceAdvancements")) if (advancement.getDisplay() != null && advancement.getDisplay().shouldAnnounceToChat() && this.player.world.getGameRules().getBoolean("announceAdvancements")) { this.server.getPlayerList().sendMessage(new TextComponentTranslation("chat.type.advancement." + p_192750_1_.getDisplay().getFrame().getName(), new Object[] {this.player.getDisplayName(), p_192750_1_.getDisplayText()})); this.server.getPlayerList().sendMessage(new TextComponentTranslation("chat.type.advancement." + advancement.getDisplay().getFrame().getName(), new Object[] {this.player.getDisplayName(), advancement.getDisplayText()})); } net.minecraftforge.common.ForgeHooks.onAdvancement(this.player, p_192750_1_); net.minecraftforge.common.ForgeHooks.onAdvancement(this.player, advancement); } } if (advancementprogress.isDone()) { this.ensureVisibility(p_192750_1_); this.ensureVisibility(advancement); } return flag; Loading
src/main/java/net/minecraft/block/Block.java +11 −2 Original line number Diff line number Diff line Loading @@ -573,7 +573,8 @@ public class Block extends net.minecraftforge.registries.IForgeRegistryEntry.Imp for (ItemStack drop : drops) { if (worldIn.rand.nextFloat() <= chance) // CraftBukkit - <= to < to allow for plugins to completely disable block drops from explosions if (worldIn.rand.nextFloat() < chance) { spawnAsEntity(worldIn, pos, drop); } Loading @@ -596,9 +597,17 @@ public class Block extends net.minecraftforge.registries.IForgeRegistryEntry.Imp double d2 = (double)(worldIn.rand.nextFloat() * 0.5F) + 0.25D; EntityItem entityitem = new EntityItem(worldIn, (double)pos.getX() + d0, (double)pos.getY() + d1, (double)pos.getZ() + d2, stack); entityitem.setDefaultPickupDelay(); if (worldIn.captureDrops != null) { worldIn.captureDrops.add(entityitem); } else { worldIn.spawnEntity(entityitem); } } } public int getExpDrop(World world, IBlockState state, int enchantmentLevel) { return 0; } public void dropXpOnBlockBreak(World worldIn, BlockPos pos, int amount) { Loading
src/main/java/net/minecraft/block/BlockBasePressurePlate.java +12 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import org.bukkit.event.block.BlockRedstoneEvent; public abstract class BlockBasePressurePlate extends Block { Loading Loading @@ -125,6 +126,17 @@ public abstract class BlockBasePressurePlate extends Block boolean flag = oldRedstoneStrength > 0; boolean flag1 = i > 0; org.bukkit.World bworld = worldIn.getWorld(); org.bukkit.plugin.PluginManager manager = worldIn.getServer().getPluginManager(); if (flag != flag1) { BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(bworld.getBlockAt(pos.getX(), pos.getY(), pos.getZ()), oldRedstoneStrength, i); manager.callEvent(eventRedstone); flag1 = eventRedstone.getNewCurrent() > 0; i = eventRedstone.getNewCurrent(); } if (oldRedstoneStrength != i) { state = this.setRedstoneStrength(state, i); Loading
src/main/java/net/minecraft/block/BlockBush.java +3 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,9 @@ public class BlockBush extends Block implements net.minecraftforge.common.IPlant { if (!this.canBlockStay(worldIn, pos, state)) { if (org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPhysicsEvent(worldIn, pos).isCancelled()) { return; } this.dropBlockAsItem(worldIn, pos, state, 0); worldIn.setBlockState(pos, Blocks.AIR.getDefaultState(), 3); } Loading