Add a special command for a soecial person
This commit is contained in:
parent
7975674c6c
commit
f1661b3918
|
@ -1,5 +1,6 @@
|
||||||
package tc.oc.commons.bukkit.commands;
|
package tc.oc.commons.bukkit.commands;
|
||||||
|
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
import com.sk89q.minecraft.util.commands.Command;
|
import com.sk89q.minecraft.util.commands.Command;
|
||||||
import com.sk89q.minecraft.util.commands.CommandContext;
|
import com.sk89q.minecraft.util.commands.CommandContext;
|
||||||
import com.sk89q.minecraft.util.commands.CommandException;
|
import com.sk89q.minecraft.util.commands.CommandException;
|
||||||
|
@ -9,18 +10,29 @@ import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
import net.md_5.bungee.api.chat.TextComponent;
|
||||||
import net.md_5.bungee.api.chat.TranslatableComponent;
|
import net.md_5.bungee.api.chat.TranslatableComponent;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Color;
|
||||||
|
import org.bukkit.FireworkEffect;
|
||||||
|
import org.bukkit.FireworkEffect.Type;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Firework;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.meta.FireworkMeta;
|
||||||
import tc.oc.api.bukkit.users.BukkitUserStore;
|
import tc.oc.api.bukkit.users.BukkitUserStore;
|
||||||
import tc.oc.api.docs.virtual.UserDoc;
|
import tc.oc.api.docs.virtual.UserDoc;
|
||||||
import tc.oc.api.users.UserService;
|
import tc.oc.api.users.UserService;
|
||||||
|
@ -42,6 +54,8 @@ import tc.oc.minecraft.scheduler.Sync;
|
||||||
*/
|
*/
|
||||||
public class MiscCommands implements Commands {
|
public class MiscCommands implements Commands {
|
||||||
|
|
||||||
|
private static final Random RANDOM = new Random();
|
||||||
|
|
||||||
private final Flexecutor flexecutor;
|
private final Flexecutor flexecutor;
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
private final BukkitUserStore userStore;
|
private final BukkitUserStore userStore;
|
||||||
|
@ -190,6 +204,55 @@ public class MiscCommands implements Commands {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Command(
|
||||||
|
aliases = { "vice" },
|
||||||
|
desc = "WELCOME BACK VICE!"
|
||||||
|
)
|
||||||
|
public void vice(final CommandContext args, final CommandSender sender) throws CommandException {
|
||||||
|
Player player = CommandUtils.senderToPlayer(sender);
|
||||||
|
UUID vice = UUID.fromString("bf331953-4f92-43ee-8abc-7544b8234936");
|
||||||
|
if (!(player.isOp() || player.getUniqueId().equals(vice))) throw new CommandPermissionsException();
|
||||||
|
Set<Location> fireworkLocs = Sets.newHashSet();
|
||||||
|
Location center = player.getLocation();
|
||||||
|
if (!player.getUniqueId().equals(vice) && sender.getServer().getPlayer(vice) != null)
|
||||||
|
center = sender.getServer().getPlayer(vice).getLocation();
|
||||||
|
center = center.clone();
|
||||||
|
fireworkLocs.add(center);
|
||||||
|
int radius = 5;
|
||||||
|
for (int i = 0 - radius; i <= radius; i = i + (radius / 2)) {
|
||||||
|
if (i == 0) continue;
|
||||||
|
fireworkLocs.add(center.clone().add(i, 0, 0));
|
||||||
|
fireworkLocs.add(center.clone().add(0, 0, i));
|
||||||
|
fireworkLocs.add(center.clone().add(i, 0, i));
|
||||||
|
}
|
||||||
|
for (Location location : fireworkLocs) {
|
||||||
|
FireworkMeta meta = (FireworkMeta) Bukkit.getItemFactory().getItemMeta(Material.FIREWORK);
|
||||||
|
meta.setPower(RANDOM.nextInt(15));
|
||||||
|
meta.addEffect(randomRGBEffect());
|
||||||
|
|
||||||
|
Firework firework = (Firework) location.getWorld().spawnEntity(location, EntityType.FIREWORK);
|
||||||
|
firework.setFireworkMeta(meta);
|
||||||
|
}
|
||||||
|
sender.getServer().broadcast(new TextComponent(
|
||||||
|
ChatColor.RED + "WELCOME " +
|
||||||
|
ChatColor.YELLOW + "BACK " +
|
||||||
|
ChatColor.GREEN + "VICE" +
|
||||||
|
ChatColor.BLUE + "!!")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private FireworkEffect randomRGBEffect() {
|
||||||
|
return FireworkEffect.builder()
|
||||||
|
.flicker(RANDOM.nextBoolean())
|
||||||
|
.trail(true)
|
||||||
|
.with(Type.values()[RANDOM.nextInt(4)])
|
||||||
|
.withColor(Color.fromRGB(RANDOM.nextInt(255), RANDOM.nextInt(255), RANDOM.nextInt(255)))
|
||||||
|
.withColor(Color.fromRGB(RANDOM.nextInt(255), RANDOM.nextInt(255), RANDOM.nextInt(255)))
|
||||||
|
.withColor(Color.fromRGB(RANDOM.nextInt(255), RANDOM.nextInt(255), RANDOM.nextInt(255)))
|
||||||
|
.withFade(Color.fromRGB(RANDOM.nextInt(255), RANDOM.nextInt(255), RANDOM.nextInt(255)))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
@Command(
|
@Command(
|
||||||
aliases = { "sudo" },
|
aliases = { "sudo" },
|
||||||
usage = "<player> [command... (rand|mode|near|color|*)=value]",
|
usage = "<player> [command... (rand|mode|near|color|*)=value]",
|
||||||
|
|
Loading…
Reference in New Issue