mirror of
https://github.com/plexusorg/Plex.git
synced 2025-06-29 14:56:43 +00:00
tttt
This commit is contained in:
16
src/main/java/dev/plex/services/AbstractService.java
Normal file
16
src/main/java/dev/plex/services/AbstractService.java
Normal 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;
|
||||
}
|
||||
}
|
9
src/main/java/dev/plex/services/IService.java
Normal file
9
src/main/java/dev/plex/services/IService.java
Normal file
@ -0,0 +1,9 @@
|
||||
package dev.plex.services;
|
||||
|
||||
public interface IService
|
||||
{
|
||||
|
||||
void run();
|
||||
|
||||
int repeatInSeconds();
|
||||
}
|
44
src/main/java/dev/plex/services/ServiceManager.java
Normal file
44
src/main/java/dev/plex/services/ServiceManager.java
Normal 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();
|
||||
}
|
||||
|
||||
}
|
32
src/main/java/dev/plex/services/impl/BanService.java
Normal file
32
src/main/java/dev/plex/services/impl/BanService.java
Normal 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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user