hassansyyid

Untitled

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