mirror of https://github.com/Minestom/Minestom.git
80 lines
3.2 KiB
Java
80 lines
3.2 KiB
Java
|
package net.minestom.demo.commands;
|
||
|
|
||
|
import net.minestom.server.command.builder.Command;
|
||
|
import net.minestom.server.entity.Entity;
|
||
|
import net.minestom.server.entity.Player;
|
||
|
import net.minestom.server.utils.entity.EntityFinder;
|
||
|
|
||
|
import java.util.List;
|
||
|
|
||
|
import static net.minestom.server.command.builder.arguments.ArgumentType.Boolean;
|
||
|
import static net.minestom.server.command.builder.arguments.ArgumentType.*;
|
||
|
|
||
|
public class AutoViewCommand extends Command {
|
||
|
public AutoViewCommand() {
|
||
|
super("autoview");
|
||
|
|
||
|
// Modify viewable
|
||
|
addSyntax((sender, context) -> {
|
||
|
if (!(sender instanceof Player player)) return;
|
||
|
final boolean autoView = context.get("value");
|
||
|
player.setAutoViewable(autoView);
|
||
|
player.sendMessage("Auto-viewable set to " + autoView);
|
||
|
}, Literal("viewable"), Boolean("value"));
|
||
|
|
||
|
// Modify viewer
|
||
|
addSyntax((sender, context) -> {
|
||
|
if (!(sender instanceof Player player)) return;
|
||
|
final boolean autoView = context.get("value");
|
||
|
player.setAutoViewEntities(autoView);
|
||
|
player.sendMessage("Auto-viewer set to " + autoView);
|
||
|
}, Literal("viewer"), Boolean("value"));
|
||
|
|
||
|
// Modify viewable rule
|
||
|
addSyntax((sender, context) -> {
|
||
|
if (!(sender instanceof Player player)) return;
|
||
|
EntityFinder finder = context.get("targets");
|
||
|
final List<Entity> entities = finder.find(sender);
|
||
|
player.updateViewableRule(entities::contains);
|
||
|
player.sendMessage("Viewable rule updated to see " + entities.size() + " players");
|
||
|
}, Literal("rule-viewable"), Entity("targets").onlyPlayers(true));
|
||
|
|
||
|
// Modify viewer rule
|
||
|
addSyntax((sender, context) -> {
|
||
|
if (!(sender instanceof Player player)) return;
|
||
|
EntityFinder finder = context.get("targets");
|
||
|
final List<Entity> entities = finder.find(sender);
|
||
|
player.updateViewerRule(entities::contains);
|
||
|
player.sendMessage("Viewer rule updated to see " + entities.size() + " entities");
|
||
|
}, Literal("rule-viewer"), Entity("targets"));
|
||
|
|
||
|
// Remove viewable rule
|
||
|
addSyntax((sender, context) -> {
|
||
|
if (!(sender instanceof Player player)) return;
|
||
|
player.updateViewableRule(p -> true);
|
||
|
player.sendMessage("Viewable rule removed");
|
||
|
}, Literal("remove-rule-viewable"));
|
||
|
|
||
|
// Remove viewer rule
|
||
|
addSyntax((sender, context) -> {
|
||
|
if (!(sender instanceof Player player)) return;
|
||
|
player.updateViewerRule(p -> true);
|
||
|
player.sendMessage("Viewer rule removed");
|
||
|
}, Literal("remove-rule-viewer"));
|
||
|
|
||
|
// Update viewable rule
|
||
|
addSyntax((sender, context) -> {
|
||
|
if (!(sender instanceof Player player)) return;
|
||
|
player.updateViewableRule();
|
||
|
player.sendMessage("Viewable rule updated");
|
||
|
}, Literal("update-rule-viewable"));
|
||
|
|
||
|
// Update viewer rule
|
||
|
addSyntax((sender, context) -> {
|
||
|
if (!(sender instanceof Player player)) return;
|
||
|
player.updateViewerRule();
|
||
|
player.sendMessage("Viewer rule updated");
|
||
|
}, Literal("update-rule-viewer"));
|
||
|
}
|
||
|
}
|