Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.29 KB | None | 0 0
  1. package com.wondertrademod.wondertrade;
  2.  
  3. import com.google.common.collect.ImmutableList;
  4. import com.pixelmonmod.pixelmon.RandomHelper;
  5. import com.pixelmonmod.pixelmon.config.PixelmonConfig;
  6. import com.pixelmonmod.pixelmon.config.PixelmonEntityList;
  7. import com.pixelmonmod.pixelmon.entities.pixelmon.EntityPixelmon;
  8. import com.pixelmonmod.pixelmon.entities.pixelmon.stats.Level;
  9. import com.pixelmonmod.pixelmon.enums.EnumPokemon;
  10. import com.wondertrademod.wondertrade.config.WondertradeConfig;
  11. import java.util.ArrayList;
  12. import java.util.HashMap;
  13. import java.util.Timer;
  14. import java.util.UUID;
  15. import net.minecraft.entity.player.EntityPlayerMP;
  16. import net.minecraft.server.MinecraftServer;
  17. import net.minecraftforge.common.MinecraftForge;
  18. import net.minecraftforge.fml.common.eventhandler.EventBus;
  19. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  20. import net.minecraftforge.fml.common.gameevent.TickEvent.WorldTickEvent;
  21.  
  22. public class WondertradeManager
  23. {
  24.   public ArrayList<EntityPixelmon> pokemonPool = new ArrayList();
  25.   public HashMap<UUID, Long> cooldowns = new HashMap();
  26.   public static WondertradeManager instance;
  27.   private HashMap<UUID, Integer> defaultCooldowns = new HashMap();
  28.  
  29.   public WondertradeManager()
  30.   {
  31.     instance = this;
  32.   }
  33.  
  34.   public void initializePool()
  35.   {
  36.     Wondertrade.world = Utilities.getServer().func_71218_a(0);
  37.     this.pokemonPool = generateRandomPool(Integer.valueOf(WondertradeConfig.poolSize));
  38.   }
  39.  
  40.   @SubscribeEvent
  41.   public void onWorldTick(TickEvent.WorldTickEvent event)
  42.   {
  43.     instance.initializePool();
  44.     if ((!WondertradeConfig.announcement.equals("")) && (WondertradeConfig.announcementInterval > 0)) {
  45.       new Timer().scheduleAtFixedRate(new Announcer(), 10000L, 60000L);
  46.     }
  47.     MinecraftForge.EVENT_BUS.unregister(this);
  48.   }
  49.  
  50.   public void checkPoolSize()
  51.   {
  52.     if (this.pokemonPool.size() < WondertradeConfig.poolSize)
  53.     {
  54.       ArrayList<EntityPixelmon> supplementPool = generateRandomPool(Integer.valueOf(WondertradeConfig.poolSize - this.pokemonPool.size()));
  55.       for (EntityPixelmon p : supplementPool) {
  56.         this.pokemonPool.add(p);
  57.       }
  58.     }
  59.     else if (this.pokemonPool.size() > WondertradeConfig.poolSize)
  60.     {
  61.       for (int i = 0; i < this.pokemonPool.size() - WondertradeConfig.poolSize; i++) {
  62.         this.pokemonPool.remove(0);
  63.       }
  64.     }
  65.   }
  66.  
  67.   public void doPoolAnnouncement()
  68.   {
  69.     int numLegendaries = 0;
  70.     int numShinies = 0;
  71.    
  72.     checkPoolSize();
  73.     for (EntityPixelmon p : this.pokemonPool)
  74.     {
  75.       if (EnumPokemon.legendaries.contains(p.func_70005_c_())) {
  76.         numLegendaries++;
  77.       }
  78.       if (p.getIsShiny()) {
  79.         numShinies++;
  80.       }
  81.     }
  82.     String[] splits = WondertradeConfig.announcement.split("::");
  83.     for (int i = 0; i < splits.length; i++) {
  84.       if (!splits[i].equals("")) {
  85.         Utilities.sendServerWideMessage(splits[i]);
  86.       }
  87.     }
  88.     Utilities.sendServerWideMessage(WondertradeConfig.currentPool.replaceAll("POOLSIZE", this.pokemonPool.size() + ""));
  89.     if (numLegendaries > 0)
  90.     {
  91.       String msg = WondertradeConfig.howManyLegendaries.replaceAll("LEGENDARYCOUNT", numLegendaries + "");
  92.       if (numLegendaries == 1) {
  93.         msg = msg.replaceAll("ISARE", "is");
  94.       } else {
  95.         msg = msg.replaceAll("ISARE", "are");
  96.       }
  97.       Utilities.sendServerWideMessage(msg);
  98.     }
  99.     if (PixelmonConfig.shinyRate != 1.0F)
  100.     {
  101.       String msg = WondertradeConfig.howManyShinies.replaceAll("SHINYCOUNT", numShinies + "");
  102.       if (numShinies > 0)
  103.       {
  104.         if (numShinies == 1) {
  105.           msg = msg.replaceAll("ISARE", "is");
  106.         } else {
  107.           msg = msg.replaceAll("ISARE", "are");
  108.         }
  109.         Utilities.sendServerWideMessage(msg);
  110.       }
  111.     }
  112.     Utilities.sendServerWideMessage(WondertradeConfig.tryYourLuck);
  113.   }
  114.  
  115.   public ArrayList<EntityPixelmon> generateRandomPool(Integer intSize)
  116.   {
  117.     ArrayList<EntityPixelmon> pool = new ArrayList();
  118.     for (int i = 0; i < intSize.intValue(); i++)
  119.     {
  120.       EntityPixelmon p = getRandomEntityPixelmon();
  121.       if (p != null) {
  122.         pool.add(p);
  123.       }
  124.     }
  125.     return pool;
  126.   }
  127.  
  128.   public EntityPixelmon getRandomEntityPixelmon()
  129.   {
  130.     EntityPixelmon pokemon;
  131.     if ((WondertradeConfig.legendaryRate < 1) || (RandomHelper.getRandomNumberBetween(1, WondertradeConfig.legendaryRate) != 1))
  132.     {
  133.       EntityPixelmon pokemon;
  134.       do
  135.       {
  136.         pokemon = (EntityPixelmon)PixelmonEntityList.createEntityByName(EnumPokemon.randomPoke().name, Wondertrade.world);
  137.       } while (EnumPokemon.legendaries.contains(pokemon.func_70005_c_()));
  138.     }
  139.     else
  140.     {
  141.       String legendary;
  142.       do
  143.       {
  144.         legendary = (String)EnumPokemon.legendaries.get(RandomHelper.getRandomNumberBetween(0, EnumPokemon.legendaries.size() - 1));
  145.       } while (!EnumPokemon.getNameList().contains(legendary));
  146.       pokemon = (EntityPixelmon)PixelmonEntityList.createEntityByName(legendary, Wondertrade.world);
  147.     }
  148.     pokemon.getLvl().setLevel(RandomHelper.getRandomNumberBetween(WondertradeConfig.minLevel, WondertradeConfig.maxLevel));
  149.     if ((RandomHelper.getRandomNumberBetween(1, (int)PixelmonConfig.shinyRate) > 1) || (PixelmonConfig.shinyRate == 0.0F)) {
  150.       pokemon.setIsShiny(false);
  151.     } else {
  152.       pokemon.setIsShiny(true);
  153.     }
  154.     return pokemon;
  155.   }
  156.  
  157.   public EntityPixelmon exchangePokemon(String username, EntityPixelmon entityPixelmonFromPlayer)
  158.   {
  159.     int rand = RandomHelper.getRandomNumberBetween(0, this.pokemonPool.size() - 1);
  160.     EntityPixelmon entityPixelmonFromPool = (EntityPixelmon)this.pokemonPool.get(rand);
  161.     this.pokemonPool.remove(rand);
  162.     this.pokemonPool.add(entityPixelmonFromPlayer);
  163.     checkAddAnnouncement(username, entityPixelmonFromPlayer);
  164.     checkReceiveAnnouncement(username, entityPixelmonFromPool);
  165.    
  166.     return entityPixelmonFromPool;
  167.   }
  168.  
  169.   public void checkAddAnnouncement(String username, EntityPixelmon entityPixelmonFromPlayer)
  170.   {
  171.     try
  172.     {
  173.       if (EnumPokemon.legendaries.contains(entityPixelmonFromPlayer.func_70005_c_()))
  174.       {
  175.         Utilities.sendServerWideMessage(WondertradeConfig.legendaryAdded.replaceAll("PLAYERNAME", username).replaceAll("POKEMONNAME", entityPixelmonFromPlayer.func_70005_c_()));
  176.         Utilities.sendServerWideMessage(WondertradeConfig.tryYourLuck);
  177.       }
  178.       if ((entityPixelmonFromPlayer.getIsShiny()) && (PixelmonConfig.shinyRate != 1.0F))
  179.       {
  180.         Utilities.sendServerWideMessage(WondertradeConfig.shinyAdded.replaceAll("PLAYERNAME", username).replaceAll("POKEMONNAME", entityPixelmonFromPlayer.func_70005_c_()));
  181.         Utilities.sendServerWideMessage(WondertradeConfig.tryYourLuck);
  182.       }
  183.     }
  184.     catch (Exception e)
  185.     {
  186.       e.printStackTrace();
  187.     }
  188.   }
  189.  
  190.   public void checkReceiveAnnouncement(String username, EntityPixelmon entityPixelmonToPlayer)
  191.   {
  192.     try
  193.     {
  194.       if (EnumPokemon.legendaries.contains(entityPixelmonToPlayer.func_70005_c_()))
  195.       {
  196.         Utilities.sendServerWideMessage(WondertradeConfig.legendaryReceived.replaceAll("PLAYERNAME", username).replaceAll("POKEMONNAME", entityPixelmonToPlayer.func_70005_c_()));
  197.         Utilities.sendServerWideMessage(WondertradeConfig.tryYourLuck);
  198.       }
  199.       if ((entityPixelmonToPlayer.getIsShiny()) && (PixelmonConfig.shinyRate != 1.0F))
  200.       {
  201.         Utilities.sendServerWideMessage(WondertradeConfig.shinyReceived.replaceAll("PLAYERNAME", username).replaceAll("POKEMONNAME", entityPixelmonToPlayer.func_70005_c_()));
  202.         Utilities.sendServerWideMessage(WondertradeConfig.tryYourLuck);
  203.       }
  204.     }
  205.     catch (Exception e)
  206.     {
  207.       e.printStackTrace();
  208.     }
  209.   }
  210.  
  211.   public void addCooldown(EntityPlayerMP player, Long time)
  212.   {
  213.     this.cooldowns.put(player.func_110124_au(), time);
  214.   }
  215.  
  216.   public int getDefaultCooldown(EntityPlayerMP player)
  217.   {
  218.     if (this.defaultCooldowns.containsKey(player.func_110124_au())) {
  219.       return ((Integer)this.defaultCooldowns.get(player.func_110124_au())).intValue();
  220.     }
  221.     return -1;
  222.   }
  223.  
  224.   public void setDefaultCooldown(UUID uuid, int cooldown)
  225.   {
  226.     this.defaultCooldowns.put(uuid, Integer.valueOf(cooldown));
  227.   }
  228.  
  229.   public void saveDefaultCooldowns()
  230.   {
  231.     Utilities.saveCooldowns(this.defaultCooldowns);
  232.   }
  233. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement