Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package dev.zach.zoraspixelmon;
- // Sponge Imports
- import org.spongepowered.api.plugin.Plugin;
- import org.spongepowered.api.plugin.PluginContainer;
- import org.spongepowered.api.text.Text;
- import org.spongepowered.api.text.format.TextColors;
- import org.spongepowered.api.util.TypeTokens;
- import org.spongepowered.api.Sponge;
- import org.spongepowered.api.asset.Asset;
- import org.spongepowered.api.config.ConfigDir;
- import org.spongepowered.api.config.DefaultConfig;
- import org.spongepowered.api.entity.living.player.Player;
- import org.spongepowered.api.event.Listener;
- import org.spongepowered.api.event.game.state.GamePreInitializationEvent;
- import org.spongepowered.api.event.game.state.GameStartedServerEvent;
- import org.spongepowered.api.event.message.MessageChannelEvent;
- import org.spongepowered.api.event.network.ClientConnectionEvent;
- import org.spongepowered.api.item.ItemType;
- import org.spongepowered.api.item.inventory.ItemStack;
- // Other Imports
- import com.google.inject.Inject;
- import com.pixelmonmod.pixelmon.Pixelmon;
- import com.pixelmonmod.pixelmon.api.enums.ReceiveType;
- import com.pixelmonmod.pixelmon.api.events.CaptureEvent;
- import com.pixelmonmod.pixelmon.api.events.PixelmonReceivedEvent;
- import com.pixelmonmod.pixelmon.config.PixelmonItems;
- import com.pixelmonmod.pixelmon.config.PixelmonItemsPokeballs;
- import com.pixelmonmod.pixelmon.enums.items.EnumPokeballs;
- import com.pixelmonmod.pixelmon.items.ItemPokeball;
- import com.pixelmonmod.pixelmon.items.PixelmonItem;
- import dev.zach.levelsystem.LevelManager;
- import dev.zach.levelsystem.PlayerLevel;
- import dev.zach.listeners.OnCatch;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- import ninja.leaping.configurate.ConfigurationNode;
- import ninja.leaping.configurate.commented.CommentedConfigurationNode;
- import ninja.leaping.configurate.hocon.HoconConfigurationLoader;
- import ninja.leaping.configurate.loader.ConfigurationLoader;
- import ninja.leaping.configurate.objectmapping.ObjectMappingException;
- import org.jline.utils.Log;
- import org.slf4j.Logger;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.util.Optional;
- import java.util.UUID;
- @Plugin(id = "zoraspixelmon", name = "Zoras Pixelmon", version = "0.1", description = "Zoras pixelmon custom additions")
- public class Main {
- public static Config config;
- private ConfigurationNode node;
- @Inject
- private Logger logger;
- @Inject
- @DefaultConfig(sharedRoot = true)
- private Path defaultConfig;
- @Inject
- @DefaultConfig(sharedRoot = true)
- private ConfigurationLoader<CommentedConfigurationNode> configManager;
- @Inject
- @ConfigDir(sharedRoot = true)
- private Path privateConfigDir;
- public static PluginContainer pluginContainer; // new
- @Listener
- public void onInit(GamePreInitializationEvent event) {
- Pixelmon.EVENT_BUS.register(new OnCatch());
- config = new Config(getLoader(defaultConfig));
- config.save();
- config.load();
- }
- @Listener
- public void onServerStart(GameStartedServerEvent event) {
- logger.info("Successfully running Zoras Pixelmon : [Version 0.1]");
- pluginContainer = Sponge.getPluginManager().getPlugin("zoraspixelmon").get(); // new
- Asset asset = pluginContainer.getAsset("zoraspixelmon.conf").orElse(null); // new
- Path configPath = privateConfigDir.resolve("zoraspixelmon.conf"); // new
- // new stuff start
- if (Files.notExists(configPath)) {
- try {
- asset.copyToFile(configPath);
- } catch (IOException e) {
- logger.error("Could not unpack default config.");
- e.printStackTrace();
- return;
- }
- }
- try {
- node = configManager.load();
- } catch (IOException e) {
- logger.error("IO Exception occured while trying to load config");
- e.printStackTrace();
- return;
- }
- // new stuff end
- }
- public static Config getConfig() {
- return config;
- }
- private static HoconConfigurationLoader getLoader(Path path) {
- return HoconConfigurationLoader.builder().setPath(path).build();
- }
- public int readConfigLevel(Player player){
- UUID uuid = player.getUniqueId();
- int level = node.getNode("Players", "Level", uuid).getInt();
- logger.info("Level - " + level);
- return level;
- }
- public int readConfigExp(Player player) {
- UUID uuid = player.getUniqueId();
- int xp = node.getNode("Players", "XP", uuid).getInt();
- return xp;
- }
- @Listener
- public void onJoin(ClientConnectionEvent.Join event) {
- Player player = event.getTargetEntity();
- event.setMessage(Text.of(TextColors.GREEN, "[", TextColors.GOLD, "!", TextColors.GREEN, "] ", player.getName(), " has joined the server"));
- //Sponge.getServer().getBroadcastChannel().send(Text.of(TextColors.GREEN, "[", TextColors.GOLD, "!", TextColors.GREEN, "] ", player.getName(), " has joined the server"));
- if (!(player.hasPlayedBefore())) {
- LevelManager.playerLevelList.put(player.getUniqueId(), new PlayerLevel(1, 0));
- player.sendMessage(Text.of(TextColors.GOLD, "Welcome to Zoras Pixelmon! Enjoy this starting bonus of pokeballs on us. :)"));
- player.sendMessage(Text.of(TextColors.BLUE, "Make sure to join the Discord at https://discord.gg/yAj9JKw"));
- ItemStack pokeBall = ItemStack.builder().itemType((ItemType) PixelmonItemsPokeballs.pokeBall).build();
- pokeBall.setQuantity(10);
- player.getInventory().offer(pokeBall);
- ItemStack greatBall = ItemStack.builder().itemType((ItemType) PixelmonItemsPokeballs.greatBall).build();
- greatBall.setQuantity(5);
- player.getInventory().offer(greatBall);
- } else {
- player.sendMessage(Text.of(TextColors.GOLD, "Welcome back to Zoras Pixelmon!"));
- player.sendMessage(Text.of(TextColors.BLUE, "Make sure to join the Discord at https://discord.gg/yAj9JKw"));
- int level = readConfigLevel(player);
- int xp = readConfigExp(player);
- LevelManager.playerLevelList.put(player.getUniqueId(), new PlayerLevel(level, xp));
- }
- }
- @Listener
- public void onLeave(ClientConnectionEvent.Disconnect event) {
- Player player = event.getTargetEntity();
- PlayerLevel playerLevel = LevelManager.playerLevelList.get(player.getUniqueId());
- config.doConfig(player);
- LevelManager.playerLevelList.remove(player.getUniqueId());
- event.setMessage(Text.of(TextColors.GREEN, "[", TextColors.GOLD, "!", TextColors.GREEN, "] ", player.getName(), " has left the server"));
- }
- @Listener
- public void onChat(MessageChannelEvent.Chat event) {
- Optional<Player> player = event.getCause().<Player>first(Player.class);
- String playerName = player.get().getName();
- PlayerLevel playerLevel = LevelManager.playerLevelList.get(player.get().getUniqueId());
- int level = playerLevel.getLevel();
- if (playerName.equals("ZachThePwn") || playerName.equals("kuzmin0445")) {
- String originalMessage = event.getRawMessage().toPlain();
- event.setMessage(Text.of(TextColors.YELLOW, "[", TextColors.GOLD, level, TextColors.YELLOW, "] ", TextColors.BLUE, "[", TextColors.RED, "Dev", TextColors.BLUE, "] ", playerName, " : ", TextColors.GREEN, originalMessage));
- } else {
- String originalMessage = event.getRawMessage().toPlain();
- event.setMessage(Text.of(TextColors.YELLOW, "[", TextColors.GOLD, level, TextColors.YELLOW, "] ", TextColors.GREEN, "[", TextColors.GOLD, "Member", TextColors.GREEN, "] ", playerName, " : ", TextColors.WHITE, originalMessage));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement