Skip to content

Commit

Permalink
1.21 compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
mrgeneralq committed Jul 11, 2024
1 parent dc7224e commit 674e7b8
Show file tree
Hide file tree
Showing 24 changed files with 188 additions and 94 deletions.
8 changes: 4 additions & 4 deletions 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.4.0</version>
<version>5.5.0</version>
<name>SleepMost</name>

<properties>
Expand All @@ -31,8 +31,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
Expand Down Expand Up @@ -113,7 +113,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.20.4-R0.1-SNAPSHOT</version>
<version>1.20.6-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand Down
21 changes: 12 additions & 9 deletions src/main/java/me/mrgeneralq/sleepmost/Sleepmost.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package me.mrgeneralq.sleepmost;

import me.mrgeneralq.sleepmost.enums.HookType;
import me.mrgeneralq.sleepmost.enums.SleepMostHook;
import me.mrgeneralq.sleepmost.eventlisteners.*;
import me.mrgeneralq.sleepmost.eventlisteners.hooks.GSitEventListener;
import me.mrgeneralq.sleepmost.hooks.EssentialsHook;
Expand All @@ -24,6 +24,9 @@
import me.mrgeneralq.sleepmost.commands.SleepmostCommand;
import me.mrgeneralq.sleepmost.statics.Bootstrapper;

import javax.swing.text.html.Option;
import java.util.Optional;

