hassansyyid

Untitled

Aug 3rd, 2015
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.19 KB | None | 0 0
  1. package io.github.hsyyid.dropparty;
  2.  
  3. import io.github.hsyyid.dropparty.cmdexecutors.VoteExecutor;
  4. import io.github.hsyyid.dropparty.events.DropPartyEvent;
  5.  
  6. import java.io.File;
  7. import java.io.IOException;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10.  
  11. import ninja.leaping.configurate.ConfigurationNode;
  12. import ninja.leaping.configurate.commented.CommentedConfigurationNode;
  13. import ninja.leaping.configurate.loader.ConfigurationLoader;
  14.  
  15. import org.slf4j.Logger;
  16. import org.spongepowered.api.Game;
  17. import org.spongepowered.api.GameRegistry;
  18. import org.spongepowered.api.entity.player.Player;
  19. import org.spongepowered.api.event.Subscribe;
  20. import org.spongepowered.api.event.entity.player.PlayerJoinEvent;
  21. import org.spongepowered.api.event.state.ServerStartedEvent;
  22. import org.spongepowered.api.item.ItemTypes;
  23. import org.spongepowered.api.item.inventory.ItemStack;
  24. import org.spongepowered.api.item.inventory.ItemStackBuilder;
  25. import org.spongepowered.api.plugin.Plugin;
  26. import org.spongepowered.api.scoreboard.Score;
  27. import org.spongepowered.api.scoreboard.Scoreboard;
  28. import org.spongepowered.api.scoreboard.ScoreboardBuilder;
  29. import org.spongepowered.api.scoreboard.critieria.Criteria;
  30. import org.spongepowered.api.scoreboard.critieria.Criterion;
  31. import org.spongepowered.api.scoreboard.displayslot.DisplaySlot;
  32. import org.spongepowered.api.scoreboard.displayslot.DisplaySlots;
  33. import org.spongepowered.api.scoreboard.objective.Objective;
  34. import org.spongepowered.api.scoreboard.objective.ObjectiveBuilder;
  35. import org.spongepowered.api.scoreboard.objective.displaymode.ObjectiveDisplayMode;
  36. import org.spongepowered.api.scoreboard.objective.displaymode.ObjectiveDisplayModes;
  37. import org.spongepowered.api.service.config.DefaultConfig;
  38. import org.spongepowered.api.text.Texts;
  39. import org.spongepowered.api.text.format.TextColors;
  40. import org.spongepowered.api.util.command.spec.CommandSpec;
  41. import org.spongepowered.api.world.TeleportHelper;
  42.  
  43. import com.google.inject.Inject;
  44.  
  45. @Plugin(id = "DropParty", name = "DropParty", version = "0.1")
  46. public class Main
  47. {
  48.     public static Game game = null;
  49.     public static ConfigurationNode config = null;
  50.     public static ConfigurationLoader<CommentedConfigurationNode> configurationManager;
  51.     public static TeleportHelper helper;
  52.     public static int votesRemaining = 2;
  53.     public static ItemStackBuilder ItemBuilder;
  54.     public static ScoreboardBuilder scoreboardBuilder;
  55.     public static ArrayList<Player> voters = new ArrayList<Player>();
  56.     public static Scoreboard scoreboard;
  57.  
  58.     @Inject
  59.     private Logger logger;
  60.  
  61.     public Logger getLogger()
  62.     {
  63.         return logger;
  64.     }
  65.  
  66.     @Inject
  67.     @DefaultConfig(sharedRoot = true)
  68.     private File dConfig;
  69.  
  70.     @Inject
  71.     @DefaultConfig(sharedRoot = true)
  72.     private ConfigurationLoader<CommentedConfigurationNode> confManager;
  73.  
  74.     @Subscribe
  75.     public void onServerStart(ServerStartedEvent event)
  76.     {
  77.         getLogger().info("DropParty loading...");
  78.         game = event.getGame();
  79.         helper = game.getTeleportHelper();
  80.         GameRegistry registry = game.getRegistry();
  81.         ItemBuilder = registry.getItemBuilder();
  82.         scoreboardBuilder = registry.getScoreboardBuilder();
  83.         ObjectiveBuilder objectiveBuilder = registry.getObjectiveBuilder();
  84.  
  85.         Objective objective = objectiveBuilder
  86.             .name("Votes to DP")
  87.             .criterion(Criteria.DUMMY)
  88.             .objectiveDisplayMode(ObjectiveDisplayModes.INTEGER)
  89.             .displayName(Texts.of(TextColors.GREEN, "Votes to DP: " + votesRemaining))
  90.             .build();
  91.  
  92.         List<Objective> objectives = new ArrayList<Objective>();
  93.         objectives.add(objective);
  94.         scoreboard = scoreboardBuilder
  95.             .objectives(objectives)
  96.             .build();
  97.         scoreboard.addObjective(objective, DisplaySlots.SIDEBAR);
  98.  
  99.         // Config File
  100.         try
  101.         {
  102.             if (!dConfig.exists())
  103.             {
  104.                 dConfig.createNewFile();
  105.                 config = confManager.load();
  106.                 confManager.save(config);
  107.             }
  108.             configurationManager = confManager;
  109.             config = confManager.load();
  110.  
  111.         }
  112.         catch (IOException exception)
  113.         {
  114.             getLogger().error("The default configuration could not be loaded or created!");
  115.         }
  116.  
  117.         CommandSpec voteCommandSpec = CommandSpec.builder()
  118.             .description(Texts.of("Vote for a DropParty Command"))
  119.             .permission("vote.use")
  120.             .executor(new VoteExecutor())
  121.             .build();
  122.  
  123.         game.getCommandDispatcher().register(this, voteCommandSpec, "vote", "v");
  124.  
  125.         getLogger().info("-----------------------------");
  126.         getLogger().info("DropParty was made by HassanS6000!");
  127.         getLogger().info("Please post all errors on the Sponge Thread or on GitHub!");
  128.         getLogger().info("Have fun, and enjoy! :D");
  129.         getLogger().info("-----------------------------");
  130.         getLogger().info("DropParty loaded!");
  131.     }
  132.  
  133.     @Subscribe
  134.     public void onDropParty(DropPartyEvent event)
  135.     {
  136.         for (Player p : game.getServer().getOnlinePlayers())
  137.         {
  138.             p.sendMessage(Texts.of(TextColors.GREEN, "[DropParty]: ", TextColors.YELLOW, "DropParty started!"));
  139.             ItemStack stack = ItemBuilder.itemType(ItemTypes.CHEST).quantity(1).build();
  140.             p.setItemInHand(stack);
  141.         }
  142.     }
  143.  
  144.     @Subscribe
  145.     public void onPlayerJoin(PlayerJoinEvent event)
  146.     {
  147.         event.getEntity().setScoreboard(scoreboard);
  148.     }
  149.  
  150.     public static ConfigurationLoader<CommentedConfigurationNode> getConfigManager()
  151.     {
  152.         return configurationManager;
  153.     }
  154. }
Advertisement
Add Comment
Please, Sign In to add comment