Skip to content

Commit

Permalink
added version check for < 1.13
Browse files Browse the repository at this point in the history
  • Loading branch information
mrgeneralq committed Aug 30, 2022
1 parent b8efae3 commit 7ac64c6
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 3 deletions.
2 changes: 2 additions & 0 deletions src/main/java/me/mrgeneralq/sleepmost/Sleepmost.java
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ public static Sleepmost getInstance() {
private void runPreTimerTasks(){
for(World world: Bukkit.getWorlds()){
this.bootstrapper.getSleepMostWorldService().registerWorld(world);

if(ServerVersion.CURRENT_VERSION.supportsGameRules())
world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, true);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import me.mrgeneralq.sleepmost.flags.types.AbstractFlag;
import me.mrgeneralq.sleepmost.interfaces.*;
import me.mrgeneralq.sleepmost.managers.HookManager;
import me.mrgeneralq.sleepmost.statics.ServerVersion;

import java.util.*;

Expand Down Expand Up @@ -51,7 +52,7 @@ public class FlagsRepository implements IFlagsRepository {
private final AllowKickFlag allowKickFlag;
private final InsomniaMilkFlag insomniaMilkFlag;
private final DynamicAnimationSpeedFlag dynamicAnimationSpeedFlag;
private final LongerNightDurationFlag longerNightDurationFlag;
private LongerNightDurationFlag longerNightDurationFlag;

//DEPENDING ON HOOK
private GSitHookFlag gSitHookFlag;
Expand Down Expand Up @@ -93,8 +94,9 @@ public FlagsRepository(IConfigRepository configRepository) {
setupFlag(this.allowKickFlag = new AllowKickFlag(new ConfigFlagController<>(configRepository)));
setupFlag(this.insomniaMilkFlag = new InsomniaMilkFlag(new ConfigFlagController<>(configRepository)));
setupFlag(this.dynamicAnimationSpeedFlag = new DynamicAnimationSpeedFlag(new ConfigFlagController<>(configRepository)));
setupFlag(this.longerNightDurationFlag = new LongerNightDurationFlag(new ConfigFlagController<>(configRepository)));

if(ServerVersion.CURRENT_VERSION.supportsGameRules())
setupFlag(this.longerNightDurationFlag = new LongerNightDurationFlag(new ConfigFlagController<>(configRepository)));

if(HookManager.isGSitInstalled()){
setupFlag(this.gSitHookFlag = new GSitHookFlag(new ConfigFlagController<>(configRepository)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import me.mrgeneralq.sleepmost.interfaces.ISleepMostWorldService;
import me.mrgeneralq.sleepmost.interfaces.ISleepService;
import me.mrgeneralq.sleepmost.models.SleepMostWorld;
import me.mrgeneralq.sleepmost.statics.ServerVersion;
import me.mrgeneralq.sleepmost.statics.Time;
import org.bukkit.Bukkit;
import org.bukkit.World;
Expand Down Expand Up @@ -39,10 +40,13 @@ public void run() {
for(World world: Bukkit.getWorlds().stream().filter(this.sleepService::isEnabledAt).collect(Collectors.toList()))
{
updateTimeCycle(world);

if(ServerVersion.CURRENT_VERSION.supportsGameRules()){
checkPlannedFreezeRequired(world);
checkInsomniaResetRequired(world);
checkFreezeRequired(world);
checkUnfreezeRequired(world);
}

SleepSkipCause cause = this.sleepService.getCurrentSkipCause(world);
if(cause == SleepSkipCause.UNKNOWN|| cause == null){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import me.mrgeneralq.sleepmost.interfaces.ISleepMostWorldService;
import me.mrgeneralq.sleepmost.models.SleepMostWorld;
import me.mrgeneralq.sleepmost.repositories.SleepMostWorldRepository;
import me.mrgeneralq.sleepmost.statics.ServerVersion;
import org.bukkit.GameRule;
import org.bukkit.World;

Expand All @@ -28,15 +29,21 @@ public void unregisterWorld(World world) {

@Override
public void freezeTime(World world, Calendar calendar) {

if(ServerVersion.CURRENT_VERSION.supportsGameRules())
world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false);

SleepMostWorld sleepMostWorld = this.repository.get(world.getUID());
sleepMostWorld.setFrozen(true, calendar);
this.repository.set(world.getUID(), sleepMostWorld);
}

@Override
public void unfreezeTime(World world) {
world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, true);

if(ServerVersion.CURRENT_VERSION.supportsGameRules())
world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, true);

SleepMostWorld sleepMostWorld = this.repository.get(world.getUID());
sleepMostWorld.setFrozen(false, null);
sleepMostWorld.setPlannedFrozen(false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public enum ServerVersion
private boolean supportsBossBars;
private boolean hasTimeSkipEvent;
private boolean supportsClickableText;
private boolean supportsGameRules;

public static final ServerVersion CURRENT_VERSION;

Expand All @@ -36,6 +37,8 @@ public enum ServerVersion
forVersionsFrom(V1_9, version -> version.maxHPHealer = MaxHPHealer.UPDATED_HEALER);
forVersionsFrom(V1_15, version -> version.hasTimeSkipEvent = true);
forVersionsFrom(V1_12, version -> version.supportsBossBars = true);
forVersionsFrom(V1_13, version -> version.supportsGameRules = true);

}
ServerVersion() {
this.name = WordUtils.capitalizeFully(name().substring(1).toLowerCase().replace('_', '.'));
Expand Down Expand Up @@ -69,6 +72,10 @@ public boolean supportsClickableText() {
return supportsClickableText;
}

public boolean supportsGameRules() {
return supportsGameRules;
}

//Setup methods
private static ServerVersion computeServerVersion() {
return Arrays.stream(VALUES)
Expand Down

0 comments on commit 7ac64c6

Please sign in to comment.