Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.96 KB | None | 0 0
  1. package fr.opperdev.apispigot.tools.redis;
  2.  
  3. import com.google.gson.GsonBuilder;
  4. import fr.opperdev.apispigot.Main;
  5. import fr.opperdev.apispigot.tools.Serializer;
  6. import fr.opperdev.apispigot.tools.User;
  7. import fr.opperdev.apispigot.tools.UserDeserializer;
  8. import org.bukkit.Bukkit;
  9. import redis.clients.jedis.Jedis;
  10. import redis.clients.jedis.JedisPool;
  11.  
  12. import java.util.Set;
  13.  
  14. /**
  15.  * Created by user on 22/03/2019.
  16.  */
  17. public class RedisAPI {
  18.  
  19.     private JedisPool jedisPool;
  20.     private String password;
  21.  
  22.     public RedisAPI(String host, int port, String password) {
  23.         this.jedisPool = new JedisPool(host, port);
  24.         this.password = password;
  25.     }
  26.  
  27.     public <T> void set(String key, T object) {
  28.         Bukkit.getScheduler().runTaskAsynchronously(Main.instance,
  29.                 () -> {
  30.                     Serializer<T> serializer = new Serializer<T>();
  31.                     Jedis jedis = getResource();
  32.                     jedis.auth(this.password);
  33.                     jedis.set(key, serializer.serialize(object));
  34.                 });
  35.     }
  36.  
  37.     public <T> T get(String key, Class<T> clazz) {
  38.         Serializer<T> serializer;
  39.         if (clazz == User.class) {
  40.              serializer = new Serializer<T>(new GsonBuilder().disableHtmlEscaping().serializeNulls().setPrettyPrinting().registerTypeAdapter(User.class, new UserDeserializer()));
  41.         } else  serializer = new Serializer<T>();
  42.         Jedis jedis = getResource();
  43.         jedis.auth(this.password);
  44.         return serializer.deserialize(jedis.get(key), clazz);
  45.     }
  46.  
  47.     public Set<String> keys(String pattern) {
  48.         Jedis jedis = getResource();
  49.         jedis.auth(this.password);
  50.         return jedis.keys(pattern);
  51.     }
  52.  
  53.     public boolean exists(String key) {
  54.         return getResource().exists(key);
  55.     }
  56.  
  57.     public Jedis getResource() {
  58.         return this.jedisPool.getResource();
  59.     }
  60.  
  61.     public void close() {
  62.         jedisPool.close();
  63.     }
  64.  
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement