This commit is contained in:
2021-01-03 01:21:15 -06:00
parent 8ecc1d2fce
commit 5bafa1122c
91 changed files with 452 additions and 460 deletions

View File

@ -0,0 +1,16 @@
package dev.plex.services;
public abstract class AbstractService implements IService
{
private boolean asynchronous;
public AbstractService(boolean async)
{
this.asynchronous = async;
}
public boolean isAsynchronous() {
return asynchronous;
}
}

View File

@ -0,0 +1,9 @@
package dev.plex.services;
public interface IService
{
void run();
int repeatInSeconds();
}

View File

@ -0,0 +1,44 @@
package dev.plex.services;
import com.google.common.collect.Lists;
import dev.plex.Plex;
import dev.plex.services.impl.BanService;
import org.bukkit.Bukkit;
import java.util.List;
public class ServiceManager
{
private final List<AbstractService> services = Lists.newArrayList();
public ServiceManager()
{
registerService(new BanService());
}
public void startServices()
{
for (AbstractService service : services)
{
if (service.isAsynchronous())
{
Bukkit.getScheduler().runTaskTimerAsynchronously(Plex.get(), service::run, 0, 20 * service.repeatInSeconds());
} else {
Bukkit.getScheduler().runTaskTimer(Plex.get(), service::run, 0, 20 * service.repeatInSeconds());
}
}
}
private void registerService(AbstractService service)
{
services.add(service);
}
public int serviceCount()
{
return services.size();
}
}

View File

@ -0,0 +1,32 @@
package dev.plex.services.impl;
import dev.plex.Plex;
import dev.plex.services.AbstractService;
import dev.plex.banning.Ban;
import org.bukkit.Bukkit;
import java.util.Date;
public class BanService extends AbstractService
{
public BanService() {
super(true);
}
@Override
public void run() {
for (Ban ban : Plex.get().getBanManager().getActiveBans())
{
if (new Date().after(ban.getEndDate()))
{
Plex.get().getBanManager().unban(ban.getId());
Bukkit.broadcastMessage("Plex - Unbanned " + Bukkit.getOfflinePlayer(ban.getUuid()).getName());
}
}
}
@Override
public int repeatInSeconds() {
return 10;
}
}