Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/bleeding' into refactor/items
Browse files Browse the repository at this point in the history
# Conflicts:
#	src/main/java/org/cloudburstmc/server/block/behavior/BaseBlockBehavior.java
#	src/main/java/org/cloudburstmc/server/block/behavior/BlockBehaviorDeadBush.java
#	src/main/java/org/cloudburstmc/server/block/behavior/BlockBehaviorDoublePlant.java
#	src/main/java/org/cloudburstmc/server/block/behavior/BlockBehaviorFence.java
#	src/main/java/org/cloudburstmc/server/block/behavior/BlockBehaviorFlower.java
#	src/main/java/org/cloudburstmc/server/block/behavior/BlockBehaviorJukebox.java
#	src/main/java/org/cloudburstmc/server/block/behavior/BlockBehaviorLog.java
#	src/main/java/org/cloudburstmc/server/block/behavior/BlockBehaviorMagma.java
#	src/main/java/org/cloudburstmc/server/block/behavior/BlockBehaviorPlanks.java
#	src/main/java/org/cloudburstmc/server/block/behavior/BlockBehaviorRailActivator.java
#	src/main/java/org/cloudburstmc/server/block/behavior/BlockBehaviorSapling.java
#	src/main/java/org/cloudburstmc/server/block/behavior/BlockBehaviorTallGrass.java
#	src/main/java/org/cloudburstmc/server/block/behavior/BlockBehaviorWood.java
#	src/main/java/org/cloudburstmc/server/block/behavior/ReedsBlockBehavior.java
#	src/main/java/org/cloudburstmc/server/enchantment/CloudEnchantmentInstance.java
#	src/main/java/org/cloudburstmc/server/item/behavior/ItemBowBehavior.java
#	src/main/java/org/cloudburstmc/server/item/serializer/DefaultItemSerializer.java
#	src/main/java/org/cloudburstmc/server/item/serializer/DyeSerializer.java
#	src/main/java/org/cloudburstmc/server/item/serializer/RecordSerializer.java
#	src/main/java/org/cloudburstmc/server/item/serializer/SpawnEggSerializer.java
#	src/main/java/org/cloudburstmc/server/player/CloudPlayer.java
#	src/main/java/org/cloudburstmc/server/player/handler/PlayerPacketHandler.java
#	src/main/java/org/cloudburstmc/server/registry/CloudBlockRegistry.java
#	src/main/java/org/cloudburstmc/server/registry/CloudItemRegistry.java
  • Loading branch information
