create constructor with plugin parameter in RedisClass

This commit is contained in:
mohammed jasem alaajel 2022-07-16 09:39:36 +04:00
parent 44f9a0945d
commit b15b9dbb96
1 changed files with 15 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package com.imaginarycode.minecraft.redisbungee.internal.util;
import com.imaginarycode.minecraft.redisbungee.RedisBungeeAPI;
import com.imaginarycode.minecraft.redisbungee.internal.RedisBungeePlugin;
import com.imaginarycode.minecraft.redisbungee.internal.summoners.ClusterJedisSummoner;
import com.imaginarycode.minecraft.redisbungee.internal.summoners.JedisSummoner;
import com.imaginarycode.minecraft.redisbungee.internal.summoners.Summoner;
@ -14,6 +15,8 @@ public abstract class RedisTask<V> implements Runnable, Callable<V> {
private final Summoner<?> summoner;
private final RedisBungeeAPI api;
private RedisBungeePlugin<?> plugin;
@Override
public V call() throws Exception {
return execute();
@ -24,6 +27,12 @@ public abstract class RedisTask<V> implements Runnable, Callable<V> {
this.summoner = api.getSummoner();
}
public RedisTask(RedisBungeePlugin<?> plugin) {
this.plugin = plugin;
this.api = plugin.getApi();
this.summoner = api.getSummoner();
}
public abstract V singleJedisTask(Jedis jedis);
public abstract V clusterJedisTask(JedisCluster jedisCluster);
@ -47,4 +56,10 @@ public abstract class RedisTask<V> implements Runnable, Callable<V> {
return null;
}
public RedisBungeePlugin<?> getPlugin() {
if (plugin == null) {
throw new NullPointerException("Plugin is null in the task");
}
return plugin;
}
}