Mirror von
https://github.com/GeyserMC/Geyser.git
synchronisiert 2024-12-25 15:50:14 +01:00
Finish mappings - let it build
Dieser Commit ist enthalten in:
Ursprung
ee5c0e6853
Commit
ed3008f245
@ -71,10 +71,6 @@ dependencies {
|
|||||||
api(libs.events)
|
api(libs.events)
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.test {
|
|
||||||
enabled = false
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.processResources {
|
tasks.processResources {
|
||||||
// This is solely for backwards compatibility for other programs that used this file before the switch to gradle.
|
// This is solely for backwards compatibility for other programs that used this file before the switch to gradle.
|
||||||
// It used to be generated by the maven Git-Commit-Id-Plugin
|
// It used to be generated by the maven Git-Commit-Id-Plugin
|
||||||
|
@ -335,7 +335,7 @@ public class PlayerEntity extends LivingEntity implements GeyserPlayerEntity {
|
|||||||
parrot.updateBedrockMetadata();
|
parrot.updateBedrockMetadata();
|
||||||
SetEntityLinkPacket linkPacket = new SetEntityLinkPacket();
|
SetEntityLinkPacket linkPacket = new SetEntityLinkPacket();
|
||||||
EntityLinkData.Type type = isLeft ? EntityLinkData.Type.RIDER : EntityLinkData.Type.PASSENGER;
|
EntityLinkData.Type type = isLeft ? EntityLinkData.Type.RIDER : EntityLinkData.Type.PASSENGER;
|
||||||
linkPacket.setEntityLink(new EntityLinkData(geyserId, parrot.getGeyserId(), type, false, false));
|
linkPacket.setEntityLink(new EntityLinkData(geyserId, parrot.getGeyserId(), type, false, false, 0f));
|
||||||
// Delay, or else spawned-in players won't get the link
|
// Delay, or else spawned-in players won't get the link
|
||||||
// TODO: Find a better solution.
|
// TODO: Find a better solution.
|
||||||
session.scheduleInEventLoop(() -> session.sendUpstreamPacket(linkPacket), 500, TimeUnit.MILLISECONDS);
|
session.scheduleInEventLoop(() -> session.sendUpstreamPacket(linkPacket), 500, TimeUnit.MILLISECONDS);
|
||||||
|
@ -64,11 +64,13 @@ public class Item {
|
|||||||
protected final Key javaIdentifier;
|
protected final Key javaIdentifier;
|
||||||
private int javaId = -1;
|
private int javaId = -1;
|
||||||
private final int attackDamage;
|
private final int attackDamage;
|
||||||
private final DataComponents baseComponents; // unmodifiable
|
private DataComponents baseComponents; // unmodifiable
|
||||||
|
|
||||||
public Item(String javaIdentifier, Builder builder) {
|
public Item(String javaIdentifier, Builder builder) {
|
||||||
this.javaIdentifier = MinecraftKey.key(javaIdentifier);
|
this.javaIdentifier = MinecraftKey.key(javaIdentifier);
|
||||||
this.baseComponents = builder.components == null ? Registries.DEFAULT_DATA_COMPONENTS.get(javaId) : builder.components;
|
if (builder.components != null) {
|
||||||
|
this.baseComponents = builder.components;
|
||||||
|
}
|
||||||
this.attackDamage = builder.attackDamage;
|
this.attackDamage = builder.attackDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -272,6 +274,9 @@ public class Item {
|
|||||||
throw new RuntimeException("Item ID has already been set!");
|
throw new RuntimeException("Item ID has already been set!");
|
||||||
}
|
}
|
||||||
this.javaId = javaId;
|
this.javaId = javaId;
|
||||||
|
if (this.baseComponents == null) {
|
||||||
|
this.baseComponents = Registries.DEFAULT_DATA_COMPONENTS.get(javaId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -25,19 +25,20 @@
|
|||||||
|
|
||||||
package org.geysermc.geyser.registry.populator;
|
package org.geysermc.geyser.registry.populator;
|
||||||
|
|
||||||
import io.jsonwebtoken.lang.Collections;
|
|
||||||
import org.cloudburstmc.nbt.NbtMap;
|
import org.cloudburstmc.nbt.NbtMap;
|
||||||
import org.geysermc.geyser.GeyserImpl;
|
import org.cloudburstmc.nbt.NbtMapBuilder;
|
||||||
import org.geysermc.geyser.level.block.Blocks;
|
import org.geysermc.geyser.level.block.Blocks;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public class Conversion766_748 {
|
public class Conversion766_748 {
|
||||||
static List<String> newBlockIds = new ArrayList<>();
|
static List<String> PALE_WOODEN_BLOCKS = new ArrayList<>();
|
||||||
static List<String> bedrockIds = new ArrayList<>(); // TODO temp remove
|
static List<String> OTHER_NEW_BLOCKS = new ArrayList<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
var blocks = Collections.of(
|
Set.of(
|
||||||
Blocks.PALE_OAK_WOOD,
|
Blocks.PALE_OAK_WOOD,
|
||||||
Blocks.PALE_OAK_PLANKS,
|
Blocks.PALE_OAK_PLANKS,
|
||||||
Blocks.PALE_OAK_SAPLING,
|
Blocks.PALE_OAK_SAPLING,
|
||||||
@ -45,27 +46,29 @@ public class Conversion766_748 {
|
|||||||
Blocks.STRIPPED_PALE_OAK_LOG,
|
Blocks.STRIPPED_PALE_OAK_LOG,
|
||||||
Blocks.STRIPPED_PALE_OAK_WOOD,
|
Blocks.STRIPPED_PALE_OAK_WOOD,
|
||||||
Blocks.PALE_OAK_LEAVES,
|
Blocks.PALE_OAK_LEAVES,
|
||||||
Blocks.PALE_OAK_SIGN,
|
|
||||||
Blocks.PALE_OAK_WALL_SIGN,
|
|
||||||
Blocks.PALE_OAK_HANGING_SIGN,
|
Blocks.PALE_OAK_HANGING_SIGN,
|
||||||
Blocks.PALE_OAK_WALL_HANGING_SIGN,
|
|
||||||
Blocks.PALE_OAK_PRESSURE_PLATE,
|
Blocks.PALE_OAK_PRESSURE_PLATE,
|
||||||
Blocks.PALE_OAK_TRAPDOOR,
|
Blocks.PALE_OAK_TRAPDOOR,
|
||||||
Blocks.POTTED_PALE_OAK_SAPLING,
|
|
||||||
Blocks.PALE_OAK_BUTTON,
|
Blocks.PALE_OAK_BUTTON,
|
||||||
Blocks.PALE_OAK_STAIRS,
|
Blocks.PALE_OAK_STAIRS,
|
||||||
Blocks.PALE_OAK_SLAB,
|
Blocks.PALE_OAK_SLAB,
|
||||||
Blocks.PALE_OAK_FENCE_GATE,
|
Blocks.PALE_OAK_FENCE_GATE,
|
||||||
Blocks.PALE_OAK_FENCE,
|
Blocks.PALE_OAK_FENCE,
|
||||||
Blocks.PALE_OAK_DOOR,
|
Blocks.PALE_OAK_DOOR
|
||||||
|
).forEach(block -> PALE_WOODEN_BLOCKS.add(block.javaIdentifier().value()));
|
||||||
|
|
||||||
|
// Some things are of course stupid
|
||||||
|
PALE_WOODEN_BLOCKS.add("pale_oak_standing_sign");
|
||||||
|
PALE_WOODEN_BLOCKS.add("pale_oak_wall_sign");
|
||||||
|
PALE_WOODEN_BLOCKS.add("pale_oak_double_slab");
|
||||||
|
|
||||||
|
Set.of(
|
||||||
Blocks.PALE_MOSS_BLOCK,
|
Blocks.PALE_MOSS_BLOCK,
|
||||||
Blocks.PALE_MOSS_CARPET,
|
Blocks.PALE_MOSS_CARPET,
|
||||||
Blocks.PALE_HANGING_MOSS,
|
Blocks.PALE_HANGING_MOSS,
|
||||||
|
|
||||||
Blocks.OPEN_EYEBLOSSOM,
|
Blocks.OPEN_EYEBLOSSOM,
|
||||||
Blocks.CLOSED_EYEBLOSSOM,
|
Blocks.CLOSED_EYEBLOSSOM,
|
||||||
Blocks.POTTED_OPEN_EYEBLOSSOM,
|
|
||||||
Blocks.POTTED_CLOSED_EYEBLOSSOM,
|
|
||||||
|
|
||||||
Blocks.RESIN_CLUMP,
|
Blocks.RESIN_CLUMP,
|
||||||
Blocks.RESIN_BLOCK,
|
Blocks.RESIN_BLOCK,
|
||||||
@ -76,29 +79,50 @@ public class Conversion766_748 {
|
|||||||
Blocks.CHISELED_RESIN_BRICKS,
|
Blocks.CHISELED_RESIN_BRICKS,
|
||||||
|
|
||||||
Blocks.CREAKING_HEART
|
Blocks.CREAKING_HEART
|
||||||
);
|
).forEach(block -> OTHER_NEW_BLOCKS.add(block.javaIdentifier().value()));
|
||||||
|
|
||||||
blocks.forEach(block -> newBlockIds.add(block.javaIdentifier().value()));
|
OTHER_NEW_BLOCKS.add("resin_brick_double_slab");
|
||||||
}
|
}
|
||||||
|
|
||||||
static NbtMap remapBlock(NbtMap tag) {
|
static NbtMap remapBlock(NbtMap tag) {
|
||||||
|
String name = tag.getString("name").replace("minecraft:", "");
|
||||||
GeyserImpl.getInstance().getLogger().info(tag.toString());
|
if (PALE_WOODEN_BLOCKS.contains(name)) {
|
||||||
|
return withName(tag, name.replace("pale_oak", "birch"));
|
||||||
String name = tag.getString("name");
|
|
||||||
if (newBlockIds.contains(name)) {
|
|
||||||
bedrockIds.add(name);
|
|
||||||
// TODO
|
|
||||||
return tag.toBuilder()
|
|
||||||
.putCompound("states", NbtMap.builder().build())
|
|
||||||
.putString("name", "minecraft:unknown")
|
|
||||||
.build();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name.contains("resin") || name.contains("creaking") || name.contains("pale")) {
|
if (OTHER_NEW_BLOCKS.contains(name)) {
|
||||||
throw new RuntimeException("ya missed " + name);
|
return switch (name) {
|
||||||
|
case "resin_brick_double_slab" -> withName(tag,"red_sandstone_double_slab");
|
||||||
|
case "pale_moss_block" -> withName(tag, "moss_block");
|
||||||
|
case "pale_moss_carpet" -> withoutStates("moss_carpet");
|
||||||
|
case "pale_hanging_moss" -> withoutStates("hanging_roots");
|
||||||
|
case "open_eyeblossom" -> withoutStates("oxeye_daisy");
|
||||||
|
case "closed_eyeblossom" -> withoutStates("white_tulip");
|
||||||
|
case "resin_clump" -> withoutStates("unknown");
|
||||||
|
case "resin_block" -> withoutStates("red_sandstone");
|
||||||
|
case "resin_bricks" -> withoutStates("cut_red_sandstone");
|
||||||
|
case "resin_brick_stairs" -> withName(tag, "red_sandstone_stairs");
|
||||||
|
case "resin_brick_slab" -> withName(tag, "red_sandstone_slab");
|
||||||
|
case "resin_brick_wall" -> withName(tag, "red_sandstone_wall");
|
||||||
|
case "chiseled_resin_bricks" -> withName(tag, "chiseled_red_sandstone");
|
||||||
|
case "creaking_heart" -> withoutStates("chiseled_polished_blackstone");
|
||||||
|
default -> throw new IllegalStateException("missing replacement for new block! " + name);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static NbtMap withName(NbtMap tag, String name) {
|
||||||
|
NbtMapBuilder builder = tag.toBuilder();
|
||||||
|
builder.replace("name", "minecraft:" + name);
|
||||||
|
return builder.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
static NbtMap withoutStates(String name) {
|
||||||
|
NbtMapBuilder tagBuilder = NbtMap.builder();
|
||||||
|
tagBuilder.putString("name", "minecraft:" + name);
|
||||||
|
tagBuilder.putCompound("states", NbtMap.builder().build());
|
||||||
|
return tagBuilder.build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ public class MerchantInventoryTranslator extends BaseInventoryTranslator {
|
|||||||
|
|
||||||
SetEntityLinkPacket linkPacket = new SetEntityLinkPacket();
|
SetEntityLinkPacket linkPacket = new SetEntityLinkPacket();
|
||||||
EntityLinkData.Type type = EntityLinkData.Type.PASSENGER;
|
EntityLinkData.Type type = EntityLinkData.Type.PASSENGER;
|
||||||
linkPacket.setEntityLink(new EntityLinkData(session.getPlayerEntity().getGeyserId(), geyserId, type, true, false));
|
linkPacket.setEntityLink(new EntityLinkData(session.getPlayerEntity().getGeyserId(), geyserId, type, true, false, 0f));
|
||||||
session.sendUpstreamPacket(linkPacket);
|
session.sendUpstreamPacket(linkPacket);
|
||||||
|
|
||||||
merchantInventory.setVillager(villager);
|
merchantInventory.setVillager(villager);
|
||||||
|
@ -91,7 +91,7 @@ public class BedrockInteractTranslator extends PacketTranslator<InteractPacket>
|
|||||||
// If the server doesn't agree with our dismount (sends a packet saying we dismounted),
|
// If the server doesn't agree with our dismount (sends a packet saying we dismounted),
|
||||||
// then remount the player.
|
// then remount the player.
|
||||||
SetEntityLinkPacket linkPacket = new SetEntityLinkPacket();
|
SetEntityLinkPacket linkPacket = new SetEntityLinkPacket();
|
||||||
linkPacket.setEntityLink(new EntityLinkData(vehicleBedrockId, session.getPlayerEntity().getGeyserId(), EntityLinkData.Type.PASSENGER, true, false));
|
linkPacket.setEntityLink(new EntityLinkData(vehicleBedrockId, session.getPlayerEntity().getGeyserId(), EntityLinkData.Type.PASSENGER, true, false, 0f));
|
||||||
session.sendUpstreamPacket(linkPacket);
|
session.sendUpstreamPacket(linkPacket);
|
||||||
}
|
}
|
||||||
}, 1, TimeUnit.SECONDS));
|
}, 1, TimeUnit.SECONDS));
|
||||||
|
@ -70,7 +70,7 @@ public class JavaSetPassengersTranslator extends PacketTranslator<ClientboundSet
|
|||||||
boolean rider = packet.getPassengerIds()[0] == passengerId;
|
boolean rider = packet.getPassengerIds()[0] == passengerId;
|
||||||
EntityLinkData.Type type = rider ? EntityLinkData.Type.RIDER : EntityLinkData.Type.PASSENGER;
|
EntityLinkData.Type type = rider ? EntityLinkData.Type.RIDER : EntityLinkData.Type.PASSENGER;
|
||||||
SetEntityLinkPacket linkPacket = new SetEntityLinkPacket();
|
SetEntityLinkPacket linkPacket = new SetEntityLinkPacket();
|
||||||
linkPacket.setEntityLink(new EntityLinkData(entity.getGeyserId(), passenger.getGeyserId(), type, false, false));
|
linkPacket.setEntityLink(new EntityLinkData(entity.getGeyserId(), passenger.getGeyserId(), type, false, false, 0f));
|
||||||
session.sendUpstreamPacket(linkPacket);
|
session.sendUpstreamPacket(linkPacket);
|
||||||
newPassengers.add(passenger);
|
newPassengers.add(passenger);
|
||||||
|
|
||||||
@ -88,7 +88,7 @@ public class JavaSetPassengersTranslator extends PacketTranslator<ClientboundSet
|
|||||||
}
|
}
|
||||||
if (!newPassengers.contains(passenger)) {
|
if (!newPassengers.contains(passenger)) {
|
||||||
SetEntityLinkPacket linkPacket = new SetEntityLinkPacket();
|
SetEntityLinkPacket linkPacket = new SetEntityLinkPacket();
|
||||||
linkPacket.setEntityLink(new EntityLinkData(entity.getGeyserId(), passenger.getGeyserId(), EntityLinkData.Type.REMOVE, false, false));
|
linkPacket.setEntityLink(new EntityLinkData(entity.getGeyserId(), passenger.getGeyserId(), EntityLinkData.Type.REMOVE, false, false, 0f));
|
||||||
session.sendUpstreamPacket(linkPacket);
|
session.sendUpstreamPacket(linkPacket);
|
||||||
|
|
||||||
passenger.setVehicle(null);
|
passenger.setVehicle(null);
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren