mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-19 15:09:15 +00:00
修复1.20-1.20.6碰撞
This commit is contained in:
@@ -45,7 +45,6 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.Registry;
|
import org.bukkit.Registry;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ import org.bstats.bukkit.Metrics;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.jspecify.annotations.Nullable;
|
import org.jspecify.annotations.Nullable;
|
||||||
|
|||||||
@@ -50,7 +50,10 @@ import net.momirealms.craftengine.core.plugin.context.event.EventTrigger;
|
|||||||
import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters;
|
import net.momirealms.craftengine.core.plugin.context.parameter.DirectContextParameters;
|
||||||
import net.momirealms.craftengine.core.plugin.network.*;
|
import net.momirealms.craftengine.core.plugin.network.*;
|
||||||
import net.momirealms.craftengine.core.util.*;
|
import net.momirealms.craftengine.core.util.*;
|
||||||
import net.momirealms.craftengine.core.world.*;
|
import net.momirealms.craftengine.core.world.BlockHitResult;
|
||||||
|
import net.momirealms.craftengine.core.world.BlockPos;
|
||||||
|
import net.momirealms.craftengine.core.world.EntityHitResult;
|
||||||
|
import net.momirealms.craftengine.core.world.WorldEvents;
|
||||||
import net.momirealms.craftengine.core.world.chunk.Palette;
|
import net.momirealms.craftengine.core.world.chunk.Palette;
|
||||||
import net.momirealms.craftengine.core.world.chunk.PalettedContainer;
|
import net.momirealms.craftengine.core.world.chunk.PalettedContainer;
|
||||||
import net.momirealms.craftengine.core.world.chunk.packet.BlockEntityData;
|
import net.momirealms.craftengine.core.world.chunk.packet.BlockEntityData;
|
||||||
@@ -58,7 +61,6 @@ import net.momirealms.craftengine.core.world.chunk.packet.MCSection;
|
|||||||
import net.momirealms.craftengine.core.world.collision.AABB;
|
import net.momirealms.craftengine.core.world.collision.AABB;
|
||||||
import net.momirealms.sparrow.nbt.Tag;
|
import net.momirealms.sparrow.nbt.Tag;
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|||||||
@@ -558,6 +558,8 @@ public class BukkitServerPlayer extends Player {
|
|||||||
int currentTick = gameTicks();
|
int currentTick = gameTicks();
|
||||||
// optimize break speed, otherwise it would be too fast
|
// optimize break speed, otherwise it would be too fast
|
||||||
if (currentTick - this.lastSuccessfulBreak <= 5) return;
|
if (currentTick - this.lastSuccessfulBreak <= 5) return;
|
||||||
|
Object destroyedState = this.destroyedState;
|
||||||
|
if (destroyedState == null) return;
|
||||||
try {
|
try {
|
||||||
org.bukkit.entity.Player player = platformPlayer();
|
org.bukkit.entity.Player player = platformPlayer();
|
||||||
double range = getCachedInteractionRange();
|
double range = getCachedInteractionRange();
|
||||||
@@ -575,7 +577,7 @@ public class BukkitServerPlayer extends Player {
|
|||||||
|
|
||||||
// send hit sound if the sound is removed
|
// send hit sound if the sound is removed
|
||||||
if (currentTick - this.lastHitBlockTime > 3) {
|
if (currentTick - this.lastHitBlockTime > 3) {
|
||||||
Object blockOwner = FastNMS.INSTANCE.method$BlockState$getBlock(this.destroyedState);
|
Object blockOwner = FastNMS.INSTANCE.method$BlockState$getBlock(destroyedState);
|
||||||
Object soundType = CoreReflections.field$BlockBehaviour$soundType.get(blockOwner);
|
Object soundType = CoreReflections.field$BlockBehaviour$soundType.get(blockOwner);
|
||||||
Object soundEvent = CoreReflections.field$SoundType$hitSound.get(soundType);
|
Object soundEvent = CoreReflections.field$SoundType$hitSound.get(soundType);
|
||||||
Object soundId = FastNMS.INSTANCE.field$SoundEvent$location(soundEvent);
|
Object soundId = FastNMS.INSTANCE.field$SoundEvent$location(soundEvent);
|
||||||
@@ -601,8 +603,8 @@ public class BukkitServerPlayer extends Player {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float progressToAdd = getDestroyProgress(this.destroyedState, hitPos);
|
float progressToAdd = getDestroyProgress(destroyedState, hitPos);
|
||||||
int id = BlockStateUtils.blockStateToId(this.destroyedState);
|
int id = BlockStateUtils.blockStateToId(destroyedState);
|
||||||
ImmutableBlockState customState = BukkitBlockManager.instance().getImmutableBlockState(id);
|
ImmutableBlockState customState = BukkitBlockManager.instance().getImmutableBlockState(id);
|
||||||
// double check custom block
|
// double check custom block
|
||||||
if (customState != null && !customState.isEmpty()) {
|
if (customState != null && !customState.isEmpty()) {
|
||||||
@@ -612,13 +614,13 @@ public class BukkitServerPlayer extends Player {
|
|||||||
// it's correct on plugin side
|
// it's correct on plugin side
|
||||||
if (blockSettings.isCorrectTool(item.id())) {
|
if (blockSettings.isCorrectTool(item.id())) {
|
||||||
// but not on serverside
|
// but not on serverside
|
||||||
if (!FastNMS.INSTANCE.method$ItemStack$isCorrectToolForDrops(item.getLiteralObject(), this.destroyedState)) {
|
if (!FastNMS.INSTANCE.method$ItemStack$isCorrectToolForDrops(item.getLiteralObject(), destroyedState)) {
|
||||||
// we fix the speed
|
// we fix the speed
|
||||||
progressToAdd = progressToAdd * (10f / 3f);
|
progressToAdd = progressToAdd * (10f / 3f);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// not a correct tool on plugin side and not a correct tool on serverside
|
// not a correct tool on plugin side and not a correct tool on serverside
|
||||||
if (!blockSettings.respectToolComponent() || !FastNMS.INSTANCE.method$ItemStack$isCorrectToolForDrops(item.getLiteralObject(), this.destroyedState)) {
|
if (!blockSettings.respectToolComponent() || !FastNMS.INSTANCE.method$ItemStack$isCorrectToolForDrops(item.getLiteralObject(), destroyedState)) {
|
||||||
progressToAdd = progressToAdd * (10f / 3f) * blockSettings.incorrectToolSpeed();
|
progressToAdd = progressToAdd * (10f / 3f) * blockSettings.incorrectToolSpeed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ import net.momirealms.craftengine.core.item.ComponentKeys;
|
|||||||
import net.momirealms.craftengine.core.item.Item;
|
import net.momirealms.craftengine.core.item.Item;
|
||||||
import net.momirealms.craftengine.core.item.ItemBuildContext;
|
import net.momirealms.craftengine.core.item.ItemBuildContext;
|
||||||
import net.momirealms.craftengine.core.item.NetworkItemHandler;
|
import net.momirealms.craftengine.core.item.NetworkItemHandler;
|
||||||
import net.momirealms.craftengine.core.util.AdventureHelper;
|
|
||||||
import net.momirealms.craftengine.core.util.Color;
|
|
||||||
import net.momirealms.craftengine.core.util.VersionHelper;
|
import net.momirealms.craftengine.core.util.VersionHelper;
|
||||||
import net.momirealms.sparrow.nbt.CompoundTag;
|
import net.momirealms.sparrow.nbt.CompoundTag;
|
||||||
import net.momirealms.sparrow.nbt.Tag;
|
import net.momirealms.sparrow.nbt.Tag;
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ byte_buddy_version=1.17.5
|
|||||||
ahocorasick_version=0.6.3
|
ahocorasick_version=0.6.3
|
||||||
snake_yaml_version=2.4
|
snake_yaml_version=2.4
|
||||||
anti_grief_version=0.17
|
anti_grief_version=0.17
|
||||||
nms_helper_version=0.66.16
|
nms_helper_version=0.66.17
|
||||||
evalex_version=3.5.0
|
evalex_version=3.5.0
|
||||||
reactive_streams_version=1.0.4
|
reactive_streams_version=1.0.4
|
||||||
amazon_awssdk_version=2.31.23
|
amazon_awssdk_version=2.31.23
|
||||||
|
|||||||
Reference in New Issue
Block a user