Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package io.github.hsyyid.dropparty;
- import io.github.hsyyid.dropparty.cmdexecutors.VoteExecutor;
- import io.github.hsyyid.dropparty.events.DropPartyEvent;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import ninja.leaping.configurate.ConfigurationNode;
- import ninja.leaping.configurate.commented.CommentedConfigurationNode;
- import ninja.leaping.configurate.loader.ConfigurationLoader;
- import org.slf4j.Logger;
- import org.spongepowered.api.Game;
- import org.spongepowered.api.GameRegistry;
- import org.spongepowered.api.entity.player.Player;
- import org.spongepowered.api.event.Subscribe;
- import org.spongepowered.api.event.entity.player.PlayerJoinEvent;
- import org.spongepowered.api.event.state.ServerStartedEvent;
- import org.spongepowered.api.item.ItemTypes;
- import org.spongepowered.api.item.inventory.ItemStack;
- import org.spongepowered.api.item.inventory.ItemStackBuilder;
- import org.spongepowered.api.plugin.Plugin;
- import org.spongepowered.api.scoreboard.Score;
- import org.spongepowered.api.scoreboard.Scoreboard;
- import org.spongepowered.api.scoreboard.ScoreboardBuilder;
- import org.spongepowered.api.scoreboard.critieria.Criteria;
- import org.spongepowered.api.scoreboard.critieria.Criterion;
- import org.spongepowered.api.scoreboard.displayslot.DisplaySlot;
- import org.spongepowered.api.scoreboard.displayslot.DisplaySlots;
- import org.spongepowered.api.scoreboard.objective.Objective;
- import org.spongepowered.api.scoreboard.objective.ObjectiveBuilder;
- import org.spongepowered.api.scoreboard.objective.displaymode.ObjectiveDisplayMode;
- import org.spongepowered.api.scoreboard.objective.displaymode.ObjectiveDisplayModes;
- import org.spongepowered.api.service.config.DefaultConfig;
- import org.spongepowered.api.text.Texts;
- import org.spongepowered.api.text.format.TextColors;
- import org.spongepowered.api.util.command.spec.CommandSpec;
- import org.spongepowered.api.world.TeleportHelper;
- import com.google.inject.Inject;
- @Plugin(id = "DropParty", name = "DropParty", version = "0.1")
- public class Main
- {
- public static Game game = null;
- public static ConfigurationNode config = null;
- public static ConfigurationLoader<CommentedConfigurationNode> configurationManager;
- public static TeleportHelper helper;
- public static int votesRemaining = 2;
- public static ItemStackBuilder ItemBuilder;
- public static ScoreboardBuilder scoreboardBuilder;
- public static ArrayList<Player> voters = new ArrayList<Player>();
- public static Scoreboard scoreboard;
- @Inject
- private Logger logger;
- public Logger getLogger()
- {
- return logger;
- }
- @Inject
- @DefaultConfig(sharedRoot = true)
- private File dConfig;
- @Inject
- @DefaultConfig(sharedRoot = true)
- private ConfigurationLoader<CommentedConfigurationNode> confManager;
- @Subscribe
- public void onServerStart(ServerStartedEvent event)
- {
- getLogger().info("DropParty loading...");
- game = event.getGame();
- helper = game.getTeleportHelper();
- GameRegistry registry = game.getRegistry();
- ItemBuilder = registry.getItemBuilder();
- scoreboardBuilder = registry.getScoreboardBuilder();
- ObjectiveBuilder objectiveBuilder = registry.getObjectiveBuilder();
- Objective objective = objectiveBuilder
- .name("Votes to DropParty")
- .criterion(Criteria.DUMMY)
- .objectiveDisplayMode(ObjectiveDisplayModes.INTEGER)
- .displayName(Texts.of(TextColors.GREEN, "Votes to DropParty: " + votesRemaining))
- .build();
- scoreboard = scoreboardBuilder.build();
- scoreboard.addObjective(objective, DisplaySlots.SIDEBAR);
- // Config File
- try
- {
- if (!dConfig.exists())
- {
- dConfig.createNewFile();
- config = confManager.load();
- confManager.save(config);
- }
- configurationManager = confManager;
- config = confManager.load();
- }
- catch (IOException exception)
- {
- getLogger().error("The default configuration could not be loaded or created!");
- }
- CommandSpec voteCommandSpec = CommandSpec.builder()
- .description(Texts.of("Vote for a DropParty Command"))
- .permission("vote.use")
- .executor(new VoteExecutor())
- .build();
- game.getCommandDispatcher().register(this, voteCommandSpec, "vote", "v");
- getLogger().info("-----------------------------");
- getLogger().info("DropParty was made by HassanS6000!");
- getLogger().info("Please post all errors on the Sponge Thread or on GitHub!");
- getLogger().info("Have fun, and enjoy! :D");
- getLogger().info("-----------------------------");
- getLogger().info("DropParty loaded!");
- }
- @Subscribe
- public void onDropParty(DropPartyEvent event)
- {
- for (Player p : game.getServer().getOnlinePlayers())
- {
- p.sendMessage(Texts.of(TextColors.GREEN, "[DropParty]: ", TextColors.YELLOW, "DropParty started!"));
- ItemStack stack = ItemBuilder.itemType(ItemTypes.CHEST).quantity(1).build();
- p.setItemInHand(stack);
- }
- }
- @Subscribe
- public void onPlayerJoin(PlayerJoinEvent event)
- {
- event.getEntity().setScoreboard(scoreboard);
- }
- public static ConfigurationLoader<CommentedConfigurationNode> getConfigManager()
- {
- return configurationManager;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement