Added vanish module
This commit is contained in:
parent
3720529589
commit
4b86f56b00
@ -19,13 +19,14 @@ import com.redstoner.modules.mentio.Mentio;
|
||||
import com.redstoner.modules.motd.Motd;
|
||||
import com.redstoner.modules.scriptutils.Scriptutils;
|
||||
import com.redstoner.modules.skullclick.SkullClick;
|
||||
import com.redstoner.modules.vanish.Vanish;
|
||||
import com.redstoner.modules.warn.Warn;
|
||||
import com.redstoner.modules.webtoken.WebToken;
|
||||
|
||||
/** Main class. Duh.
|
||||
*
|
||||
* @author Pepich */
|
||||
@Version(major = 1, minor = 3, revision = 3, compatible = -1)
|
||||
@Version(major = 1, minor = 3, revision = 4, compatible = -1)
|
||||
public class Main extends JavaPlugin
|
||||
{
|
||||
public static JavaPlugin plugin;
|
||||
@ -61,7 +62,7 @@ public class Main extends JavaPlugin
|
||||
// TODO: ModuleLoader.addModule(Signalstrength.class);
|
||||
ModuleLoader.addModule(SkullClick.class);
|
||||
// TODO: ModuleLoader.addModule(Tag.class);
|
||||
// TODO: ModuleLoader.addModule(Vanish.class);
|
||||
ModuleLoader.addModule(Vanish.class);
|
||||
ModuleLoader.addModule(Warn.class);
|
||||
ModuleLoader.addModule(WebToken.class);
|
||||
// And enable them
|
||||
|
248
src/com/redstoner/modules/vanish/Vanish.java
Normal file
248
src/com/redstoner/modules/vanish/Vanish.java
Normal file
@ -0,0 +1,248 @@
|
||||
package com.redstoner.modules.vanish;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
|
||||
import com.nemez.cmdmgr.Command;
|
||||
import com.nemez.cmdmgr.Command.AsyncType;
|
||||
import com.redstoner.annotations.AutoRegisterListener;
|
||||
import com.redstoner.annotations.Version;
|
||||
import com.redstoner.misc.Utils;
|
||||
import com.redstoner.modules.Module;
|
||||
|
||||
@AutoRegisterListener
|
||||
@Version(major = 1, minor = 0, revision = 0, compatible = 1)
|
||||
public class Vanish implements Module, Listener
|
||||
{
|
||||
private boolean enabled = false;
|
||||
private ArrayList<UUID> vanished = new ArrayList<UUID>();
|
||||
private HashMap<UUID, ArrayList<UUID>> vanishOthers = new HashMap<UUID, ArrayList<UUID>>();
|
||||
|
||||
@Command(hook = "vanish", async = AsyncType.ALWAYS)
|
||||
public boolean vanish(CommandSender sender)
|
||||
{
|
||||
UUID uid = ((Player) sender).getUniqueId();
|
||||
if (vanished.contains(uid))
|
||||
{
|
||||
vanished.remove(uid);
|
||||
Utils.sendMessage(sender, null, "You are no longer vanished!");
|
||||
unvanishPlayer((Player) sender);
|
||||
}
|
||||
else
|
||||
{
|
||||
vanished.add(uid);
|
||||
Utils.sendMessage(sender, null, "You are now vanished!");
|
||||
vanishPlayer((Player) sender);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "vanish_on", async = AsyncType.ALWAYS)
|
||||
public boolean vanishOn(CommandSender sender)
|
||||
{
|
||||
UUID uid = ((Player) sender).getUniqueId();
|
||||
if (vanished.contains(uid))
|
||||
Utils.sendMessage(sender, null,
|
||||
"You were already vanished, however we refreshed the vanish for you just to be sure!");
|
||||
else
|
||||
{
|
||||
vanished.add(uid);
|
||||
Utils.sendMessage(sender, null, "You are now vanished!");
|
||||
}
|
||||
vanishPlayer((Player) sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "vanish_off", async = AsyncType.ALWAYS)
|
||||
public boolean vanishOff(CommandSender sender)
|
||||
{
|
||||
UUID uid = ((Player) sender).getUniqueId();
|
||||
if (!vanished.contains(uid))
|
||||
Utils.sendMessage(sender, null,
|
||||
"You were not vanished, however we refreshed the vanish for you just to be sure!");
|
||||
else
|
||||
{
|
||||
vanished.remove(uid);
|
||||
Utils.sendMessage(sender, null, "You are no longer vanished!");
|
||||
}
|
||||
unvanishPlayer((Player) sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Command(hook = "vanish_other", async = AsyncType.ALWAYS)
|
||||
public boolean vanishOther(CommandSender sender, String name)
|
||||
{
|
||||
Player player = Bukkit.getPlayer(name);
|
||||
if (player == null)
|
||||
{
|
||||
Utils.sendMessage(sender, null, "&cPlayer &6" + name + " &ccould not be found!", '&');
|
||||
return true;
|
||||
}
|
||||
UUID uid = player.getUniqueId();
|
||||
if (player.hasPermission("utils.vanish"))
|
||||
{
|
||||
if (vanished.contains(uid))
|
||||
{
|
||||
vanished.remove(uid);
|
||||
Utils.sendMessage(sender, null, "Successfully unvanished player &6" + name, '&');
|
||||
Utils.sendMessage(player, null, "You are no longer vanished!");
|
||||
}
|
||||
else
|
||||
{
|
||||
vanished.add(uid);
|
||||
Utils.sendMessage(sender, null, "Successfully vanished player &6" + name, '&');
|
||||
Utils.sendMessage(player, null, "You are now vanished!");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
for (Entry<UUID, ArrayList<UUID>> entry : vanishOthers.entrySet())
|
||||
{
|
||||
if (entry.getValue().contains(uid))
|
||||
{
|
||||
entry.getValue().remove(uid);
|
||||
Utils.sendMessage(sender, null, "Successfully unvanished player &6" + name, '&');
|
||||
Utils.sendMessage(player, null, "You are no longer vanished!");
|
||||
if (entry.getValue().size() == 0)
|
||||
vanishOthers.remove(entry.getKey());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
UUID uuid = ((Player) sender).getUniqueId();
|
||||
ArrayList<UUID> toAddTo = vanishOthers.get(uuid);
|
||||
if (toAddTo == null)
|
||||
toAddTo = new ArrayList<UUID>();
|
||||
toAddTo.add(uid);
|
||||
vanishOthers.put(uuid, toAddTo);
|
||||
Utils.sendMessage(sender, null, "Successfully vanished player &6" + name, '&');
|
||||
Utils.sendMessage(player, null, "You are now vanished!");
|
||||
return true;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
Player player = event.getPlayer();
|
||||
if (player.hasPermission("utils.vanish"))
|
||||
return;
|
||||
for (UUID uid : vanished)
|
||||
{
|
||||
Player p = Bukkit.getPlayer(uid);
|
||||
if (p == null)
|
||||
continue;
|
||||
player.hidePlayer(p);
|
||||
}
|
||||
for (Entry<UUID, ArrayList<UUID>> entry : vanishOthers.entrySet())
|
||||
{
|
||||
for (UUID uid : entry.getValue())
|
||||
{
|
||||
Player p = Bukkit.getPlayer(uid);
|
||||
if (p == null)
|
||||
continue;
|
||||
player.hidePlayer(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerJoinEvent event)
|
||||
{
|
||||
Player player = event.getPlayer();
|
||||
UUID uid = player.getUniqueId();
|
||||
if (vanishOthers.containsKey(uid))
|
||||
{
|
||||
ArrayList<UUID> toUnvanish = vanishOthers.remove(uid);
|
||||
for (UUID uuid : toUnvanish)
|
||||
{
|
||||
Player p = Bukkit.getPlayer(uuid);
|
||||
if (p != null)
|
||||
unvanishPlayer(p);
|
||||
}
|
||||
}
|
||||
boolean wasVanished = false;
|
||||
for (Entry<UUID, ArrayList<UUID>> entry : vanishOthers.entrySet())
|
||||
{
|
||||
if (entry.getValue().contains(uid))
|
||||
{
|
||||
entry.getValue().remove(uid);
|
||||
wasVanished = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (wasVanished)
|
||||
unvanishPlayer(player);
|
||||
}
|
||||
|
||||
private void vanishPlayer(Player player)
|
||||
{
|
||||
for (Player p : Bukkit.getOnlinePlayers())
|
||||
{
|
||||
if (!p.hasPermission("utils.vanish"))
|
||||
p.hidePlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
private void unvanishPlayer(Player player)
|
||||
{
|
||||
for (Player p : Bukkit.getOnlinePlayers())
|
||||
p.showPlayer(p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
enabled = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
enabled = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean enabled()
|
||||
{
|
||||
return enabled;
|
||||
}
|
||||
|
||||
// @noformat
|
||||
@Override
|
||||
public String getCommandString()
|
||||
{
|
||||
return "command vanish {\n" +
|
||||
" [empty] {\n" +
|
||||
" help Toggles your vanish status.;\n" +
|
||||
" type player;\n" +
|
||||
" run vanish;\n" +
|
||||
" perm utils.vanish;\n" +
|
||||
" }\n" +
|
||||
" on {\n" +
|
||||
" help Turns your vanish on.;\n" +
|
||||
" type player;\n" +
|
||||
" run vanish_on;\n" +
|
||||
" perm utils.vanish;\n" +
|
||||
" }\n" +
|
||||
" off {\n" +
|
||||
" help Turns your vanish off.;\n" +
|
||||
" type player;\n" +
|
||||
" run vanish_off;\n" +
|
||||
" perm utils.vanish;\n" +
|
||||
" }\n" +
|
||||
" [string:name] {\n" +
|
||||
" help Toggles someone elses vanish;\n" +
|
||||
" run vanish_other name;\n" +
|
||||
" perm utils.vanish;\n" +
|
||||
" }\n" +
|
||||
"}";
|
||||
}
|
||||
// @format
|
||||
}
|
Reference in New Issue
Block a user