Creeperface01 committed Jun 15, 2022
2 parents 2a99174 + 2554430 commit a5951ab
Show file tree
Hide file tree
Showing 17 changed files with 783 additions and 332 deletions.
4 changes: 2 additions & 2 deletions server/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ pipeline {
}
stages {
stage ('Build') {
when { anyOf {
when { not { anyOf {
branch 'stable'
branch 'beta'
branch 'bleeding'
}}
}}}

steps {
sh 'mvn clean package'
Expand Down
6 changes: 3 additions & 3 deletions server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ Links
* __[News](https://cloudburstmc.org)__
* __[Forums](https://cloudburstmc.org/forums)__
* __[Discord](https://discord.gg/5PzMkyK)__
* __[Download](https://ci.nukkitx.com/job/NukkitX/job/Server/job/master/)__
* __[Plugins](https://cloudburstmc.org/resources/categories/nukkit-plugins.1)__
* __[Wiki](https://cloudburstmc.org/wiki/nukkit)__
* __[Download](https://ci.opencollab.dev/job/NukkitX/job/Server/job/bleeding/)__
* __[Plugins](https://cloudburstmc.org/resources/categories/cloudburst-plugins.19/)__
* __[Wiki](https://cloudburstmc.org/wiki/cloudburst)__

Build JAR file
-------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ public class MultiBlockSerializers {
.add(BedrockStateTags.TAG_NEW_LOG_TYPE, TreeSpecies.DARK_OAK.name().toLowerCase(), LOG2)
.add(BedrockStateTags.TAG_NEW_LOG_TYPE, TreeSpecies.WARPED.name().toLowerCase(), WARPED_STEM, true)
.add(BedrockStateTags.TAG_NEW_LOG_TYPE, TreeSpecies.CRIMSON.name().toLowerCase(), CRIMSON_STEM, true)
.add(BedrockStateTags.TAG_NEW_LOG_TYPE, TreeSpecies.MANGROVE.name().toLowerCase(), MANGROVE_LOG, true)
.add(
STRIPPED_OAK_LOG,
Builder.combine(BedrockStateTags.TAG_OLD_LOG_TYPE, TreeSpecies.OAK.name().toLowerCase(), true),
Expand Down Expand Up @@ -150,13 +151,26 @@ public class MultiBlockSerializers {
Builder.combine(BedrockStateTags.TAG_NEW_LOG_TYPE, TreeSpecies.WARPED.name().toLowerCase(), true),
Builder.combine(BedrockStateTags.TAG_STRIPPED_BIT, true, true)
)
.add(
STRIPPED_MANGROVE_LOG,
Builder.combine(BedrockStateTags.TAG_NEW_LOG_TYPE, TreeSpecies.MANGROVE.name().toLowerCase(), true),
Builder.combine(BedrockStateTags.TAG_STRIPPED_BIT, true, true)
)
.buildSerializer();

public static final MultiBlockSerializer LEAVES = builder()
.add(BedrockStateTags.TAG_OLD_LEAF_TYPE, BlockIds.LEAVES)
.add(BedrockStateTags.TAG_NEW_LEAF_TYPE, LEAVES2)
.buildSerializer();

// public static final MultiBlockSerializer SAPLING = builder()
// .add(
// MANGROVE_PROPAGULE,
// Builder.combine(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.MANGROVE.name().toLowerCase(Locale.ROOT), true)
// )
// .defaultId(BlockIds.SAPLING)
// .buildSerializer();

// public static final MultiBlockSerializer SAPLING = builder()
// .add(BedrockStateTags.TAG_SAPLING_TYPE, TreeSpecies.CRIMSON.name().toLowerCase(), CRIMSON_FUNGUS, true)
// .add(BedrockStateTags.TAG_SAPLING_TYPE, TreeSpecies.WARPED.name().toLowerCase(), WARPED_FUNGUS, true)
Expand Down Expand Up @@ -206,6 +220,7 @@ public class MultiBlockSerializers {
public static final MultiBlockSerializer PLANKS = builder()
.add(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.WARPED.name().toLowerCase(), WARPED_PLANKS, true)
.add(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.CRIMSON.name().toLowerCase(), CRIMSON_PLANKS, true)
.add(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.MANGROVE.name().toLowerCase(), MANGROVE_PLANKS, true)
.defaultId(BlockIds.OAK_PLANKS)
.buildSerializer();

Expand All @@ -217,7 +232,8 @@ public class MultiBlockSerializers {
ACACIA_STAIRS,
DARK_OAK_STAIRS,
CRIMSON_STAIRS,
WARPED_STAIRS
WARPED_STAIRS,
MANGROVE_STAIRS
);

public static final MultiBlockSerializer WOOD_BUTTON = buildTreeSpecies(BedrockStateTags.TAG_WOOD_TYPE,
Expand All @@ -228,7 +244,8 @@ public class MultiBlockSerializers {
ACACIA_BUTTON,
DARK_OAK_BUTTON,
CRIMSON_BUTTON,
WARPED_BUTTON
WARPED_BUTTON,
MANGROVE_BUTTON
);

public static final MultiBlockSerializer WOOD_DOOR = buildTreeSpecies(BedrockStateTags.TAG_WOOD_TYPE,
Expand All @@ -239,7 +256,8 @@ public class MultiBlockSerializers {
ACACIA_DOOR,
DARK_OAK_DOOR,
CRIMSON_DOOR,
WARPED_DOOR
WARPED_DOOR,
MANGROVE_DOOR
);

public static final MultiBlockSerializer WOOD_FENCE_GATE = buildTreeSpecies(BedrockStateTags.TAG_WOOD_TYPE,
Expand All @@ -250,7 +268,8 @@ public class MultiBlockSerializers {
ACACIA_FENCE_GATE,
DARK_OAK_FENCE_GATE,
CRIMSON_FENCE_GATE,
WARPED_FENCE_GATE
WARPED_FENCE_GATE,
MANGROVE_FENCE_GATE
);

public static final MultiBlockSerializer WOOD_PRESSURE_PLATE = buildTreeSpecies(BedrockStateTags.TAG_WOOD_TYPE,
Expand All @@ -261,7 +280,8 @@ public class MultiBlockSerializers {
ACACIA_PRESSURE_PLATE,
DARK_OAK_PRESSURE_PLATE,
CRIMSON_PRESSURE_PLATE,
WARPED_PRESSURE_PLATE
WARPED_PRESSURE_PLATE,
MANGROVE_PRESSURE_PLATE
);

public static final MultiBlockSerializer WOOD_STANDING_SIGN = buildTreeSpecies(BedrockStateTags.TAG_WOOD_TYPE,
Expand All @@ -272,7 +292,8 @@ public class MultiBlockSerializers {
ACACIA_STANDING_SIGN,
DARK_OAK_STANDING_SIGN,
CRIMSON_STANDING_SIGN,
WARPED_STANDING_SIGN
WARPED_STANDING_SIGN,
MANGROVE_STANDING_SIGN
);

public static final MultiBlockSerializer WOOD_TRAPDOOR = buildTreeSpecies(BedrockStateTags.TAG_WOOD_TYPE,
Expand All @@ -283,7 +304,8 @@ public class MultiBlockSerializers {
ACACIA_TRAPDOOR,
DARK_OAK_TRAPDOOR,
CRIMSON_TRAPDOOR,
WARPED_TRAPDOOR
WARPED_TRAPDOOR,
MANGROVE_TRAPDOOR
);

public static final MultiBlockSerializer WOOD_WALL_SIGN = buildTreeSpecies(BedrockStateTags.TAG_WOOD_TYPE,
Expand All @@ -294,12 +316,14 @@ public class MultiBlockSerializers {
ACACIA_WALL_SIGN,
DARK_OAK_WALL_SIGN,
CRIMSON_WALL_SIGN,
WARPED_WALL_SIGN
WARPED_WALL_SIGN,
MANGROVE_WALL_SIGN
);

public static final MultiBlockSerializer WOOD_FENCE = builder()
.add(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.WARPED.name().toLowerCase(), WARPED_FENCE, true)
.add(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.CRIMSON.name().toLowerCase(), CRIMSON_FENCE, true)
.add(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.MANGROVE.name().toLowerCase(), MANGROVE_FENCE, true)
.defaultId(BlockIds.FENCE)
.buildSerializer();

Expand All @@ -314,6 +338,16 @@ public class MultiBlockSerializers {
Builder.combine(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.CRIMSON.name().toLowerCase(), true),
Builder.combine(BedrockStateTags.TAG_STRIPPED_BIT, false, true)
)
.add(
MANGROVE_WOOD,
Builder.combine(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.MANGROVE.name().toLowerCase(), true),
Builder.combine(BedrockStateTags.TAG_STRIPPED_BIT, false, false)
)
.add(
MANGROVE_WOOD,
Builder.combine(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.MANGROVE.name().toLowerCase(), true),
Builder.combine(BedrockStateTags.TAG_STRIPPED_BIT, true, false)
)
.add(
STRIPPED_CRIMSON_HYPHAE,
Builder.combine(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.CRIMSON.name().toLowerCase(), true),
Expand All @@ -324,13 +358,19 @@ public class MultiBlockSerializers {
Builder.combine(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.WARPED.name().toLowerCase(), true),
Builder.combine(BedrockStateTags.TAG_STRIPPED_BIT, true, true)
)
// .add(
// STRIPPED_MANGROVE_WOOD,
// Builder.combine(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.MANGROVE.name().toLowerCase(), true),
// Builder.combine(BedrockStateTags.TAG_STRIPPED_BIT, true, false)
// )
.defaultId(BlockIds.WOOD)
.buildSerializer();

public static final MultiBlockSerializer WOODEN_SLAB = builder()
.removeTrait("slab_slot")
.add(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.WARPED.name().toLowerCase(), WARPED_SLAB, true)
.add(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.CRIMSON.name().toLowerCase(), CRIMSON_SLAB, true)
.add(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.MANGROVE.name().toLowerCase(), MANGROVE_SLAB, true)
.add(DOUBLE_WOODEN_SLAB, Builder.combine("slab_slot"))
.add(
CRIMSON_DOUBLE_SLAB,
Expand All @@ -342,6 +382,11 @@ public class MultiBlockSerializers {
Builder.combine(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.WARPED.name().toLowerCase(), true),
Builder.combine("slab_slot")
)
.add(
MANGROVE_DOUBLE_SLAB,
Builder.combine(BedrockStateTags.TAG_WOOD_TYPE, TreeSpecies.MANGROVE.name().toLowerCase(), true),
Builder.combine("slab_slot")
)
.baseSerializer(NoopBlockSerializer.INSTANCE)
.defaultId(BlockIds.OAK_SLAB)
.buildSerializer();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ public class BedrockStateTags {
public static final String TAG_FLOWER_TYPE = "flower_type";
public static final String TAG_GROUND_SIGN_DIRECTION = "ground_sign_direction";
public static final String TAG_GROWTH = "growth";
public static final String TAG_PROPAGULE_STAGE = "propagule_stage";
public static final String TAG_HANGING = "hanging";
public static final String TAG_HEAD_PIECE_BIT = "head_piece_bit";
public static final String TAG_HEIGHT = "height";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ public String getName(BlockType type, Map<BlockTrait<?>, Comparable<?>> traits,
species = (TreeSpecies) traits.get(BlockTraits.TREE_SPECIES_NETHER);
}

int index = species.ordinal() >> 2;
// System.out.println(species.name());
int index = species.ordinal() < 4 ? 0 : 1;

if (type == BlockTypes.LOG) {
return BEDROCK_LOG_TRAITS[index];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public class JukeboxBlockEntity extends BaseBlockEntity implements Jukebox {
SOUND_MAP.put(Record.WARD, SoundEvent.RECORD_WARD);
SOUND_MAP.put(Record.ELEVEN, SoundEvent.RECORD_11);
SOUND_MAP.put(Record.WAIT, SoundEvent.RECORD_WAIT);
SOUND_MAP.put(Record.PIGSTEP, SoundEvent.RECORD_PIGSTEP);
}

private ItemStack recordItem;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ public short getIdByName(String value) throws NumberFormatException {
case "silk_touch":
return 16;
case "durability":
case "unbreaking":
return 17;
case "fortune":
return 18;
Expand All @@ -142,9 +143,9 @@ public short getIdByName(String value) throws NumberFormatException {
return 28;
case "impaling":
return 29;
case "loyality":
return 30;
case "riptide":
return 30;
case "loyalty":
return 31;
case "channeling":
return 32;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,10 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args)
sender.sendMessage(new TranslationContainer(TextFormat.RED + "%commands.generic.permission"));
return true;
}
if (!(sender instanceof CloudPlayer)) {
sender.sendMessage(new TranslationContainer("commands.locate.fail.noplayer"));
return true;
}
EntityDamageEvent ev = new EntityDamageEvent((CloudPlayer) sender, EntityDamageEvent.DamageCause.SUICIDE, 1000);
sender.getServer().getEventManager().fire(ev);
if (ev.isCancelled()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ public void loadAdditionalData(NbtMap tag) {
skinTag.listenForString("GeometryName", skin::geometryName);
skinTag.listenForString("SkinResourcePatch", skin::skinResourcePatch);
skinTag.listenForByteArray("GeometryData", bytes -> skin.geometryData(new String(bytes, UTF_8)));
skinTag.listenForByteArray("AnimationData", bytes -> skin.animationData(new String(bytes, UTF_8)));
skinTag.listenForByteArray("SkinAnimationData", bytes -> skin.animationData(new String(bytes, UTF_8)));
skinTag.listenForBoolean("PremiumSkin", skin::premium);
skinTag.listenForBoolean("PersonaSkin", skin::persona);
skinTag.listenForBoolean("CapeOnClassicSkin", skin::capeOnClassic);
Expand Down Expand Up @@ -188,7 +188,7 @@ public void saveAdditionalData(NbtMapBuilder tag) {
.putInt("CapeImageHeight", nbtSkin.getCapeData().getHeight())
.putByteArray("SkinResourcePatch", nbtSkin.getSkinResourcePatch().getBytes(UTF_8))
.putByteArray("GeometryData", nbtSkin.getGeometryData().getBytes(UTF_8))
.putByteArray("AnimationData", nbtSkin.getAnimationData().getBytes(UTF_8))
.putByteArray("SkinAnimationData", nbtSkin.getAnimationData().getBytes(UTF_8))
.putBoolean("PremiumSkin", nbtSkin.isPremium())
.putBoolean("PersonaSkin", nbtSkin.isPersona())
.putBoolean("CapeOnClassicSkin", nbtSkin.isCapeOnClassic());
Expand All @@ -204,7 +204,7 @@ public void saveAdditionalData(NbtMapBuilder tag) {
.putByteArray("Image", animation.getImage().getImage())
.build());
}
skinTag.putList("AnimationImageData", NbtType.COMPOUND, animationsTag);
skinTag.putList("AnimatedImageData", NbtType.COMPOUND, animationsTag);
}
tag.putCompound("Skin", skinTag.build());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public void onCollideWithEntity(Entity entity) {

if (this.fireTicks > 0) {
EntityCombustByEntityEvent event = new EntityCombustByEntityEvent(this, entity, 5);
this.server.getEventManager().fire(ev);
this.server.getEventManager().fire(event);
if (!event.isCancelled()) {
entity.setOnFire(event.getDuration());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public boolean equipItem(int slot) {
}

private boolean isHotbarSlot(int slot) {
return slot >= 0 && slot <= this.getHotbarSize();
return slot >= 0 && slot < this.getHotbarSize();
}

private PlayerCursorInventory getCursor() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@ public class TreeSpeciesSerializer extends DefaultItemSerializer {

private static final Map<Class<?>, Object> DEFAULT_VALUES;

public static final TreeSpeciesSerializer DOOR = new TreeSpeciesSerializer(ItemIds.WOODEN_DOOR, ItemIds.SPRUCE_DOOR, ItemIds.BIRCH_DOOR, ItemIds.JUNGLE_DOOR, ItemIds.ACACIA_DOOR, ItemIds.DARK_OAK_DOOR, ItemIds.CRIMSON_DOOR, ItemIds.WARPED_DOOR);
public static final TreeSpeciesSerializer SIGN = new TreeSpeciesSerializer(ItemIds.SIGN, ItemIds.SPRUCE_SIGN, ItemIds.BIRCH_SIGN, ItemIds.JUNGLE_SIGN, ItemIds.ACACIA_SIGN, ItemIds.DARK_OAK_SIGN, ItemIds.CRIMSON_SIGN, ItemIds.WARPED_SIGN);
public static final TreeSpeciesSerializer BOAT = new TreeSpeciesSerializer(ItemIds.OAK_BOAT, ItemIds.SPRUCE_BOAT, ItemIds.BIRCH_BOAT, ItemIds.JUNGLE_BOAT, ItemIds.ACACIA_BOAT, ItemIds.DARK_OAK_BOAT, ItemIds.BOAT, ItemIds.BOAT);
public static final TreeSpeciesSerializer DOOR = new TreeSpeciesSerializer(ItemIds.WOODEN_DOOR, ItemIds.SPRUCE_DOOR, ItemIds.BIRCH_DOOR, ItemIds.JUNGLE_DOOR, ItemIds.ACACIA_DOOR, ItemIds.DARK_OAK_DOOR, ItemIds.CRIMSON_DOOR, ItemIds.WARPED_DOOR, ItemIds.MANGROVE_DOOR);
public static final TreeSpeciesSerializer SIGN = new TreeSpeciesSerializer(ItemIds.SIGN, ItemIds.SPRUCE_SIGN, ItemIds.BIRCH_SIGN, ItemIds.JUNGLE_SIGN, ItemIds.ACACIA_SIGN, ItemIds.DARK_OAK_SIGN, ItemIds.CRIMSON_SIGN, ItemIds.WARPED_SIGN, ItemIds.MANGROVE_SIGN);
public static final TreeSpeciesSerializer BOAT = new TreeSpeciesSerializer(ItemIds.OAK_BOAT, ItemIds.SPRUCE_BOAT, ItemIds.BIRCH_BOAT, ItemIds.JUNGLE_BOAT, ItemIds.ACACIA_BOAT, ItemIds.DARK_OAK_BOAT, ItemIds.BOAT, ItemIds.BOAT, ItemIds.MANGROVE_BOAT);

public static final TreeSpeciesSerializer CHEST_BOAT = new TreeSpeciesSerializer(ItemIds.OAK_CHEST_BOAT, ItemIds.SPRUCE_CHEST_BOAT, ItemIds.BIRCH_CHEST_BOAT, ItemIds.JUNGLE_CHEST_BOAT, ItemIds.ACACIA_CHEST_BOAT, ItemIds.DARK_OAK_CHEST_BOAT, ItemIds.OAK_CHEST_BOAT, ItemIds.OAK_CHEST_BOAT, ItemIds.MANGROVE_CHEST_BOAT);

private final Identifier[] identifiers;
private final Reference2ObjectMap<Identifier, TreeSpecies> dataMap = new Reference2ObjectOpenHashMap<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.extern.log4j.Log4j2;
import org.cloudburstmc.api.level.Location;
import org.cloudburstmc.server.CloudServer;
import org.cloudburstmc.server.math.NukkitMath;

@Log4j2
public enum EnumLevel {
Expand Down Expand Up @@ -49,12 +50,12 @@ public static Location moveToNether(Location current) {
CloudLevel level;
if (current.getLevel() == OVERWORLD.level) {
x = mRound(current.getFloorX() >> 3, 128);
y = mRound(current.getFloorY(), 32);
y = NukkitMath.clamp(mRound(current.getFloorY(), 32), 70, 128 - 10);
z = mRound(current.getFloorZ() >> 3, 128);
level = NETHER.level;
} else if (current.getLevel() == NETHER.level) {
x = mRound(current.getFloorX() << 3, 1024);
y = mRound(current.getFloorY(), 32);
y = NukkitMath.clamp(mRound(current.getFloorY(), 32), 70, 256 - 10);
z = mRound(current.getFloorZ() << 3, 1024);
level = OVERWORLD.level;
} else {
Expand Down
Loading

0 comments on commit a5951ab

Please sign in to comment.