Skip to content

Commit ce67edd

Browse files
committed
fix night/day
1 parent 67012b6 commit ce67edd

3 files changed

Lines changed: 29 additions & 10 deletions

File tree

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

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,33 @@
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;
12+
import net.minecraft.world.clock.ClockTimeMarkers;
13+
import net.minecraft.world.clock.WorldClock;
1114
import net.minecraft.world.level.storage.ServerLevelData;
1215

16+
import java.util.Optional;
17+
1318
public class DayCommand implements Command<CommandSourceStack> {
1419
@Override
1520
public int run(CommandContext<CommandSourceStack> context) throws CommandSyntaxException {
1621
CommandSourceStack source = context.getSource();
1722
PlayerData playerData = PlayerData.accessFromContextOrThrow(context);
18-
ServerLevel world = source.getServer().overworld();
19-
if (world.isBrightOutside()) {
23+
ServerLevel level = source.getPlayer().level();
24+
25+
if (level.isBrightOutside()) {
2026
playerData.sendCommandFeedback("cmd.day.error.already_daytime");
2127
return -1;
2228
}
23-
long time = world.getGameTime();
24-
long timeToDay = 24000L - time % 24000L;
2529

26-
((ServerLevelData)world.getLevelData()).setGameTime(time + timeToDay);
30+
Optional<Holder<WorldClock>> defaultClock = level.dimensionType().defaultClock();
31+
if (defaultClock.isEmpty()) {
32+
playerData.sendCommandError("generic.level.no_clock");
33+
return -2;
34+
}
2735

36+
level.getServer().clockManager().moveToTimeMarker(defaultClock.get(), ClockTimeMarkers.DAY);
2837
playerData.sendCommandFeedback("cmd.day.feedback");
2938
return 1;
3039
}

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

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,33 @@
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;
12+
import net.minecraft.world.clock.ClockTimeMarkers;
13+
import net.minecraft.world.clock.WorldClock;
1114
import net.minecraft.world.level.storage.ServerLevelData;
1215

16+
import java.util.Optional;
17+
1318
public class NightCommand implements Command<CommandSourceStack> {
1419
@Override
1520
public int run(CommandContext<CommandSourceStack> context) throws CommandSyntaxException {
1621
CommandSourceStack source = context.getSource();
1722
PlayerData playerData = PlayerData.accessFromContextOrThrow(context);
18-
ServerLevel world = source.getServer().overworld();
19-
if (world.isDarkOutside()) {
23+
ServerLevel level = source.getPlayer().level();
24+
25+
if (level.isDarkOutside()) {
2026
playerData.sendCommandFeedback("cmd.night.error.already_nighttime");
2127
return -1;
2228
}
23-
long time = world.getGameTime();
24-
long timeToNight = 13000L - time % 24000L;
2529

26-
((ServerLevelData)world.getLevelData()).setGameTime(time + timeToNight);
30+
Optional<Holder<WorldClock>> defaultClock = level.dimensionType().defaultClock();
31+
if (defaultClock.isEmpty()) {
32+
playerData.sendCommandError("generic.level.no_clock");
33+
return -2;
34+
}
2735

36+
level.getServer().clockManager().moveToTimeMarker(defaultClock.get(), ClockTimeMarkers.NIGHT);
2837
playerData.sendCommandFeedback("cmd.night.feedback");
2938
return 1;
3039
}

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)