From f1e9acbb5857fc78d844e31815c64feca52684aa Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Sat, 10 Oct 2015 02:19:05 -0400 Subject: [PATCH] Titan giveaway --- .../titangiveaway/GiveawayMessageHandler.java | 20 +++++-- .../core/titangiveaway/LightFlicker.java | 52 +++++++++++++++++++ .../titangiveaway/TitanGiveawayManager.java | 30 +++++------ 3 files changed, 81 insertions(+), 21 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/LightFlicker.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/GiveawayMessageHandler.java b/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/GiveawayMessageHandler.java index 18f276d68..a388cfd7c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/GiveawayMessageHandler.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/GiveawayMessageHandler.java @@ -1,7 +1,10 @@ package mineplex.core.titangiveaway; +import org.bukkit.Bukkit; import org.bukkit.Sound; +import org.bukkit.World; import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; import mineplex.core.common.util.C; import mineplex.core.common.util.UtilServer; @@ -12,6 +15,13 @@ import mineplex.serverdata.commands.ServerCommand; public class GiveawayMessageHandler implements CommandCallback { + private JavaPlugin _plugin; + + public GiveawayMessageHandler(JavaPlugin plugin) + { + _plugin = plugin; + } + @Override public void run(ServerCommand command) { @@ -20,12 +30,16 @@ public class GiveawayMessageHandler implements CommandCallback TitanGiveawayMessage message = ((TitanGiveawayMessage) command); String playerName = message.getPlayerName(); int count = message.getTitanCount(); - String countString = UtilTime.getDayOfMonthSuffix(count); - String chatMessage = C.cRed + playerName + C.cDRed + " has become the " + C.cRed + countString + " Titan"; - UtilTextMiddle.display("", chatMessage, UtilServer.getPlayers()); + String countString = count + UtilTime.getDayOfMonthSuffix(count); + String chatMessage = C.cRed + playerName + C.cWhite + " has become the " + C.cRed + countString + " Titan "; + UtilTextMiddle.display(C.cDRed + C.Bold + "TITAN", chatMessage, UtilServer.getPlayers()); + World world = UtilServer.getPlayers().length > 0 ? UtilServer.getPlayers()[0].getWorld() : Bukkit.getWorlds().get(0); + LightFlicker lightFlicker = new LightFlicker(world); + lightFlicker.runTaskTimer(_plugin, 1, 1); for (Player player : UtilServer.getPlayers()) { + player.sendMessage(chatMessage); player.playSound(player.getEyeLocation(), Sound.AMBIENCE_CAVE, 1, 1); } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/LightFlicker.java b/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/LightFlicker.java new file mode 100644 index 000000000..483df366d --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/LightFlicker.java @@ -0,0 +1,52 @@ +package mineplex.core.titangiveaway; + +import java.util.Random; + +import org.bukkit.Sound; +import org.bukkit.World; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; + +public class LightFlicker extends BukkitRunnable +{ + private static int MAX_TICKS = 100; + + private World _world; + private Random _random; + private int _ticks; + private long _previousTime; + + public LightFlicker(World world) + { + _world = world; + _random = new Random(); + _ticks = 0; + _previousTime = world.getTime(); + } + + @Override + public void run() + { + if (_ticks >= MAX_TICKS) + { + _world.setTime(_previousTime); + cancel(); + } + + if (_ticks % 5 == 0) + { + long time = (long) (24000 * _random.nextDouble()); + _world.setTime(time); + } + + if (_ticks % 10 == 0) + { + for (Player player : _world.getPlayers()) + { + player.playSound(player.getEyeLocation(), Sound.AMBIENCE_THUNDER, 1, 1); + } + } + + _ticks++; + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/TitanGiveawayManager.java b/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/TitanGiveawayManager.java index 0211f30f3..1917b2d68 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/TitanGiveawayManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/titangiveaway/TitanGiveawayManager.java @@ -17,8 +17,8 @@ import mineplex.serverdata.commands.ServerCommandManager; public class TitanGiveawayManager extends MiniPlugin { -// private static final double RANK_FIND_CHANCE = 0.001; - private static final double RANK_FIND_CHANCE = 1; + private static final double RANK_FIND_CHANCE = 0.001; +// private static final double RANK_FIND_CHANCE = 1; private TitanGiveawayRepository _repository; private CoreClientManager _clientManager; @@ -34,19 +34,17 @@ public class TitanGiveawayManager extends MiniPlugin _statusManager = statusManager; _random = new Random(); - ServerCommandManager.getInstance().registerCommandType("TitanGiveawayMessage", TitanGiveawayMessage.class, new GiveawayMessageHandler()); + ServerCommandManager.getInstance().registerCommandType("TitanGiveawayMessage", TitanGiveawayMessage.class, new GiveawayMessageHandler(plugin)); } public void openPumpkin(final Player player, final Runnable onSuccess) { double rand = _random.nextDouble(); - System.out.println("a"); if (!hasTitan(player) && rand < RANK_FIND_CHANCE) { final int accountId = _clientManager.getAccountId(player); final Region region = getRegion(); final String serverName = getServerName(); - System.out.println("b"); // Need to check database that we can give away a rank runAsync(new Runnable() @@ -55,11 +53,9 @@ public class TitanGiveawayManager extends MiniPlugin public void run() { final boolean pass = _repository.canGiveaway(); - System.out.println("c"); if (pass && _repository.addTitan(accountId, region, serverName)) { - System.out.println("C"); runSync(new Runnable() { @Override @@ -70,10 +66,8 @@ public class TitanGiveawayManager extends MiniPlugin @Override public void run(Rank rank) { - System.out.println("d"); if (rank == Rank.TITAN) { - System.out.println("e"); TitanGiveawayMessage message = new TitanGiveawayMessage(player.getName(), _repository.getTitanCount() + 1); message.publish(); if (onSuccess != null) onSuccess.run(); @@ -112,13 +106,13 @@ public class TitanGiveawayManager extends MiniPlugin _clientManager.getRepository().saveRank(callback, player.getName(), player.getUniqueId(), rank, true); } - @EventHandler - public void onCommand(PlayerCommandPreprocessEvent event) - { - if (event.getMessage().contains("pumpkin")) - { - openPumpkin(event.getPlayer(), null); - event.setCancelled(true); - } - } +// @EventHandler +// public void onCommand(PlayerCommandPreprocessEvent event) +// { +// if (event.getMessage().contains("pumpkin")) +// { +// openPumpkin(event.getPlayer(), null); +// event.setCancelled(true); +// } +// } }