mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2024-11-27 01:05:38 +00:00
Added Command_trail.
+1 points for no external changes.
This commit is contained in:
parent
1ae6eb8a5a
commit
38b1035020
@ -1,5 +1,5 @@
|
||||
#Sat, 10 Aug 2013 12:37:32 -0400
|
||||
#Sat, 10 Aug 2013 15:43:16 -0400
|
||||
|
||||
program.VERSION=2.22
|
||||
program.BUILDNUM=386
|
||||
program.BUILDDATE=08/10/2013 12\:37 PM
|
||||
program.BUILDNUM=392
|
||||
program.BUILDDATE=08/10/2013 03\:43 PM
|
||||
|
@ -1,3 +1,3 @@
|
||||
#Build Number for ANT. Do not edit!
|
||||
#Sat Aug 10 12:37:32 EDT 2013
|
||||
build.number=387
|
||||
#Sat Aug 10 15:43:16 EDT 2013
|
||||
build.number=393
|
||||
|
108
src/me/StevenLawson/TotalFreedomMod/Commands/Command_trail.java
Normal file
108
src/me/StevenLawson/TotalFreedomMod/Commands/Command_trail.java
Normal file
@ -0,0 +1,108 @@
|
||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
import org.bukkit.plugin.RegisteredListener;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Pretty rainbow trails.", usage = "/<command> [off]")
|
||||
public class Command_trail extends TFM_Command
|
||||
{
|
||||
private static Listener movementListener = null;
|
||||
private static final List<Player> trailPlayers = new ArrayList<Player>();
|
||||
private static final Random RANDOM = new Random();
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||
{
|
||||
if (args.length > 0 && TFM_Util.isStopCommand(args[0]))
|
||||
{
|
||||
trailPlayers.remove(sender_p);
|
||||
|
||||
playerMsg("Trail disabled.");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!trailPlayers.contains(sender_p))
|
||||
{
|
||||
trailPlayers.add(sender_p);
|
||||
}
|
||||
|
||||
playerMsg("Trail enabled!");
|
||||
}
|
||||
|
||||
if (!trailPlayers.isEmpty())
|
||||
{
|
||||
registerMovementHandler();
|
||||
}
|
||||
else
|
||||
{
|
||||
unregisterMovementHandler();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static void registerMovementHandler()
|
||||
{
|
||||
if (getRegisteredListener(movementListener) == null)
|
||||
{
|
||||
Bukkit.getPluginManager().registerEvents(movementListener = new Listener()
|
||||
{
|
||||
@EventHandler(priority = EventPriority.NORMAL)
|
||||
public void onPlayerMove(PlayerMoveEvent event)
|
||||
{
|
||||
Player player = event.getPlayer();
|
||||
if (trailPlayers.contains(player))
|
||||
{
|
||||
Block fromBlock = event.getFrom().getBlock();
|
||||
if (fromBlock.isEmpty())
|
||||
{
|
||||
Block toBlock = event.getTo().getBlock();
|
||||
if (!fromBlock.equals(toBlock))
|
||||
{
|
||||
fromBlock.setType(Material.WOOL);
|
||||
fromBlock.setData((byte) RANDOM.nextInt(16));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}, TotalFreedomMod.plugin);
|
||||
}
|
||||
}
|
||||
|
||||
private static void unregisterMovementHandler()
|
||||
{
|
||||
Listener registeredListener = getRegisteredListener(movementListener);
|
||||
if (registeredListener != null)
|
||||
{
|
||||
PlayerMoveEvent.getHandlerList().unregister(registeredListener);
|
||||
}
|
||||
}
|
||||
|
||||
private static Listener getRegisteredListener(Listener listener)
|
||||
{
|
||||
RegisteredListener[] registeredListeners = PlayerMoveEvent.getHandlerList().getRegisteredListeners();
|
||||
for (RegisteredListener registeredListener : registeredListeners)
|
||||
{
|
||||
if (registeredListener.getListener() == listener)
|
||||
{
|
||||
return listener;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user