Advertisement
hassansyyid

Untitled

Aug 3rd, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.09 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 DropParty")
  87.             .criterion(Criteria.DUMMY)
  88.             .objectiveDisplayMode(ObjectiveDisplayModes.INTEGER)
  89.             .displayName(Texts.of(TextColors.GREEN, "Votes to DropParty: " + votesRemaining))
  90.             .build();
  91.  
  92.         scoreboard = scoreboardBuilder.build();
  93.         scoreboard.addObjective(objective, DisplaySlots.SIDEBAR);
  94.  
  95.         // Config File
  96.         try
  97.         {
  98.             if (!dConfig.exists())
  99.             {
  100.                 dConfig.createNewFile();
  101.                 config = confManager.load();
  102.                 confManager.save(config);
  103.             }
  104.             configurationManager = confManager;
  105.             config = confManager.load();
  106.  
  107.         }
  108.         catch (IOException exception)
  109.         {
  110.             getLogger().error("The default configuration could not be loaded or created!");
  111.         }
  112.  
  113.         CommandSpec voteCommandSpec = CommandSpec.builder()
  114.             .description(Texts.of("Vote for a DropParty Command"))
  115.             .permission("vote.use")
  116.             .executor(new VoteExecutor())
  117.             .build();
  118.  
  119.         game.getCommandDispatcher().register(this, voteCommandSpec, "vote", "v");
  120.  
  121.         getLogger().info("-----------------------------");
  122.         getLogger().info("DropParty was made by HassanS6000!");
  123.         getLogger().info("Please post all errors on the Sponge Thread or on GitHub!");
  124.         getLogger().info("Have fun, and enjoy! :D");
  125.         getLogger().info("-----------------------------");
  126.         getLogger().info("DropParty loaded!");
  127.     }
  128.  
  129.     @Subscribe
  130.     public void onDropParty(DropPartyEvent event)
  131.     {
  132.         for (Player p : game.getServer().getOnlinePlayers())
  133.         {
  134.             p.sendMessage(Texts.of(TextColors.GREEN, "[DropParty]: ", TextColors.YELLOW, "DropParty started!"));
  135.             ItemStack stack = ItemBuilder.itemType(ItemTypes.CHEST).quantity(1).build();
  136.             p.setItemInHand(stack);
  137.         }
  138.     }
  139.  
  140.     @Subscribe
  141.     public void onPlayerJoin(PlayerJoinEvent event)
  142.     {
  143.         event.getEntity().setScoreboard(scoreboard);
  144.     }
  145.  
  146.     public static ConfigurationLoader<CommentedConfigurationNode> getConfigManager()
  147.     {
  148.         return configurationManager;
  149.     }
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement