Skip to content

Commit

Permalink
Merge pull request #148 from mrgeneralq/release-5.1.2
Browse files Browse the repository at this point in the history
added check to make sure animation doesnt start twice
  • Loading branch information
mrgeneralq authored Sep 10, 2022
2 parents e07f9e1 + a09bf9a commit 1dd3bdf
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 4 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>me.mrgeneralq</groupId>
<artifactId>sleep-most</artifactId>
<version>5.1.1</version>
<version>5.1.2</version>
<name>SleepMost</name>

<properties>
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/me/mrgeneralq/sleepmost/Sleepmost.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ public void onEnable() {
pm.registerEvents(new PlayerBedLeaveEventListener(bootstrapper.getSleepService()), this);
pm.registerEvents(new WorldLoadEventListener(bootstrapper.getBossBarService(), bootstrapper.getSleepMostWorldService()),this);
pm.registerEvents(new WorldUnloadEventListener(bootstrapper.getBossBarService(), bootstrapper.getSleepMostWorldService()),this);
pm.registerEvents(new PlayerSleepStateChangeEventListener(this, bootstrapper.getSleepService(), bootstrapper.getFlagsRepository(), bootstrapper.getBossBarService(), bootstrapper.getMessageService(), bootstrapper.getCooldownService()), this);
pm.registerEvents(new PlayerSleepStateChangeEventListener(this, bootstrapper.getSleepService(), bootstrapper.getFlagsRepository(), bootstrapper.getBossBarService(), bootstrapper.getMessageService(), bootstrapper.getCooldownService(), bootstrapper.getSleepMostWorldService()), this);
pm.registerEvents(new TimeCycleChangeEventListener(bootstrapper.getSleepService(), bootstrapper.getSleepMostWorldService(), bootstrapper.getFlagsRepository(), bootstrapper.getInsomniaService()),this );
pm.registerEvents(new PlayerConsumeEventListener(bootstrapper.getSleepService(), bootstrapper.getInsomniaService(), bootstrapper.getMessageService(), bootstrapper.getFlagsRepository()), this);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import me.mrgeneralq.sleepmost.events.PlayerSleepStateChangeEvent;
import me.mrgeneralq.sleepmost.interfaces.*;
import me.mrgeneralq.sleepmost.builders.MessageBuilder;
import me.mrgeneralq.sleepmost.models.SleepMostWorld;
import me.mrgeneralq.sleepmost.statics.DataContainer;
import me.mrgeneralq.sleepmost.statics.ServerVersion;
import org.bukkit.Bukkit;
Expand All @@ -28,21 +29,24 @@ public class PlayerSleepStateChangeEventListener implements Listener {
private final IBossBarService bossBarService;
private final IMessageService messageService;
private final ICooldownService cooldownService;
private final ISleepMostWorldService sleepMostWorldService;

public PlayerSleepStateChangeEventListener(
Sleepmost sleepmost,
ISleepService sleepService,
IFlagsRepository flagsRepository,
IBossBarService bossBarService,
IMessageService messageService,
ICooldownService cooldownService
ICooldownService cooldownService,
ISleepMostWorldService sleepMostWorldService
) {
this.sleepmost = sleepmost;
this.sleepService = sleepService;
this.flagsRepository = flagsRepository;
this.bossBarService = bossBarService;
this.messageService = messageService;
this.cooldownService = cooldownService;
this.sleepMostWorldService = sleepMostWorldService;
}

@EventHandler
Expand Down Expand Up @@ -92,9 +96,18 @@ public void onPlayerSleepStateChange(PlayerSleepStateChangeEvent e){
this.cooldownService.startCooldown(player);
}

//duration check before executing any skip methods
if(this.sleepService.getSleepersAmount(world) > this.sleepService.getRequiredSleepersCount(world))
return;

Bukkit.getScheduler().runTaskLater(sleepmost, () ->
{

SleepMostWorld sleepMostWorld = this.sleepMostWorldService.getWorld(world);

//if animation is already running, cancel
if(sleepMostWorld.isTimeCycleAnimationIsRunning())
return;

//final check before night skip is required
if(!this.sleepService.shouldSkip(world)){
return;
Expand Down

0 comments on commit 1dd3bdf

Please sign in to comment.