Advertisement
Guest User

Untitled

a guest
Dec 6th, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.46 KB | None | 0 0
  1. package dev.zach.zoraspixelmon;
  2.  
  3. // Sponge Imports
  4. import org.spongepowered.api.plugin.Plugin;
  5. import org.spongepowered.api.plugin.PluginContainer;
  6. import org.spongepowered.api.text.Text;
  7. import org.spongepowered.api.text.format.TextColors;
  8. import org.spongepowered.api.util.TypeTokens;
  9. import org.spongepowered.api.Sponge;
  10. import org.spongepowered.api.asset.Asset;
  11. import org.spongepowered.api.config.ConfigDir;
  12. import org.spongepowered.api.config.DefaultConfig;
  13. import org.spongepowered.api.entity.living.player.Player;
  14. import org.spongepowered.api.event.Listener;
  15. import org.spongepowered.api.event.game.state.GamePreInitializationEvent;
  16. import org.spongepowered.api.event.game.state.GameStartedServerEvent;
  17. import org.spongepowered.api.event.message.MessageChannelEvent;
  18. import org.spongepowered.api.event.network.ClientConnectionEvent;
  19. import org.spongepowered.api.item.ItemType;
  20. import org.spongepowered.api.item.inventory.ItemStack;
  21.  
  22.  
  23. // Other Imports
  24. import com.google.inject.Inject;
  25. import com.pixelmonmod.pixelmon.Pixelmon;
  26. import com.pixelmonmod.pixelmon.api.enums.ReceiveType;
  27. import com.pixelmonmod.pixelmon.api.events.CaptureEvent;
  28. import com.pixelmonmod.pixelmon.api.events.PixelmonReceivedEvent;
  29. import com.pixelmonmod.pixelmon.config.PixelmonItems;
  30. import com.pixelmonmod.pixelmon.config.PixelmonItemsPokeballs;
  31. import com.pixelmonmod.pixelmon.enums.items.EnumPokeballs;
  32. import com.pixelmonmod.pixelmon.items.ItemPokeball;
  33. import com.pixelmonmod.pixelmon.items.PixelmonItem;
  34.  
  35. import dev.zach.levelsystem.LevelManager;
  36. import dev.zach.levelsystem.PlayerLevel;
  37. import dev.zach.listeners.OnCatch;
  38. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  39. import ninja.leaping.configurate.ConfigurationNode;
  40. import ninja.leaping.configurate.commented.CommentedConfigurationNode;
  41. import ninja.leaping.configurate.hocon.HoconConfigurationLoader;
  42. import ninja.leaping.configurate.loader.ConfigurationLoader;
  43. import ninja.leaping.configurate.objectmapping.ObjectMappingException;
  44.  
  45. import org.jline.utils.Log;
  46. import org.slf4j.Logger;
  47.  
  48. import java.io.IOException;
  49. import java.nio.file.Files;
  50. import java.nio.file.Path;
  51. import java.util.Optional;
  52. import java.util.UUID;
  53.  
  54.  
  55. @Plugin(id = "zoraspixelmon", name = "Zoras Pixelmon", version = "0.1", description = "Zoras pixelmon custom additions")
  56. public class Main {
  57.  
  58. public static Config config;
  59.  
  60. private ConfigurationNode node;
  61.  
  62. @Inject
  63. private Logger logger;
  64.  
  65. @Inject
  66. @DefaultConfig(sharedRoot = true)
  67. private Path defaultConfig;
  68.  
  69. @Inject
  70. @DefaultConfig(sharedRoot = true)
  71. private ConfigurationLoader<CommentedConfigurationNode> configManager;
  72.  
  73. @Inject
  74. @ConfigDir(sharedRoot = true)
  75. private Path privateConfigDir;
  76.  
  77. public static PluginContainer pluginContainer; // new
  78.  
  79. @Listener
  80. public void onInit(GamePreInitializationEvent event) {
  81. Pixelmon.EVENT_BUS.register(new OnCatch());
  82. config = new Config(getLoader(defaultConfig));
  83. config.save();
  84. config.load();
  85. }
  86.  
  87. @Listener
  88. public void onServerStart(GameStartedServerEvent event) {
  89. logger.info("Successfully running Zoras Pixelmon : [Version 0.1]");
  90. pluginContainer = Sponge.getPluginManager().getPlugin("zoraspixelmon").get(); // new
  91.  
  92.  
  93. Asset asset = pluginContainer.getAsset("zoraspixelmon.conf").orElse(null); // new
  94. Path configPath = privateConfigDir.resolve("zoraspixelmon.conf"); // new
  95. // new stuff start
  96. if (Files.notExists(configPath)) {
  97. try {
  98. asset.copyToFile(configPath);
  99. } catch (IOException e) {
  100. logger.error("Could not unpack default config.");
  101. e.printStackTrace();
  102. return;
  103. }
  104. }
  105.  
  106. try {
  107. node = configManager.load();
  108. } catch (IOException e) {
  109. logger.error("IO Exception occured while trying to load config");
  110. e.printStackTrace();
  111. return;
  112. }
  113.  
  114. // new stuff end
  115.  
  116. }
  117.  
  118. public static Config getConfig() {
  119. return config;
  120. }
  121.  
  122. private static HoconConfigurationLoader getLoader(Path path) {
  123. return HoconConfigurationLoader.builder().setPath(path).build();
  124. }
  125.  
  126. public int readConfigLevel(Player player){
  127.  
  128.  
  129. UUID uuid = player.getUniqueId();
  130. int level = node.getNode("Players", "Level", uuid).getInt();
  131. logger.info("Level - " + level);
  132. return level;
  133.  
  134. }
  135.  
  136. public int readConfigExp(Player player) {
  137.  
  138.  
  139.  
  140. UUID uuid = player.getUniqueId();
  141. int xp = node.getNode("Players", "XP", uuid).getInt();
  142. return xp;
  143.  
  144. }
  145.  
  146.  
  147. @Listener
  148. public void onJoin(ClientConnectionEvent.Join event) {
  149. Player player = event.getTargetEntity();
  150. event.setMessage(Text.of(TextColors.GREEN, "[", TextColors.GOLD, "!", TextColors.GREEN, "] ", player.getName(), " has joined the server"));
  151. //Sponge.getServer().getBroadcastChannel().send(Text.of(TextColors.GREEN, "[", TextColors.GOLD, "!", TextColors.GREEN, "] ", player.getName(), " has joined the server"));
  152.  
  153. if (!(player.hasPlayedBefore())) {
  154. LevelManager.playerLevelList.put(player.getUniqueId(), new PlayerLevel(1, 0));
  155.  
  156. player.sendMessage(Text.of(TextColors.GOLD, "Welcome to Zoras Pixelmon! Enjoy this starting bonus of pokeballs on us. :)"));
  157. player.sendMessage(Text.of(TextColors.BLUE, "Make sure to join the Discord at https://discord.gg/yAj9JKw"));
  158.  
  159. ItemStack pokeBall = ItemStack.builder().itemType((ItemType) PixelmonItemsPokeballs.pokeBall).build();
  160. pokeBall.setQuantity(10);
  161. player.getInventory().offer(pokeBall);
  162.  
  163. ItemStack greatBall = ItemStack.builder().itemType((ItemType) PixelmonItemsPokeballs.greatBall).build();
  164. greatBall.setQuantity(5);
  165. player.getInventory().offer(greatBall);
  166.  
  167. } else {
  168.  
  169. player.sendMessage(Text.of(TextColors.GOLD, "Welcome back to Zoras Pixelmon!"));
  170. player.sendMessage(Text.of(TextColors.BLUE, "Make sure to join the Discord at https://discord.gg/yAj9JKw"));
  171.  
  172. int level = readConfigLevel(player);
  173. int xp = readConfigExp(player);
  174.  
  175.  
  176. LevelManager.playerLevelList.put(player.getUniqueId(), new PlayerLevel(level, xp));
  177. }
  178. }
  179.  
  180.  
  181. @Listener
  182. public void onLeave(ClientConnectionEvent.Disconnect event) {
  183. Player player = event.getTargetEntity();
  184.  
  185. PlayerLevel playerLevel = LevelManager.playerLevelList.get(player.getUniqueId());
  186.  
  187.  
  188. config.doConfig(player);
  189.  
  190. LevelManager.playerLevelList.remove(player.getUniqueId());
  191.  
  192. event.setMessage(Text.of(TextColors.GREEN, "[", TextColors.GOLD, "!", TextColors.GREEN, "] ", player.getName(), " has left the server"));
  193. }
  194.  
  195.  
  196. @Listener
  197. public void onChat(MessageChannelEvent.Chat event) {
  198. Optional<Player> player = event.getCause().<Player>first(Player.class);
  199. String playerName = player.get().getName();
  200.  
  201.  
  202. PlayerLevel playerLevel = LevelManager.playerLevelList.get(player.get().getUniqueId());
  203. int level = playerLevel.getLevel();
  204.  
  205. if (playerName.equals("ZachThePwn") || playerName.equals("kuzmin0445")) {
  206. String originalMessage = event.getRawMessage().toPlain();
  207. event.setMessage(Text.of(TextColors.YELLOW, "[", TextColors.GOLD, level, TextColors.YELLOW, "] ", TextColors.BLUE, "[", TextColors.RED, "Dev", TextColors.BLUE, "] ", playerName, " : ", TextColors.GREEN, originalMessage));
  208. } else {
  209. String originalMessage = event.getRawMessage().toPlain();
  210. event.setMessage(Text.of(TextColors.YELLOW, "[", TextColors.GOLD, level, TextColors.YELLOW, "] ", TextColors.GREEN, "[", TextColors.GOLD, "Member", TextColors.GREEN, "] ", playerName, " : ", TextColors.WHITE, originalMessage));
  211. }
  212. }
  213.  
  214.  
  215.  
  216.  
  217. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement