Skip to content

Commit c3a9e94

Browse files
committed
Bedrock 1.20.60
1 parent b5a72d4 commit c3a9e94

File tree

95 files changed

+1121
-350
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+1121
-350
lines changed

.mvn/wrapper/maven-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@
1414
# KIND, either express or implied. See the License for the
1515
# specific language governing permissions and limitations
1616
# under the License.
17-
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.4/apache-maven-3.9.4-bin.zip
17+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip
1818
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,12 @@
276276
<version>1.25.0</version>
277277
<scope>compile</scope>
278278
</dependency>
279+
<dependency>
280+
<groupId>org.xerial.snappy</groupId>
281+
<artifactId>snappy-java</artifactId>
282+
<version>1.1.10.5</version>
283+
<scope>compile</scope>
284+
</dependency>
279285
</dependencies>
280286

281287
<build>

src/main/java/cn/nukkit/GameVersion.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public enum GameVersion {
5050
V1_20_30(618, "1.20.30"),
5151
V1_20_40(622, "1.20.40"),
5252
V1_20_50(630, "1.20.50"),
53+
V1_20_60(649, "1.20.60"),
5354
;
5455

5556
private static GameVersion FEATURE_VERSION = ENABLE_BLOCK_STATE_PERSISTENCE ? GameVersion.V1_18_0 : GameVersion.V1_12_0;

src/main/java/cn/nukkit/Player.java

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2686,7 +2686,7 @@ public void onCompletion(Server server) {
26862686
return;
26872687
}
26882688

2689-
if (riding != null && (moveVecX != 0 || moveVecY != 0)) {
2689+
if (riding != null && (moveVecX != 0 || moveVecY != 0) && riding.isControlling(this)) {
26902690
moveVecX = Mth.clamp(moveVecX, -1, 1);
26912691
moveVecY = Mth.clamp(moveVecY, -1, 1);
26922692

@@ -2738,19 +2738,11 @@ public void onCompletion(Server server) {
27382738
this.newPosition = newPos;
27392739
this.forceMovement = null;
27402740
}
2741-
2742-
if (riding != null) {
2743-
if (riding instanceof EntityRideable && !(riding instanceof EntityBoat)) {
2744-
Vector3f offset = riding.getMountedOffset(this);
2745-
((EntityRideable) riding).onPlayerRiding(this.temporalVector.setComponents(movePlayerPacket.x - offset.x, movePlayerPacket.y - offset.y, movePlayerPacket.z - offset.z), (movePlayerPacket.headYaw + 90) % 360, 0);
2746-
}
2747-
}
2748-
27492741
break;
27502742
case ProtocolInfo.MOVE_ACTOR_ABSOLUTE_PACKET:
27512743
MoveEntityPacket moveEntityPacket = (MoveEntityPacket) packet;
2752-
if (!validateCoordinate((float) moveEntityPacket.x) || !validateCoordinate((float) moveEntityPacket.y) || !validateCoordinate((float) moveEntityPacket.z)
2753-
|| !validateFloat((float) moveEntityPacket.pitch) || !validateFloat((float) moveEntityPacket.yaw) || !validateFloat((float) moveEntityPacket.headYaw)) {
2744+
if (!validateCoordinate(moveEntityPacket.x) || !validateCoordinate(moveEntityPacket.y) || !validateCoordinate(moveEntityPacket.z)
2745+
|| !validateFloat(moveEntityPacket.pitch) || !validateFloat(moveEntityPacket.yaw) || !validateFloat(moveEntityPacket.headYaw)) {
27542746
this.getServer().getLogger().warning("Invalid vehicle movement received: " + this.getName());
27552747
this.close("", "Invalid vehicle movement");
27562748
return;
@@ -2760,9 +2752,9 @@ public void onCompletion(Server server) {
27602752
break;
27612753
}
27622754

2763-
if (this.riding instanceof EntityBoat) {
2755+
if (this.riding instanceof EntityBoat boat) {
27642756
if (this.temporalVector.setComponents(moveEntityPacket.x, moveEntityPacket.y, moveEntityPacket.z).distanceSquared(this.riding) < 1000) {
2765-
((EntityBoat) this.riding).onInput(moveEntityPacket.x, moveEntityPacket.y, moveEntityPacket.z, moveEntityPacket.yaw);
2757+
boat.onInput(moveEntityPacket.x, moveEntityPacket.y, moveEntityPacket.z, moveEntityPacket.yaw % 360);
27662758
}
27672759
}
27682760
break;
@@ -3700,7 +3692,7 @@ public void onCompletion(Server server) {
37003692
}
37013693
}
37023694

3703-
Enchantment[] enchantments = item.getEnchantments();
3695+
Enchantment[] enchantments = item.getId() != Item.ENCHANTED_BOOK ? item.getEnchantments() : Enchantment.EMPTY;
37043696

37053697
ItemAttackDamageEvent event = new ItemAttackDamageEvent(item);
37063698
this.server.getPluginManager().callEvent(event);
@@ -3733,7 +3725,7 @@ public void onCompletion(Server server) {
37333725
break;
37343726
}
37353727

3736-
for (Enchantment enchantment : item.getEnchantments()) {
3728+
for (Enchantment enchantment : enchantments) {
37373729
enchantment.doPostAttack(this, target, null);
37383730
}
37393731

@@ -4613,7 +4605,7 @@ public void kill() {
46134605

46144606
if (!ev.getKeepInventory() && this.level.getGameRules().getBoolean(GameRule.DO_ENTITY_DROPS)) {
46154607
for (Item item : ev.getDrops()) {
4616-
if (!item.hasEnchantment(Enchantment.VANISHING)) {
4608+
if (item.getId() == Item.ENCHANTED_BOOK || !item.hasEnchantment(Enchantment.VANISHING)) {
46174609
this.level.dropItem(this, item, null, true, 40);
46184610
}
46194611
}

src/main/java/cn/nukkit/block/Block.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -773,8 +773,8 @@ public double getBreakTime(Item item, Player player) {
773773
boolean canHarvestWithHand = canHarvestWithHand();
774774
int itemToolType = toolType0(item);
775775
int itemTier = item.getTier();
776-
int efficiencyLoreLevel = Optional.ofNullable(item.getEnchantment(Enchantment.EFFICIENCY))
777-
.map(Enchantment::getLevel).orElse(0);
776+
int efficiencyLoreLevel = item.getId() != Item.ENCHANTED_BOOK ? Optional.ofNullable(item.getEnchantment(Enchantment.EFFICIENCY))
777+
.map(Enchantment::getLevel).orElse(0) : 0;
778778
int hasteEffectLevel = Optional.ofNullable(player.getEffect(Effect.HASTE))
779779
.map(Effect::getAmplifier).orElse(0);
780780
boolean insideOfWaterWithoutAquaAffinity = player.isInsideOfWater() &&

src/main/java/cn/nukkit/block/BlockAzalea.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,6 @@ public void setDamage(int meta) {
106106

107107
private boolean canSurvive() {
108108
int id = down().getId();
109-
return id == GRASS || id == DIRT || id == MYCELIUM || id == PODZOL || id == FARMLAND || id == DIRT_WITH_ROOTS || id == MOSS_BLOCK || id == CLAY;
109+
return id == GRASS_BLOCK || id == DIRT || id == MYCELIUM || id == PODZOL || id == FARMLAND || id == DIRT_WITH_ROOTS || id == MOSS_BLOCK || id == CLAY;
110110
}
111111
}

src/main/java/cn/nukkit/block/BlockBamboo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,6 @@ public void setThick(boolean thick) {
288288
}
289289

290290
static boolean canBeSupportedBy(int id) {
291-
return id == GRASS || id == DIRT || id == SAND || id == GRAVEL || id == MYCELIUM || id == PODZOL || id == DIRT_WITH_ROOTS;
291+
return id == GRASS_BLOCK || id == DIRT || id == SAND || id == GRAVEL || id == MYCELIUM || id == PODZOL || id == DIRT_WITH_ROOTS;
292292
}
293293
}

src/main/java/cn/nukkit/block/BlockCampfire.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,10 @@ public void onEntityCollide(Entity entity) {
298298
return;
299299
}
300300

301+
if (true) {
302+
return;
303+
}
304+
301305
if (V1_19_60.isAvailable()) {
302306
return;
303307
}

src/main/java/cn/nukkit/block/BlockComposter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ private static void registerCompostableItems(float chance, int... itemIds) {
203203
ItemID.BEETROOT_SEEDS,
204204
ItemID.DRIED_KELP,
205205
getItemId(TALLGRASS),
206-
getItemId(GRASS),
206+
getItemId(GRASS_BLOCK),
207207
getItemId(HANGING_ROOTS),
208208
getItemId(MANGROVE_ROOTS),
209209
ItemID.KELP,

src/main/java/cn/nukkit/block/BlockDeadBush.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,6 @@ public boolean isVegetation() {
8888

8989
private boolean canSurvive() {
9090
int id = down().getId();
91-
return id == SAND || id == HARDENED_CLAY || id == STAINED_HARDENED_CLAY || id == DIRT || id == PODZOL || id == MYCELIUM || id == DIRT_WITH_ROOTS || id == MUD || id == GRASS;
91+
return id == SAND || id == HARDENED_CLAY || id == STAINED_HARDENED_CLAY || id == DIRT || id == PODZOL || id == MYCELIUM || id == DIRT_WITH_ROOTS || id == MUD || id == GRASS_BLOCK;
9292
}
9393
}

src/main/java/cn/nukkit/block/BlockDoublePlant.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,6 @@ public int getPlantType() {
191191

192192
private boolean canSurvive() {
193193
int id = down().getId();
194-
return id == GRASS || id == DIRT || id == PODZOL || id == FARMLAND || id == MYCELIUM || id == DIRT_WITH_ROOTS || id == MOSS_BLOCK;
194+
return id == GRASS_BLOCK || id == DIRT || id == PODZOL || id == FARMLAND || id == MYCELIUM || id == DIRT_WITH_ROOTS || id == MOSS_BLOCK;
195195
}
196196
}

src/main/java/cn/nukkit/block/BlockDripleafBig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public Item[] getDrops(Item item) {
8282
public boolean place(Item item, Block block, Block target, BlockFace face, double fx, double fy, double fz, Player player) {
8383
Block below = down();
8484
int id = below.getId();
85-
if (!(id == BIG_DRIPLEAF || id == GRASS || id == DIRT || id == MYCELIUM || id == PODZOL || id == FARMLAND || id == DIRT_WITH_ROOTS || id == MOSS_BLOCK || id == CLAY)) {
85+
if (!(id == BIG_DRIPLEAF || id == GRASS_BLOCK || id == DIRT || id == MYCELIUM || id == PODZOL || id == FARMLAND || id == DIRT_WITH_ROOTS || id == MOSS_BLOCK || id == CLAY)) {
8686
return false;
8787
}
8888

@@ -315,7 +315,7 @@ public BlockFace getBlockFace() {
315315

316316
private boolean canSurvive() {
317317
int id = down().getId();
318-
return id == BIG_DRIPLEAF || id == GRASS || id == DIRT || id == MYCELIUM || id == PODZOL || id == FARMLAND || id == DIRT_WITH_ROOTS || id == MOSS_BLOCK || id == CLAY;
318+
return id == BIG_DRIPLEAF || id == GRASS_BLOCK || id == DIRT || id == MYCELIUM || id == PODZOL || id == FARMLAND || id == DIRT_WITH_ROOTS || id == MOSS_BLOCK || id == CLAY;
319319
}
320320

321321
private void setTiltAndScheduleTick(int tilt) {

src/main/java/cn/nukkit/block/BlockDripleafSmall.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public boolean place(Item item, Block block, Block target, BlockFace face, doubl
9292
}
9393

9494
int id = down().getId();
95-
if (id != GRASS && id != DIRT && id != MYCELIUM && id != PODZOL && id != FARMLAND && id != DIRT_WITH_ROOTS && id != MOSS_BLOCK && id != CLAY) {
95+
if (id != GRASS_BLOCK && id != DIRT && id != MYCELIUM && id != PODZOL && id != FARMLAND && id != DIRT_WITH_ROOTS && id != MOSS_BLOCK && id != CLAY) {
9696
return false;
9797
}
9898

@@ -287,7 +287,7 @@ private boolean canSurvive() {
287287
if (!level.getExtraBlock(this).isWater()) {
288288
return false;
289289
}
290-
return id == GRASS || id == DIRT || id == MYCELIUM || id == PODZOL || id == FARMLAND || id == DIRT_WITH_ROOTS;
290+
return id == GRASS_BLOCK || id == DIRT || id == MYCELIUM || id == PODZOL || id == FARMLAND || id == DIRT_WITH_ROOTS;
291291
}
292292

293293
public boolean isUpper() {

src/main/java/cn/nukkit/block/BlockFlower.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public boolean onActivate(Item item, BlockFace face, Player player) {
118118
random.nextInt(-1, 2),
119119
random.nextInt(-3, 4));
120120

121-
if (level.getBlock(vec).getId() == AIR && level.getBlock(vec.down()).getId() == GRASS && vec.getY() >= 0 && vec.getY() < 256) {
121+
if (level.getBlock(vec).getId() == AIR && level.getBlock(vec.down()).getId() == GRASS_BLOCK && vec.getY() >= 0 && vec.getY() < 256) {
122122
if (random.nextInt(10) == 0) {
123123
this.level.setBlock(vec, this.getUncommonFlower(), true);
124124
} else {
@@ -149,6 +149,6 @@ public boolean isVegetation() {
149149

150150
protected boolean canSurvive() {
151151
int id = down().getId();
152-
return id == Block.GRASS || id == Block.DIRT || id == Block.FARMLAND || id == Block.PODZOL || id == MYCELIUM || id == DIRT_WITH_ROOTS || id == MOSS_BLOCK;
152+
return id == Block.GRASS_BLOCK || id == Block.DIRT || id == Block.FARMLAND || id == Block.PODZOL || id == MYCELIUM || id == DIRT_WITH_ROOTS || id == MOSS_BLOCK;
153153
}
154154
}

0 commit comments

Comments
 (0)