hassansyyid

Untitled

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