Rework punishment system by deleting the Ban and BanManager and moving everything into Punishment Manager. TODO cache punishments maybe? who knows! add an active field to punishments and fix the ban service to actually unban players

This commit is contained in:
Taah
2022-02-21 16:20:22 -08:00
parent d4578f2255
commit 6f506ac5cb
16 changed files with 295 additions and 381 deletions

View File

@ -2,6 +2,7 @@ package dev.plex.services;
import com.google.common.collect.Lists;
import dev.plex.Plex;
import dev.plex.services.impl.BanService;
import dev.plex.services.impl.GameRuleService;
import java.util.List;
import org.bukkit.Bukkit;
@ -12,7 +13,7 @@ public class ServiceManager
public ServiceManager()
{
//registerService(new BanService());
registerService(new BanService());
registerService(new GameRuleService());
}
@ -26,11 +27,11 @@ public class ServiceManager
}
else if (service.isRepeating() && service.isAsynchronous())
{
Bukkit.getScheduler().runTaskTimerAsynchronously(Plex.get(), service::run, 0, 20 * service.repeatInSeconds());
Bukkit.getScheduler().runTaskTimerAsynchronously(Plex.get(), service::run, 0, 20L * service.repeatInSeconds());
}
else if (service.isRepeating() && !service.isAsynchronous())
{
Bukkit.getScheduler().runTaskTimer(Plex.get(), service::run, 0, 20 * service.repeatInSeconds());
Bukkit.getScheduler().runTaskTimer(Plex.get(), service::run, 0, 20L * service.repeatInSeconds());
}
}
}

View File

@ -1,9 +1,11 @@
package dev.plex.services.impl;
import dev.plex.Plex;
import dev.plex.banning.Ban;
import dev.plex.punishment.Punishment;
import dev.plex.services.AbstractService;
import java.time.LocalDateTime;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
public class BanService extends AbstractService
@ -16,12 +18,14 @@ public class BanService extends AbstractService
@Override
public void run()
{
for (Ban ban : Plex.get().getBanManager().getActiveBans())
for (Punishment punishment : Plex.get().getPunishmentManager().getActiveBans())
{
if (LocalDateTime.now().isAfter(ban.getEndDate()))
if (LocalDateTime.now().isAfter(punishment.getEndDate()))
{
Plex.get().getBanManager().unban(ban.getId());
Bukkit.broadcastMessage("Plex - Unbanned " + Bukkit.getOfflinePlayer(ban.getUuid()).getName());
Plex.get().getPunishmentManager().unban(punishment);
// Plex.get().getBanManager().unban(ban.getId());
// Bukkit.broadcastMessage("Plex - Unbanned " + Bukkit.getOfflinePlayer(ban.getUuid()).getName());
Bukkit.broadcast(Component.text("Plex - Unbanned " + Bukkit.getOfflinePlayer(punishment.getPunished()).getName()));
}
}
}
@ -29,6 +33,6 @@ public class BanService extends AbstractService
@Override
public int repeatInSeconds()
{
return 10;
return 1;
}
}