public class Sleepmost extends JavaPlugin {

private static Sleepmost instance;
Expand Down Expand Up @@ -58,7 +61,7 @@ public void onEnable() {
this.registerBossBars();

//init commands
SleepmostCommand sleepmostCommand = new SleepmostCommand(bootstrapper.getSleepService(), bootstrapper.getMessageService(), bootstrapper.getUpdateService(), bootstrapper.getFlagService(), bootstrapper.getFlagsRepository(), bootstrapper.getConfigRepository(), bootstrapper.getCooldownService(), bootstrapper.getBossBarService(), bootstrapper.getSleepMostWorldService(), bootstrapper.getSleepMostPlayerService(), bootstrapper.getInsomniaService(), bootstrapper.getDebugService());
SleepmostCommand sleepmostCommand = new SleepmostCommand(bootstrapper.getSleepService(), bootstrapper.getMessageService(), bootstrapper.getUpdateService(), bootstrapper.getFlagService(), bootstrapper.getFlagsRepository(), bootstrapper.getConfigRepository(), bootstrapper.getCooldownService(), bootstrapper.getBossBarService(), bootstrapper.getSleepMostWorldService(), bootstrapper.getSleepMostPlayerService(), bootstrapper.getInsomniaService(), bootstrapper.getDebugService(), bootstrapper.getHookService());
getCommand("sleepmost").setExecutor(sleepmostCommand);

PluginManager pm = Bukkit.getPluginManager();
Expand All @@ -74,7 +77,7 @@ public void onEnable() {
pm.registerEvents(new TimeSkipEventListener(bootstrapper.getSleepService()), this);
}

pm.registerEvents(new SleepSkipEventListener(bootstrapper.getMessageService(), bootstrapper.getConfigService(), bootstrapper.getSleepService(), bootstrapper.getFlagsRepository(), bootstrapper.getBossBarService()), this);
pm.registerEvents(new SleepSkipEventListener(bootstrapper.getMessageService(), bootstrapper.getConfigService(), bootstrapper.getSleepService(), bootstrapper.getFlagsRepository(), bootstrapper.getBossBarService(), bootstrapper.getHookService()), this);
pm.registerEvents(new WorldChangeEventListener(bootstrapper.getSleepService()), this);
pm.registerEvents(new PlayerBedLeaveEventListener(bootstrapper.getSleepService()), this);
pm.registerEvents(new WorldLoadEventListener(bootstrapper.getBossBarService(), bootstrapper.getSleepMostWorldService()),this);
Expand All @@ -86,17 +89,17 @@ public void onEnable() {
//REGISTER HOOKS
registerHooks();

if(bootstrapper.getHookService().isRegistered(HookType.GSIT)){
getLogger().info("Hooked to GSit!");
Optional<Hook> gsitHook = bootstrapper.getHookService().getHook(SleepMostHook.GSIT);
if(gsitHook.isPresent()){
pm.registerEvents(new GSitEventListener(bootstrapper.getSleepService(), bootstrapper.getMessageService(), bootstrapper.getCooldownService(), bootstrapper.getFlagsRepository(), bootstrapper.getBossBarService(), bootstrapper.getSleepMostWorldService(), bootstrapper.getInsomniaService()),this);
Bukkit.getLogger().info("[sleep-most] GSit hook detected and registered GSit event listener");
}

if(bootstrapper.getHookService().isRegistered(HookType.PLACEHOLDER_API)){
getLogger().info("Hooked to PAPI!");
new PapiExtension(this, bootstrapper.getFlagsRepository(), bootstrapper.getSleepService()).register();
Optional<Hook> superVanishHook = bootstrapper.getHookService().getHook(SleepMostHook.SUPER_VANISH);
if(superVanishHook.isPresent()){
new PapiExtension(this, bootstrapper.getFlagsRepository(), bootstrapper.getSleepService()).register();
}


Bukkit.getScheduler().runTaskAsynchronously(this, () -> notifyIfNewUpdateExists(bootstrapper.getUpdateService()));
runPlayerTasks();
runPreTimerTasks();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,20 +30,23 @@ public class SleepmostCommand implements CommandExecutor, TabCompleter {
private final IInsomniaService insomniaService;
private final IDebugService debugService;

private final IHookService hookService;

public SleepmostCommand(
ISleepService sleepService,
IMessageService messageService,
IUpdateService updateService,
IFlagService flagService,
IFlagsRepository flagsRepository,
IConfigRepository configRepository,
ICooldownService cooldownService,
IBossBarService bossBarService,
ISleepMostWorldService sleepMostWorldService,
ISleepMostPlayerService sleepMostPlayerService,
IInsomniaService insomniaService,
IDebugService debugService
){
ISleepService sleepService,
IMessageService messageService,
IUpdateService updateService,
IFlagService flagService,
IFlagsRepository flagsRepository,
IConfigRepository configRepository,
ICooldownService cooldownService,
IBossBarService bossBarService,
ISleepMostWorldService sleepMostWorldService,
ISleepMostPlayerService sleepMostPlayerService,
IInsomniaService insomniaService,
IDebugService debugService,
IHookService hookService
){
this.sleepService = sleepService;
this.messageService = messageService;
this.updateService = updateService;
Expand All @@ -56,7 +59,8 @@ public SleepmostCommand(
this.sleepMostPlayerService = sleepMostPlayerService;
this.insomniaService = insomniaService;
this.debugService = debugService;
this.registerSubCommands();
this.hookService = hookService;
this.registerSubCommands();
}

private void registerSubCommands(){
Expand All @@ -69,7 +73,7 @@ private void registerSubCommands(){
subCommands.put("reset", new ResetSubCommand(this.messageService, this.flagService));
subCommands.put("setops", new SetOnePlayerSleepCommand(this.sleepService, this.messageService,this.flagService, this.flagsRepository));
subCommands.put("bed", new BedSubCommand(this.sleepService,this.messageService));
subCommands.put("sleep", new SleepSubCommand(this.sleepService,this.flagsRepository,this.messageService,this.cooldownService, this.bossBarService, this.sleepMostWorldService, this.insomniaService));
subCommands.put("sleep", new SleepSubCommand(this.sleepService,this.flagsRepository,this.messageService,this.cooldownService, this.bossBarService, this.sleepMostWorldService, this.insomniaService, this.hookService));
subCommands.put("kick", new KickSubCommand(this.sleepService,this.messageService, this.flagsRepository));
subCommands.put("insomnia", new InsomniaSubCommand(this.sleepService, this.flagsRepository, this.messageService, this.sleepMostWorldService, this.sleepMostPlayerService, this.insomniaService));
subCommands.put("getflag", new GetFlagSubCommand(this.messageService, this.flagsRepository));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,35 @@
package me.mrgeneralq.sleepmost.commands.subcommands;

import me.mrgeneralq.sleepmost.enums.MessageKey;
import me.mrgeneralq.sleepmost.enums.SleepMostHook;
import me.mrgeneralq.sleepmost.hooks.GsitHook;
import me.mrgeneralq.sleepmost.interfaces.*;
import me.mrgeneralq.sleepmost.models.Hook;
import me.mrgeneralq.sleepmost.models.SleepMostWorld;
import me.mrgeneralq.sleepmost.templates.MessageTemplate;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import java.util.Optional;

public class SleepSubCommand implements ISubCommand {

private final ISleepService sleepService;
private final IFlagsRepository flagsRepository;
private final IMessageService messageService;
private final ISleepMostWorldService sleepMostWorldService;
private final IInsomniaService insomniaService;
private final IHookService hookService;

public SleepSubCommand(ISleepService sleepService, IFlagsRepository flagsRepository, IMessageService messageService, ICooldownService cooldownService, IBossBarService bossBarService, ISleepMostWorldService sleepMostWorldService, IInsomniaService insomniaService) {
public SleepSubCommand(ISleepService sleepService, IFlagsRepository flagsRepository, IMessageService messageService, ICooldownService cooldownService, IBossBarService bossBarService, ISleepMostWorldService sleepMostWorldService, IInsomniaService insomniaService, IHookService hookService) {
this.sleepService = sleepService;
this.flagsRepository = flagsRepository;
this.messageService = messageService;
this.sleepMostWorldService = sleepMostWorldService;
this.insomniaService = insomniaService;
this.hookService = hookService;
}


Expand Down Expand Up @@ -62,11 +69,8 @@ public boolean executeCommand(CommandSender sender, Command cmd, String commandL
return true;
}


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

if(sleepMostWorld.isFrozen()){

String longerNightsSleepPreventedMsg = this.messageService.getMessagePrefixed(MessageKey.SLEEP_PREVENTED_LONGER_NIGHT)
.setWorld(world)
.setPlayer(player)
Expand All @@ -77,10 +81,15 @@ public boolean executeCommand(CommandSender sender, Command cmd, String commandL

boolean updatedSleepStatus = !this.sleepService.isPlayerAsleep(player);

//TODO check this what the original getStatusTemplate is
// this.messageService.sendMessage(player, this.messageService.getMessage(getStatusTemplate(updatedSleepStatus)).build());

this.sleepService.setSleeping(player, updatedSleepStatus);
//If Gsit is enabled and the player is sleeping, we will use the GsitHook to set the sleeping pose.
//GSit event listener will handle the setSleeping method.
Optional<Hook> optionalGsitHook = this.hookService.getHook(SleepMostHook.GSIT);
if(optionalGsitHook.isPresent() && this.flagsRepository.getGSitHookFlag().getValueAt(world) && this.flagsRepository.getGsitSleepCmdFlag().getValueAt(world)){
GsitHook gsitHook = (GsitHook) optionalGsitHook.get();
gsitHook.setSleepingPose(player, true);
}else{
this.sleepService.setSleeping(player, updatedSleepStatus);
}
return true;
}
private MessageTemplate getStatusTemplate(boolean sleepingStatus){
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package me.mrgeneralq.sleepmost.enums;

public enum HookType {

public enum SleepMostHook {
PLACEHOLDER_API,
SUPER_VANISH,
GSIT,
ESSENTIALS

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@
import static me.mrgeneralq.sleepmost.enums.SleepSkipCause.NIGHT_TIME;

import me.mrgeneralq.sleepmost.enums.MessageKey;
import me.mrgeneralq.sleepmost.enums.SleepMostHook;
import me.mrgeneralq.sleepmost.enums.SleepersOrAllType;
import me.mrgeneralq.sleepmost.exceptions.InvalidSleepSkipCauseOccurredException;
import me.mrgeneralq.sleepmost.Sleepmost;
import me.mrgeneralq.sleepmost.flags.SkipSoundFlag;
import me.mrgeneralq.sleepmost.flags.UseSkipSoundFlag;
import me.mrgeneralq.sleepmost.hooks.GsitHook;
import me.mrgeneralq.sleepmost.interfaces.*;
import me.mrgeneralq.sleepmost.builders.MessageBuilder;
import me.mrgeneralq.sleepmost.models.ConfigMessage;
import me.mrgeneralq.sleepmost.models.Hook;
import me.mrgeneralq.sleepmost.statics.ServerVersion;
import org.bukkit.*;
import org.bukkit.entity.Player;
Expand All @@ -22,7 +24,9 @@
import me.mrgeneralq.sleepmost.events.SleepSkipEvent;
import me.mrgeneralq.sleepmost.statics.DataContainer;

import javax.swing.text.html.Option;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;

public class SleepSkipEventListener implements Listener {
Expand All @@ -32,21 +36,23 @@ public class SleepSkipEventListener implements Listener {
private final ISleepService sleepService;
private final IFlagsRepository flagsRepository;
private final IBossBarService bossBarService;
private final IHookService hookService;
private final DataContainer dataContainer = DataContainer.getContainer();

public SleepSkipEventListener(IMessageService messageService,
IConfigService configService,
ISleepService sleepService,
IFlagsRepository flagsRepository,
IBossBarService bossBarService
IBossBarService bossBarService,
IHookService hooksService
) {

this.messageService = messageService;
this.configService = configService;
this.sleepService = sleepService;
this.flagsRepository = flagsRepository;
this.bossBarService = bossBarService;

this.hookService = hooksService;
}

@EventHandler
Expand Down Expand Up @@ -115,6 +121,19 @@ public void run() {
if(ServerVersion.CURRENT_VERSION.supportsBossBars()){
this.bossBarService.setVisible(world, false);
}


Optional<Hook> optionalGsitHook = this.hookService.getHook(SleepMostHook.GSIT);
//GSit, disble sleep
if (optionalGsitHook.isPresent() && this.flagsRepository.getGSitHookFlag().getValueAt(world) && this.flagsRepository.getGSitSleepFlag().getValueAt(world)) {
GsitHook gsitHook = (GsitHook) optionalGsitHook.get();

for (OfflinePlayer player : playersWhoSlept) {
if (player.isOnline()) {
gsitHook.setSleepingPose(player.getPlayer(), false);
}
}
}
}

private void resetPhantomCounter(World world, List<OfflinePlayer> playersWhoSlept) {
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/me/mrgeneralq/sleepmost/flags/GsitSleepCmdFlag.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package me.mrgeneralq.sleepmost.flags;

import me.mrgeneralq.sleepmost.flags.controllers.AbstractFlagController;
import me.mrgeneralq.sleepmost.flags.types.BooleanFlag;

public class GsitSleepCmdFlag extends BooleanFlag
{
public GsitSleepCmdFlag(AbstractFlagController<Boolean> controller)
{
super("gsit-sleep-cmd", controller, false);
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package me.mrgeneralq.sleepmost.hooks;

import me.mrgeneralq.sleepmost.enums.HookType;
import me.mrgeneralq.sleepmost.enums.SleepMostHook;
import me.mrgeneralq.sleepmost.models.Hook;

public class EssentialsHook extends Hook {
public EssentialsHook() {
super(HookType.ESSENTIALS, "Essentials");
super(SleepMostHook.ESSENTIALS, "Essentials");
}
}
18 changes: 16 additions & 2 deletions src/main/java/me/mrgeneralq/sleepmost/hooks/GsitHook.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,24 @@
package me.mrgeneralq.sleepmost.hooks;

import me.mrgeneralq.sleepmost.enums.HookType;
import dev.geco.gsit.api.GSitAPI;
import dev.geco.gsit.objects.GetUpReason;
import me.mrgeneralq.sleepmost.enums.SleepMostHook;
import me.mrgeneralq.sleepmost.models.Hook;
import org.bukkit.Bukkit;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.Player;
import org.bukkit.entity.Pose;

public class GsitHook extends Hook {

public GsitHook() {
super(HookType.GSIT, "GSit");
super(SleepMostHook.GSIT, "GSit");
}

public void setSleepingPose(Player player, boolean sleeping){
if(sleeping)
GSitAPI.createPose(player.getLocation().getBlock().getRelative(BlockFace.DOWN), player, Pose.SLEEPING);
else
GSitAPI.removePose(player, GetUpReason.GET_UP);
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package me.mrgeneralq.sleepmost.hooks;

import me.mrgeneralq.sleepmost.enums.HookType;
import me.mrgeneralq.sleepmost.enums.SleepMostHook;
import me.mrgeneralq.sleepmost.models.Hook;

public class PlaceholderAPIHook extends Hook {
public PlaceholderAPIHook() {
super(HookType.PLACEHOLDER_API, "PlaceholderAPI");
super(SleepMostHook.PLACEHOLDER_API, "PlaceholderAPI");
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package me.mrgeneralq.sleepmost.hooks;

import me.mrgeneralq.sleepmost.enums.HookType;
import me.mrgeneralq.sleepmost.enums.SleepMostHook;
import me.mrgeneralq.sleepmost.models.Hook;

public class SuperVanishHook extends Hook {

public SuperVanishHook() {
super(HookType.SUPER_VANISH, "SuperVanish");
super(SleepMostHook.SUPER_VANISH, "SuperVanish");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,8 @@
import org.bukkit.entity.Player;

public interface IDebugService {

void enableFor(Player player);
void disableFor(Player player);

boolean isEnabledFor(Player player);

void print(String logMsg);

}
Loading

0 comments on commit 674e7b8

Please sign in to comment.