9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-25 09:59:20 +00:00

Merge pull request #85 from jhqwqmc/dev

feat: 1.21.5兼容
This commit is contained in:
XiaoMoMi
2025-04-05 12:25:23 +08:00
committed by GitHub
14 changed files with 660 additions and 40 deletions

View File

@@ -2,7 +2,7 @@ config=${config_version}
builder=${builder}
supported-languages=${supported_languages}
lang-version=${lang_version}
latest-version=${latest_minecraft_version}
latest-version=${latest_supported_version}
asm=${asm_version}
asm-commons=${asm_commons_version}
jar-relocator=${jar_relocator_version}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -2411,6 +2411,25 @@
],
"subtitle": "subtitles.block.bubble_column.whirlpool_inside"
},
"block.cactus_flower.break": {
"sounds": [
"block/cactus_flower/break1",
"block/cactus_flower/break2",
"block/cactus_flower/break3",
"block/cactus_flower/break4",
"block/cactus_flower/break5"
],
"subtitle": "subtitles.block.generic.break"
},
"block.cactus_flower.place": {
"sounds": [
"block/cactus_flower/place1",
"block/cactus_flower/place2",
"block/cactus_flower/place3",
"block/cactus_flower/place4"
],
"subtitle": "subtitles.block.generic.place"
},
"block.cake.add_candle": {
"sounds": [
"block/cake/add_candle1",
@@ -4160,6 +4179,59 @@
],
"subtitle": "subtitles.block.generic.break"
},
"block.deadbush.idle": {
"sounds": [
{
"name": "block/deadbush/sandblock_version/bushrustle1",
"volume": 4.0
},
{
"name": "block/deadbush/sandblock_version/bushrustle2",
"volume": 4.0
},
{
"name": "block/deadbush/sandblock_version/bushrustle3",
"volume": 4.0
},
{
"name": "block/deadbush/sandblock_version/creakysand1",
"volume": 4.0
},
{
"name": "block/deadbush/sandblock_version/crickets",
"volume": 4.0,
"weight": 3
},
{
"name": "block/deadbush/sandblock_version/howlingwind1",
"volume": 4.0
},
{
"name": "block/deadbush/sandblock_version/insect1",
"volume": 4.0
},
{
"name": "block/deadbush/sandblock_version/leaves",
"volume": 4.0
},
{
"name": "block/deadbush/sandblock_version/movingsand1",
"volume": 4.0,
"weight": 2
},
{
"name": "block/deadbush/sandblock_version/movingsand2",
"volume": 4.0,
"weight": 2
},
{
"name": "block/deadbush/sandblock_version/movingsand3",
"volume": 4.0,
"weight": 2
}
],
"subtitle": "subtitles.block.deadbush.idle"
},
"block.decorated_pot.break": {
"sounds": [
"block/decorated_pot/break1",
@@ -4757,6 +4829,59 @@
],
"subtitle": "subtitles.block.fire.extinguish"
},
"block.firefly_bush.idle": {
"sounds": [
{
"name": "block/firefly_bush/firefly_bush1",
"volume": 4.0
},
{
"name": "block/firefly_bush/firefly_bush2",
"volume": 4.0
},
{
"name": "block/firefly_bush/firefly_bush3",
"volume": 4.0
},
{
"name": "block/firefly_bush/firefly_bush4",
"volume": 4.0
},
{
"name": "block/firefly_bush/firefly_bush5",
"volume": 4.0
},
{
"name": "block/firefly_bush/firefly_bush6",
"volume": 4.0
},
{
"name": "block/firefly_bush/firefly_bush7",
"volume": 4.0,
"weight": 2
},
{
"name": "block/firefly_bush/firefly_bush8",
"volume": 4.0,
"weight": 2
},
{
"name": "block/firefly_bush/firefly_bush9",
"volume": 4.0,
"weight": 2
},
{
"name": "block/firefly_bush/firefly_bush10",
"volume": 4.0,
"weight": 2
},
{
"name": "block/firefly_bush/firefly_bush11",
"volume": 4.0
}
],
"subtitle": "subtitles.block.firefly_bush.idle"
},
"block.flowering_azalea.break": {
"sounds": [
"block/azalea/break1",
@@ -5647,6 +5772,59 @@
],
"subtitle": "subtitles.block.generic.footsteps"
},
"block.iron.break": {
"sounds": [
"block/iron/break1",
"block/iron/break2",
"block/iron/break3",
"block/iron/break4",
"block/iron/break5",
"block/iron/break6",
"block/iron/break7",
"block/iron/break8"
],
"subtitle": "subtitles.block.generic.break"
},
"block.iron.fall": {
"sounds": [
"block/iron/step1",
"block/iron/step2",
"block/iron/step3",
"block/iron/step4"
],
"subtitle": "subtitles.block.generic.fall"
},
"block.iron.hit": {
"sounds": [
"block/iron/step1",
"block/iron/step2",
"block/iron/step3",
"block/iron/step4"
],
"subtitle": "subtitles.block.generic.hit"
},
"block.iron.place": {
"sounds": [
"block/iron/break1",
"block/iron/break2",
"block/iron/break3",
"block/iron/break4",
"block/iron/break5",
"block/iron/break6",
"block/iron/break7",
"block/iron/break8"
],
"subtitle": "subtitles.block.generic.place"
},
"block.iron.step": {
"sounds": [
"block/iron/step1",
"block/iron/step2",
"block/iron/step3",
"block/iron/step4"
],
"subtitle": "subtitles.block.generic.footsteps"
},
"block.iron_door.close": {
"sounds": [
{
@@ -5916,6 +6094,59 @@
],
"subtitle": "subtitles.block.lava.ambient"
},
"block.leaf_litter.break": {
"sounds": [
"block/leaf_litter/break1",
"block/leaf_litter/break2",
"block/leaf_litter/break3",
"block/leaf_litter/break4",
"block/leaf_litter/break5"
],
"subtitle": "subtitles.block.generic.break"
},
"block.leaf_litter.fall": {
"sounds": [
"block/leaf_litter/step1",
"block/leaf_litter/step2",
"block/leaf_litter/step3",
"block/leaf_litter/step4",
"block/leaf_litter/step5",
"block/leaf_litter/step6"
],
"subtitle": "subtitles.block.generic.fall"
},
"block.leaf_litter.hit": {
"sounds": [
"block/leaf_litter/step1",
"block/leaf_litter/step2",
"block/leaf_litter/step3",
"block/leaf_litter/step4",
"block/leaf_litter/step5",
"block/leaf_litter/step6"
],
"subtitle": "subtitles.block.generic.hit"
},
"block.leaf_litter.place": {
"sounds": [
"block/leaf_litter/place1",
"block/leaf_litter/place2",
"block/leaf_litter/place3",
"block/leaf_litter/place4",
"block/leaf_litter/place5"
],
"subtitle": "subtitles.block.generic.place"
},
"block.leaf_litter.step": {
"sounds": [
"block/leaf_litter/step1",
"block/leaf_litter/step2",
"block/leaf_litter/step3",
"block/leaf_litter/step4",
"block/leaf_litter/step5",
"block/leaf_litter/step6"
],
"subtitle": "subtitles.block.generic.footsteps"
},
"block.lever.click": {
"sounds": [
"random/click"
@@ -8934,6 +9165,109 @@
],
"subtitle": "subtitles.block.generic.hit"
},
"block.sand.idle": {
"sounds": [
{
"name": "block/sand/sand1",
"volume": 4.0,
"weight": 2
},
{
"name": "block/sand/sand2",
"volume": 4.0,
"weight": 2
},
{
"name": "block/sand/sand3",
"volume": 4.0,
"weight": 2
},
{
"name": "block/sand/sand4",
"volume": 4.0
},
{
"name": "block/sand/sand5",
"volume": 4.0,
"weight": 2
},
{
"name": "block/sand/sand6",
"volume": 4.0,
"weight": 2
},
{
"name": "block/sand/sand7",
"volume": 4.0
},
{
"name": "block/sand/sand8",
"volume": 4.0
},
{
"name": "block/sand/sand9",
"volume": 4.0
},
{
"name": "block/sand/sand10",
"volume": 4.0
},
{
"name": "block/sand/sand10",
"volume": 4.0,
"weight": 2
},
{
"name": "block/sand/sand11",
"volume": 4.0
},
{
"name": "block/sand/sand12",
"volume": 4.0
},
{
"name": "block/sand/sand12",
"volume": 4.0
},
{
"name": "block/sand/sand13",
"volume": 4.0
},
{
"name": "block/sand/sand14",
"volume": 4.0
},
{
"name": "block/sand/sand15",
"volume": 4.0
},
{
"name": "block/sand/sand16",
"volume": 4.0
},
{
"name": "block/sand/sand17",
"volume": 4.0
},
{
"name": "block/sand/sand18",
"volume": 4.0
},
{
"name": "block/sand/sand19",
"volume": 4.0
},
{
"name": "block/sand/sand20",
"volume": 4.0
},
{
"name": "block/sand/sand21",
"volume": 4.0
}
],
"subtitle": "subtitles.block.sand.idle"
},
"block.sand.place": {
"sounds": [
"dig/sand1",
@@ -8953,6 +9287,23 @@
],
"subtitle": "subtitles.block.generic.footsteps"
},
"block.sand.wind": {
"sounds": [
"block/sand/wind1",
"block/sand/wind2",
"block/sand/wind3",
"block/sand/wind4",
"block/sand/wind5",
"block/sand/wind6",
"block/sand/wind7",
"block/sand/wind8",
"block/sand/wind9",
"block/sand/wind10",
"block/sand/wind11",
"block/sand/wind12"
],
"subtitle": "subtitles.block.sand.wind"
},
"block.scaffolding.break": {
"sounds": [
{
@@ -12699,7 +13050,8 @@
{
"name": "entity.horse.saddle",
"pitch": 0.8,
"type": "event"
"type": "event",
"volume": 0.5
}
],
"subtitle": "subtitles.entity.camel.saddle"
@@ -15189,7 +15541,10 @@
},
"entity.horse.saddle": {
"sounds": [
"mob/horse/leather"
{
"name": "mob/horse/leather",
"volume": 0.5
}
],
"subtitle": "subtitles.entity.horse.saddle"
},
@@ -16677,7 +17032,10 @@
},
"entity.pig.saddle": {
"sounds": [
"mob/horse/leather"
{
"name": "mob/horse/leather",
"volume": 0.5
}
],
"subtitle": "subtitles.entity.pig.saddle"
},
@@ -18498,7 +18856,10 @@
},
"entity.strider.saddle": {
"sounds": [
"mob/horse/leather"
{
"name": "mob/horse/leather",
"volume": 0.5
}
]
},
"entity.strider.step": {
@@ -19541,45 +19902,39 @@
},
"entity.wolf.ambient": {
"sounds": [
"mob/wolf/bark1",
"mob/wolf/bark2",
"mob/wolf/bark3"
"mob/wolf/classic/bark1",
"mob/wolf/classic/bark2",
"mob/wolf/classic/bark3"
],
"subtitle": "subtitles.entity.wolf.ambient"
"subtitle": "subtitles.entity.wolf.bark"
},
"entity.wolf.death": {
"sounds": [
"mob/wolf/death"
"mob/wolf/classic/death"
],
"subtitle": "subtitles.entity.wolf.death"
},
"entity.wolf.growl": {
"sounds": [
"mob/wolf/growl1",
"mob/wolf/growl2",
"mob/wolf/growl3"
"mob/wolf/classic/growl1",
"mob/wolf/classic/growl2",
"mob/wolf/classic/growl3"
],
"subtitle": "subtitles.entity.wolf.growl"
},
"entity.wolf.howl": {
"sounds": [
"mob/wolf/howl1",
"mob/wolf/howl2"
]
},
"entity.wolf.hurt": {
"sounds": [
"mob/wolf/hurt1",
"mob/wolf/hurt2",
"mob/wolf/hurt3"
"mob/wolf/classic/hurt1",
"mob/wolf/classic/hurt2",
"mob/wolf/classic/hurt3"
],
"subtitle": "subtitles.entity.wolf.hurt"
},
"entity.wolf.pant": {
"sounds": [
"mob/wolf/panting"
"mob/wolf/classic/panting"
],
"subtitle": "subtitles.entity.wolf.ambient"
"subtitle": "subtitles.entity.wolf.pant"
},
"entity.wolf.shake": {
"sounds": [
@@ -19599,9 +19954,267 @@
},
"entity.wolf.whine": {
"sounds": [
"mob/wolf/whine"
"mob/wolf/classic/whine"
],
"subtitle": "subtitles.entity.wolf.ambient"
"subtitle": "subtitles.entity.wolf.whine"
},
"entity.wolf_angry.ambient": {
"sounds": [
"mob/wolf/angry/bark1",
"mob/wolf/angry/bark2",
"mob/wolf/angry/bark3"
],
"subtitle": "subtitles.entity.wolf.bark"
},
"entity.wolf_angry.death": {
"sounds": [
"mob/wolf/angry/death"
],
"subtitle": "subtitles.entity.wolf.death"
},
"entity.wolf_angry.growl": {
"sounds": [
"mob/wolf/angry/growl1",
"mob/wolf/angry/growl2",
"mob/wolf/angry/growl3"
],
"subtitle": "subtitles.entity.wolf.growl"
},
"entity.wolf_angry.hurt": {
"sounds": [
"mob/wolf/angry/hurt1",
"mob/wolf/angry/hurt2",
"mob/wolf/angry/hurt3"
],
"subtitle": "subtitles.entity.wolf.hurt"
},
"entity.wolf_angry.pant": {
"sounds": [
"mob/wolf/angry/panting"
],
"subtitle": "subtitles.entity.wolf.pant"
},
"entity.wolf_angry.whine": {
"sounds": [
"mob/wolf/angry/whine"
],
"subtitle": "subtitles.entity.wolf.whine"
},
"entity.wolf_big.ambient": {
"sounds": [
"mob/wolf/big/bark1",
"mob/wolf/big/bark2",
"mob/wolf/big/bark3"
],
"subtitle": "subtitles.entity.wolf.bark"
},
"entity.wolf_big.death": {
"sounds": [
"mob/wolf/big/death"
],
"subtitle": "subtitles.entity.wolf.death"
},
"entity.wolf_big.growl": {
"sounds": [
"mob/wolf/big/growl1",
"mob/wolf/big/growl2",
"mob/wolf/big/growl3"
],
"subtitle": "subtitles.entity.wolf.growl"
},
"entity.wolf_big.hurt": {
"sounds": [
"mob/wolf/big/hurt1",
"mob/wolf/big/hurt2",
"mob/wolf/big/hurt3"
],
"subtitle": "subtitles.entity.wolf.hurt"
},
"entity.wolf_big.pant": {
"sounds": [
"mob/wolf/big/panting"
],
"subtitle": "subtitles.entity.wolf.pant"
},
"entity.wolf_big.whine": {
"sounds": [
"mob/wolf/big/whine"
],
"subtitle": "subtitles.entity.wolf.whine"
},
"entity.wolf_cute.ambient": {
"sounds": [
"mob/wolf/cute/bark1",
"mob/wolf/cute/bark2",
"mob/wolf/cute/bark3"
],
"subtitle": "subtitles.entity.wolf.bark"
},
"entity.wolf_cute.death": {
"sounds": [
"mob/wolf/cute/death"
],
"subtitle": "subtitles.entity.wolf.death"
},
"entity.wolf_cute.growl": {
"sounds": [
"mob/wolf/cute/growl1",
"mob/wolf/cute/growl2",
"mob/wolf/cute/growl3"
],
"subtitle": "subtitles.entity.wolf.growl"
},
"entity.wolf_cute.hurt": {
"sounds": [
"mob/wolf/cute/hurt1",
"mob/wolf/cute/hurt2",
"mob/wolf/cute/hurt3"
],
"subtitle": "subtitles.entity.wolf.hurt"
},
"entity.wolf_cute.pant": {
"sounds": [
"mob/wolf/cute/panting"
],
"subtitle": "subtitles.entity.wolf.pant"
},
"entity.wolf_cute.whine": {
"sounds": [
"mob/wolf/cute/whine"
],
"subtitle": "subtitles.entity.wolf.whine"
},
"entity.wolf_grumpy.ambient": {
"sounds": [
"mob/wolf/grumpy/bark1",
"mob/wolf/grumpy/bark2",
"mob/wolf/grumpy/bark3"
],
"subtitle": "subtitles.entity.wolf.bark"
},
"entity.wolf_grumpy.death": {
"sounds": [
"mob/wolf/grumpy/death"
],
"subtitle": "subtitles.entity.wolf.death"
},
"entity.wolf_grumpy.growl": {
"sounds": [
"mob/wolf/grumpy/growl1",
"mob/wolf/grumpy/growl2",
"mob/wolf/grumpy/growl3"
],
"subtitle": "subtitles.entity.wolf.growl"
},
"entity.wolf_grumpy.hurt": {
"sounds": [
"mob/wolf/grumpy/hurt1",
"mob/wolf/grumpy/hurt2",
"mob/wolf/grumpy/hurt3"
],
"subtitle": "subtitles.entity.wolf.hurt"
},
"entity.wolf_grumpy.pant": {
"sounds": [
"mob/wolf/grumpy/panting"
],
"subtitle": "subtitles.entity.wolf.pant"
},
"entity.wolf_grumpy.whine": {
"sounds": [
"mob/wolf/grumpy/whine"
],
"subtitle": "subtitles.entity.wolf.whine"
},
"entity.wolf_puglin.ambient": {
"sounds": [
"mob/wolf/puglin/bark1",
"mob/wolf/puglin/bark2",
"mob/wolf/puglin/bark3"
],
"subtitle": "subtitles.entity.wolf.bark"
},
"entity.wolf_puglin.death": {
"sounds": [
"mob/wolf/puglin/death"
],
"subtitle": "subtitles.entity.wolf.death"
},
"entity.wolf_puglin.growl": {
"sounds": [
"mob/wolf/puglin/growl1",
"mob/wolf/puglin/growl2",
"mob/wolf/puglin/growl3"
],
"subtitle": "subtitles.entity.wolf.growl"
},
"entity.wolf_puglin.hurt": {
"sounds": [
"mob/wolf/puglin/hurt1",
"mob/wolf/puglin/hurt2",
"mob/wolf/puglin/hurt3"
],
"subtitle": "subtitles.entity.wolf.hurt"
},
"entity.wolf_puglin.pant": {
"sounds": [
"mob/wolf/puglin/panting"
],
"subtitle": "subtitles.entity.wolf.pant"
},
"entity.wolf_puglin.whine": {
"sounds": [
"mob/wolf/puglin/whine"
],
"subtitle": "subtitles.entity.wolf.whine"
},
"entity.wolf_sad.ambient": {
"sounds": [
"mob/wolf/sad/bark1",
"mob/wolf/sad/bark2",
"mob/wolf/sad/bark3"
],
"subtitle": "subtitles.entity.wolf.bark"
},
"entity.wolf_sad.death": {
"sounds": [
"mob/wolf/sad/death"
],
"subtitle": "subtitles.entity.wolf.death"
},
"entity.wolf_sad.growl": {
"sounds": [
"mob/wolf/sad/growl1",
"mob/wolf/sad/growl2",
"mob/wolf/sad/growl3"
],
"subtitle": "subtitles.entity.wolf.growl"
},
"entity.wolf_sad.hurt": {
"sounds": [
"mob/wolf/sad/hurt1",
"mob/wolf/sad/hurt2",
"mob/wolf/sad/hurt3"
],
"subtitle": "subtitles.entity.wolf.hurt"
},
"entity.wolf_sad.pant": {
"sounds": [
"mob/wolf/sad/panting"
],
"subtitle": "subtitles.entity.wolf.pant"
},
"entity.wolf_sad.whine": {
"sounds": [
"mob/wolf/sad/whine"
],
"subtitle": "subtitles.entity.wolf.whine"
},
"entity.wolf_whine.whine": {
"sounds": [
"mob/wolf/puglin/whine"
],
"subtitle": "subtitles.entity.wolf.whine"
},
"entity.zoglin.ambient": {
"sounds": [

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -637,6 +637,9 @@ public class PacketConsumers {
if (furniture != null) {
event.setCancelled(true);
}
} else if (entityType == Reflections.instance$EntityType$BLOCK_DISPLAY) {
int entityId = (int) Reflections.field$ClientboundAddEntityPacket$entityId.get(packet);
user.entityView().put(entityId, entityType);
}
} catch (Exception e) {
CraftEngine.instance().logger().warn("Failed to handle ClientboundAddEntityPacket", e);
@@ -966,12 +969,7 @@ public class PacketConsumers {
public static final TriConsumer<NetWorkUser, NMSPacketEvent, Object> SET_ENTITY_DATA = (user, event, packet) -> {
try {
int id = (int) Reflections.field$ClientboundSetEntityDataPacket$id.get(packet);
Object player = user.serverPlayer();
Object level = Reflections.method$Entity$level.invoke(player);
Object entityLookup = Reflections.method$Level$moonrise$getEntityLookup.invoke(level);
Object entity = Reflections.method$EntityLookup$get.invoke(entityLookup, id);
if (entity == null) return;
Object entityType = Reflections.method$Entity$getType.invoke(entity);
Object entityType = user.entityView().get(id);
if (entityType == Reflections.instance$EntityType$BLOCK_DISPLAY) {
List<Object> packedItems = (List<Object>) Reflections.field$ClientboundSetEntityDataPacket$packedItems.get(packet);
for (int i = 0; i < packedItems.size(); i++) {

View File

@@ -70,6 +70,7 @@ public class BukkitServerPlayer extends Player {
private boolean hasClientMod = false;
// for better fake furniture visual sync
private final Map<Integer, List<Integer>> furnitureView = new ConcurrentHashMap<>();
private final Map<Integer, Object> entityView = new ConcurrentHashMap<>();
public BukkitServerPlayer(BukkitCraftEngine plugin, Channel channel) {
this.channel = channel;
@@ -618,6 +619,11 @@ public class BukkitServerPlayer extends Player {
return this.furnitureView;
}
@Override
public Map<Integer, Object> entityView() {
return this.entityView;
}
public void setResendSound() {
resentSoundTick = gameTicks();
}

View File

@@ -40,4 +40,6 @@ public interface NetWorkUser {
boolean clientModEnabled();
void setClientModState(boolean enable);
Map<Integer, Object> entityView();
}

View File

@@ -6,6 +6,7 @@ project_version=0.0.43
config_version=20
lang_version=4
project_group=net.momirealms
latest_supported_version=1.21.5
latest_minecraft_version=1.21.4
# Supported languages