Skip to content

Commit e81a2c7

Browse files
committed
Merge branch 'mc-1.21.x' into mc-1.21.y
2 parents 01de611 + 9cf0f85 commit e81a2c7

File tree

18 files changed

+510
-246
lines changed

18 files changed

+510
-246
lines changed

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ body:
1111
What version of Minecraft are you using? If your version is not listed, please try to reproduce on one of the supported versions.
1212
options:
1313
- 1.20.1
14-
- 1.21.x
14+
- 1.21.1
15+
- 1.21.7
1516
validations:
1617
required: true
1718
- type: input

crowdin.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ files:
1212
de: de_de # German
1313
es-ES: es_es # Spanish
1414
fr: fr_fr # French
15+
hu: hu_hu # Hungarian
1516
it: it_it # Italian
1617
ja: ja_jp # Japanese
1718
ko: ko_kr # Korean

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ neogradle.subsystems.conventions.runs.enabled=false
1212

1313
# Mod properties
1414
isUnstable=true
15-
modVersion=1.116.0
15+
modVersion=1.116.1
1616

1717
# Minecraft properties: We want to configure this here so we can read it in settings.gradle
1818
mcVersion=1.21.7

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ nullAway = "0.12.7"
7474
shadow = "8.3.1"
7575
spotless = "7.0.2"
7676
taskTree = "2.1.1"
77-
teavm = "0.11.0-SQUID.1"
77+
teavm = "0.13.0-SQUID.1"
7878
vanillaExtract = "0.2.1"
7979
versionCatalogUpdate = "0.8.1"
8080

package-lock.json

Lines changed: 134 additions & 141 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
},
1414
"devDependencies": {
1515
"@rollup/plugin-node-resolve": "^16.0.0",
16-
"@rollup/plugin-typescript": "^12.0.0 && <12.1.3",
16+
"@rollup/plugin-typescript": "^12.0.0",
1717
"@rollup/plugin-url": "^8.0.1",
1818
"@swc/core": "^1.3.92",
1919
"@types/node": "^24.0.0",

projects/common/src/main/java/dan200/computercraft/shared/command/UserLevel.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ public boolean test(ServerPlayer source) {
5050

5151
public static boolean isOwner(CommandSourceStack source) {
5252
var server = source.getServer();
53+
54+
// While CommandSourceStack.getServer is non-nullable, that's a lie for permission checks. When loading
55+
// .mcfunction files, ServerFunctionLibrary constructs an instance with an empty server. In that case, return
56+
// false — we don't want to treat functions as an owner!
57+
if (server == null) return false;
58+
5359
var player = source.getPlayer();
5460
return server.isDedicatedServer()
5561
? source.getEntity() == null && source.hasPermission(4) && source.getTextName().equals("Server")

projects/common/src/main/java/dan200/computercraft/shared/peripheral/speaker/SpeakerBlockEntity.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import dan200.computercraft.shared.network.client.SpeakerStopClientMessage;
1010
import dan200.computercraft.shared.network.server.ServerNetworking;
1111
import net.minecraft.core.BlockPos;
12+
import net.minecraft.server.level.ServerLevel;
1213
import net.minecraft.world.level.block.entity.BlockEntity;
1314
import net.minecraft.world.level.block.entity.BlockEntityType;
1415
import net.minecraft.world.level.block.state.BlockState;
@@ -47,7 +48,12 @@ private Peripheral(SpeakerBlockEntity speaker) {
4748
}
4849

4950
@Override
50-
public SpeakerPosition getPosition() {
51+
protected ServerLevel getLevel() {
52+
return (ServerLevel) speaker.getLevel();
53+
}
54+
55+
@Override
56+
protected SpeakerPosition getPosition() {
5157
return SpeakerPosition.of(speaker.getLevel(), Vec3.atCenterOf(speaker.getBlockPos()));
5258
}
5359

projects/common/src/main/java/dan200/computercraft/shared/peripheral/speaker/SpeakerPeripheral.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@
3232
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
3333
import org.jspecify.annotations.Nullable;
3434

35-
import java.util.*;
35+
import java.util.ArrayList;
36+
import java.util.List;
37+
import java.util.Optional;
38+
import java.util.UUID;
3639

3740
import static dan200.computercraft.api.lua.LuaValues.checkFinite;
3841

@@ -155,7 +158,9 @@ public void update() {
155158
}
156159
}
157160

158-
public abstract SpeakerPosition getPosition();
161+
protected abstract ServerLevel getLevel();
162+
163+
protected abstract SpeakerPosition getPosition();
159164

160165
public UUID getSource() {
161166
return source;
@@ -255,7 +260,7 @@ public final boolean playSound(ILuaContext context, String name, Optional<Double
255260
// Prevent playing music discs.
256261
var soundEvent = BuiltInRegistries.SOUND_EVENT.getValue(identifier);
257262
// TODO: Build a set of sound events at server startup, and cache this.
258-
var level = Objects.requireNonNull(getPosition().level());
263+
var level = getLevel();
259264
if (soundEvent != null && level.registryAccess().lookupOrThrow(Registries.JUKEBOX_SONG).stream().anyMatch(x -> x.soundEvent().value() == soundEvent)) {
260265
return false;
261266
}

projects/common/src/main/java/dan200/computercraft/shared/peripheral/speaker/UpgradeSpeakerPeripheral.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import dan200.computercraft.api.peripheral.IComputerAccess;
88
import dan200.computercraft.shared.network.client.SpeakerStopClientMessage;
99
import dan200.computercraft.shared.network.server.ServerNetworking;
10-
import net.minecraft.server.level.ServerLevel;
1110

1211

1312
/**
@@ -16,8 +15,6 @@
1615
public abstract class UpgradeSpeakerPeripheral extends SpeakerPeripheral {
1716
public static final String ADJECTIVE = "upgrade.computercraft.speaker.adjective";
1817

19-
protected abstract ServerLevel getLevel();
20-
2118
@Override
2219
public void detach(IComputerAccess computer) {
2320
super.detach(computer);

0 commit comments

Comments
 (0)