Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // PiXeloot.java Main Class
- package com.baito.pixeloot;
- import com.baito.pixeloot.listener.BeatWildPixelmonListener;
- import com.google.inject.Inject;
- import org.spongepowered.api.Sponge;
- import org.spongepowered.api.event.game.state.GameStartedServerEvent;
- import org.spongepowered.api.event.Listener;
- import org.spongepowered.api.plugin.Dependency;
- import org.spongepowered.api.plugin.Plugin;
- import com.pixelmonmod.pixelmon.Pixelmon;
- import org.spongepowered.api.service.economy.EconomyService;
- import org.spongepowered.api.plugin.PluginContainer;
- import java.util.Optional;
- @Plugin(
- id = "pixeloot",
- name = "PiXeloot",
- version = "1.0-API7-SNAPSHOT",
- authors = {"Baito"},
- description = "Earn money from defeating Pokemon",
- dependencies = {@Dependency(id="pixelmon")}
- )
- public class PiXeloot {
- public PiXeloot() {};
- @Inject
- private PluginContainer pluginContainer;
- private Optional<EconomyService> serviceOpt = Sponge.getServiceManager().provide(EconomyService.class);
- private EconomyService economy = serviceOpt.get();
- public static PiXeloot instance;
- @Listener
- public void onServerStart(GameStartedServerEvent event) {
- instance = this;
- this.registerListener();
- }
- private void registerListener() { Pixelmon.EVENT_BUS.register(new BeatWildPixelmonListener()); }
- public EconomyService getEconomy() { return this.economy; }
- public PluginContainer getPluginContainer() { return this.pluginContainer; }
- }
- // BeatWildPixelmonListener
- package com.baito.pixeloot.listener;
- import com.baito.pixeloot.PiXeloot;
- import com.pixelmonmod.pixelmon.Pixelmon;
- import com.pixelmonmod.pixelmon.api.events.BeatWildPixelmonEvent;
- import com.pixelmonmod.pixelmon.battles.controller.participants.PixelmonWrapper;
- import com.pixelmonmod.pixelmon.entities.pixelmon.EntityPixelmon;
- import java.math.BigDecimal;
- import java.util.Optional;
- import com.pixelmonmod.pixelmon.storage.PlayerPartyStorage;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- import org.spongepowered.api.entity.living.player.Player;
- import org.spongepowered.api.event.cause.Cause;
- import org.spongepowered.api.event.cause.EventContext;
- import org.spongepowered.api.event.cause.EventContextKeys;
- import org.spongepowered.api.service.economy.account.UniqueAccount;
- import org.spongepowered.api.text.Text;
- public class BeatWildPixelmonListener {
- public BeatWildPixelmonListener() {}
- @SubscribeEvent
- public void defeatWild(BeatWildPixelmonEvent e) {
- Player p = (Player)e.player;
- BigDecimal finalReward = BigDecimal.valueOf(0);
- Optional<UniqueAccount> optBank = PiXeloot.instance.getEconomy().getOrCreateAccount(p.getUniqueId());
- if (optBank.isPresent()) {
- UniqueAccount bank = optBank.get();
- PixelmonWrapper[] allPixelmon = e.wpp.allPokemon;
- for (int i = 0; i < allPixelmon.length; i++) {
- PlayerPartyStorage party = Pixelmon.storageManager.getParty(p.getUniqueId());
- BigDecimal reward;
- EntityPixelmon opponent = allPixelmon[i].entity;
- double levelDiffMult = (100 - ((double)party.averageLevel*2 - (double) opponent.getPokemonData().getLevel()*2))/100;
- // Takes the players average party level and subtracts the opponents level from it.
- // Parties with high average levels compared to the opponent will get lower multipliers, while
- // parties with low average levels compared to the opponent will get higher multipliers.
- double toMultiply = Math.floor(Math.random() * 1000) - 500;
- reward = BigDecimal.valueOf(toMultiply * levelDiffMult);
- finalReward = finalReward.add(reward);
- }
- bank.deposit(PiXeloot.instance.getEconomy().getDefaultCurrency(), finalReward, Cause.builder().append(PiXeloot.instance).build(EventContext.builder().add(EventContextKeys.PLUGIN, PiXeloot.instance.getPluginContainer()).build()));
- Text message = Text.of("§f[§dpiXeloot§f] §aYou earned P§a" + finalReward.toString() + "!");
- p.sendMessage(message);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement