Skip to content

Commit ea7337d

Browse files
authored
fix night/day (#400)
guess finding a Long with a similar enough name wasn't good enough while updating
1 parent 67012b6 commit ea7337d

3 files changed

Lines changed: 31 additions & 14 deletions

File tree

src/main/java/com/fibermc/essentialcommands/commands/utility/DayCommand.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,32 @@
77
import com.mojang.brigadier.exceptions.CommandSyntaxException;
88

99
import net.minecraft.commands.CommandSourceStack;
10+
import net.minecraft.core.Holder;
1011
import net.minecraft.server.level.ServerLevel;
11-
import net.minecraft.world.level.storage.ServerLevelData;
12+
import net.minecraft.world.clock.ClockTimeMarkers;
13+
import net.minecraft.world.clock.WorldClock;
14+
15+
import java.util.Optional;
1216

1317
public class DayCommand implements Command<CommandSourceStack> {
1418
@Override
1519
public int run(CommandContext<CommandSourceStack> context) throws CommandSyntaxException {
1620
CommandSourceStack source = context.getSource();
1721
PlayerData playerData = PlayerData.accessFromContextOrThrow(context);
18-
ServerLevel world = source.getServer().overworld();
19-
if (world.isBrightOutside()) {
22+
ServerLevel level = source.getPlayer().level();
23+
24+
Optional<Holder<WorldClock>> clock = level.dimensionType().defaultClock();
25+
if (clock.isEmpty()) {
26+
playerData.sendCommandError("generic.level.no_clock");
27+
return -2;
28+
}
29+
30+
if (level.isBrightOutside()) {
2031
playerData.sendCommandFeedback("cmd.day.error.already_daytime");
2132
return -1;
2233
}
23-
long time = world.getGameTime();
24-
long timeToDay = 24000L - time % 24000L;
25-
26-
((ServerLevelData)world.getLevelData()).setGameTime(time + timeToDay);
2734

35+
level.getServer().clockManager().moveToTimeMarker(clock.get(), ClockTimeMarkers.DAY);
2836
playerData.sendCommandFeedback("cmd.day.feedback");
2937
return 1;
3038
}

src/main/java/com/fibermc/essentialcommands/commands/utility/NightCommand.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,32 @@
77
import com.mojang.brigadier.exceptions.CommandSyntaxException;
88

99
import net.minecraft.commands.CommandSourceStack;
10+
import net.minecraft.core.Holder;
1011
import net.minecraft.server.level.ServerLevel;
11-
import net.minecraft.world.level.storage.ServerLevelData;
12+
import net.minecraft.world.clock.ClockTimeMarkers;
13+
import net.minecraft.world.clock.WorldClock;
14+
15+
import java.util.Optional;
1216

1317
public class NightCommand implements Command<CommandSourceStack> {
1418
@Override
1519
public int run(CommandContext<CommandSourceStack> context) throws CommandSyntaxException {
1620
CommandSourceStack source = context.getSource();
1721
PlayerData playerData = PlayerData.accessFromContextOrThrow(context);
18-
ServerLevel world = source.getServer().overworld();
19-
if (world.isDarkOutside()) {
22+
ServerLevel level = source.getPlayer().level();
23+
24+
Optional<Holder<WorldClock>> clock = level.dimensionType().defaultClock();
25+
if (clock.isEmpty()) {
26+
playerData.sendCommandError("generic.level.no_clock");
27+
return -2;
28+
}
29+
30+
if (level.isDarkOutside()) {
2031
playerData.sendCommandFeedback("cmd.night.error.already_nighttime");
2132
return -1;
2233
}
23-
long time = world.getGameTime();
24-
long timeToNight = 13000L - time % 24000L;
25-
26-
((ServerLevelData)world.getLevelData()).setGameTime(time + timeToNight);
2734

35+
level.getServer().clockManager().moveToTimeMarker(clock.get(), ClockTimeMarkers.NIGHT);
2836
playerData.sendCommandFeedback("cmd.night.feedback");
2937
return 1;
3038
}

src/main/resources/data/essential_commands/lang/en_us.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@
103103
"generic.confirm": "Confirm",
104104
"generic.deny": "Deny",
105105
"generic.accept": "Accept",
106+
"generic.level.no_clock": "This dimension does not have a clock",
106107

107108
"essentialcommands.fullprefix": "[Essential Commands] ",
108109
"essentialcommands.smallprefix": "[EC] ",

0 commit comments

Comments
 (0)