mirror of
https://github.com/Minestom/Minestom.git
synced 2025-03-02 11:21:15 +01:00
Comment + EntityFinder WIP
This commit is contained in:
parent
e8cd68bc3b
commit
87ab850945
@ -334,12 +334,13 @@ public class CommandManager {
|
||||
private List<DeclareCommandsPacket.Node> toNodes(Argument argument, boolean executable) {
|
||||
List<DeclareCommandsPacket.Node> nodes = new ArrayList<>();
|
||||
|
||||
/*DeclareCommandsPacket.Node testNode = simpleArgumentNode(nodes, argument, executable);
|
||||
testNode.parser = "minecraft:range";
|
||||
DeclareCommandsPacket.Node testNode = simpleArgumentNode(nodes, argument, executable);
|
||||
testNode.parser = "minecraft:entity";
|
||||
testNode.properties = packetWriter -> packetWriter.writeByte((byte) 0x0);
|
||||
|
||||
if (true) {
|
||||
return nodes;
|
||||
}*/
|
||||
}
|
||||
|
||||
if (argument instanceof ArgumentBoolean) {
|
||||
DeclareCommandsPacket.Node argumentNode = simpleArgumentNode(nodes, argument, executable);
|
||||
|
@ -3,6 +3,10 @@ package net.minestom.server.command.builder.arguments.minecraft;
|
||||
import net.minestom.server.chat.ChatColor;
|
||||
import net.minestom.server.command.builder.arguments.Argument;
|
||||
|
||||
/**
|
||||
* Represent an argument which will give you a {@link ChatColor}
|
||||
* Chat format: red, white, reset, etc...
|
||||
*/
|
||||
public class ArgumentColor extends Argument<ChatColor> {
|
||||
|
||||
public static final int UNDEFINED_COLOR = -2;
|
||||
|
@ -4,6 +4,11 @@ import net.minestom.server.command.builder.arguments.Argument;
|
||||
import net.minestom.server.entity.Entity;
|
||||
|
||||
// TODO
|
||||
|
||||
/**
|
||||
* Represent the target selector argument
|
||||
* https://minecraft.gamepedia.com/Commands#Target_selectors
|
||||
*/
|
||||
public class ArgumentEntity extends Argument<Entity> {
|
||||
|
||||
public ArgumentEntity(String id, boolean allowSpace) {
|
||||
|
@ -4,6 +4,10 @@ import net.minestom.server.utils.math.FloatRange;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Represent an argument which will give you a {@link FloatRange}
|
||||
* Chat format: ..3, 3.., 5..10
|
||||
*/
|
||||
public class ArgumentFloatRange extends ArgumentRange<FloatRange> {
|
||||
|
||||
public ArgumentFloatRange(String id) {
|
||||
@ -19,7 +23,7 @@ public class ArgumentFloatRange extends ArgumentRange<FloatRange> {
|
||||
String[] split = value.split(Pattern.quote(".."));
|
||||
if (split.length == 1) {
|
||||
try {
|
||||
Float.valueOf(split[0]); // min
|
||||
Float.valueOf(split[0]);
|
||||
return SUCCESS;
|
||||
} catch (NumberFormatException e2) {
|
||||
return FORMAT_ERROR;
|
||||
|
@ -4,6 +4,10 @@ import net.minestom.server.utils.math.IntRange;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Represent an argument which will give you a {@link IntRange}
|
||||
* Chat format: ..3, 3.., 5..10
|
||||
*/
|
||||
public class ArgumentIntRange extends ArgumentRange<IntRange> {
|
||||
|
||||
public ArgumentIntRange(String id) {
|
||||
@ -19,7 +23,7 @@ public class ArgumentIntRange extends ArgumentRange<IntRange> {
|
||||
String[] split = value.split(Pattern.quote(".."));
|
||||
if (split.length == 1) {
|
||||
try {
|
||||
Integer.valueOf(split[0]); // min
|
||||
Integer.valueOf(split[0]);
|
||||
return SUCCESS;
|
||||
} catch (NumberFormatException e2) {
|
||||
return FORMAT_ERROR;
|
||||
|
@ -7,6 +7,10 @@ import net.minestom.server.utils.time.UpdateOption;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Represent an argument giving a time (day/second/tick)
|
||||
* Chat format: 50d, 25s, 75t
|
||||
*/
|
||||
public class ArgumentTime extends Argument<UpdateOption> {
|
||||
|
||||
public static final int INVALID_TIME_FORMAT = -2;
|
||||
|
@ -3,6 +3,9 @@ package net.minestom.server.command.builder.arguments.minecraft.registry;
|
||||
import net.minestom.server.item.Enchantment;
|
||||
import net.minestom.server.registry.Registries;
|
||||
|
||||
/**
|
||||
* Represent an argument giving an item enchantment
|
||||
*/
|
||||
public class ArgumentEnchantment extends ArgumentRegistry<Enchantment> {
|
||||
|
||||
public ArgumentEnchantment(String id) {
|
||||
|
@ -3,6 +3,9 @@ package net.minestom.server.command.builder.arguments.minecraft.registry;
|
||||
import net.minestom.server.entity.EntityType;
|
||||
import net.minestom.server.registry.Registries;
|
||||
|
||||
/**
|
||||
* Represent an argument giving an entity type
|
||||
*/
|
||||
public class ArgumentEntityType extends ArgumentRegistry<EntityType> {
|
||||
|
||||
public ArgumentEntityType(String id) {
|
||||
|
@ -3,6 +3,9 @@ package net.minestom.server.command.builder.arguments.minecraft.registry;
|
||||
import net.minestom.server.particle.Particle;
|
||||
import net.minestom.server.registry.Registries;
|
||||
|
||||
/**
|
||||
* Represent an argument giving a particle type
|
||||
*/
|
||||
public class ArgumentParticle extends ArgumentRegistry<Particle> {
|
||||
|
||||
public ArgumentParticle(String id) {
|
||||
|
@ -3,6 +3,9 @@ package net.minestom.server.command.builder.arguments.minecraft.registry;
|
||||
import net.minestom.server.potion.PotionType;
|
||||
import net.minestom.server.registry.Registries;
|
||||
|
||||
/**
|
||||
* Represent an argument giving a potion type
|
||||
*/
|
||||
public class ArgumentPotion extends ArgumentRegistry<PotionType> {
|
||||
|
||||
public ArgumentPotion(String id) {
|
||||
|
@ -18,9 +18,12 @@ import net.minestom.server.instance.*;
|
||||
import net.minestom.server.instance.block.CustomBlock;
|
||||
import net.minestom.server.network.packet.PacketWriter;
|
||||
import net.minestom.server.network.packet.server.play.*;
|
||||
import net.minestom.server.utils.ArrayUtils;
|
||||
import net.minestom.server.utils.BlockPosition;
|
||||
import net.minestom.server.utils.Position;
|
||||
import net.minestom.server.utils.Vector;
|
||||
import net.minestom.server.utils.*;
|
||||
import net.minestom.server.utils.chunk.ChunkUtils;
|
||||
import net.minestom.server.utils.entity.EntityUtils;
|
||||
import net.minestom.server.utils.player.PlayerUtils;
|
||||
import net.minestom.server.utils.time.TimeUnit;
|
||||
import net.minestom.server.utils.validate.Check;
|
||||
|
@ -0,0 +1,48 @@
|
||||
package net.minestom.server.utils.entity;
|
||||
|
||||
import net.minestom.server.entity.EntityType;
|
||||
import net.minestom.server.utils.math.IntRange;
|
||||
|
||||
/**
|
||||
* Represent a query which can be call to find one or multiple entities
|
||||
* It is based on the target selectors used in commands
|
||||
*/
|
||||
public class EntityFinder {
|
||||
|
||||
// Commands option
|
||||
private boolean onlySingleEntity;
|
||||
private boolean onlyPlayers;
|
||||
|
||||
// Simple float
|
||||
private float x, y, z;
|
||||
private float dx, dy, dz;
|
||||
|
||||
// Range
|
||||
private IntRange distance;
|
||||
private IntRange level;
|
||||
|
||||
// By traits
|
||||
private int limit;
|
||||
private EntitySort entitySort;
|
||||
private EntityType entityType;
|
||||
|
||||
public boolean isOnlySingleEntity() {
|
||||
return onlySingleEntity;
|
||||
}
|
||||
|
||||
public void setOnlySingleEntity(boolean onlySingleEntity) {
|
||||
this.onlySingleEntity = onlySingleEntity;
|
||||
}
|
||||
|
||||
public boolean isOnlyPlayers() {
|
||||
return onlyPlayers;
|
||||
}
|
||||
|
||||
public void setOnlyPlayers(boolean onlyPlayers) {
|
||||
this.onlyPlayers = onlyPlayers;
|
||||
}
|
||||
|
||||
public enum EntitySort {
|
||||
ARBITRARY, FURTHEST, NEAREST, RANDOM
|
||||
}
|
||||
}
|
@ -1,10 +1,12 @@
|
||||
package net.minestom.server.utils;
|
||||
package net.minestom.server.utils.entity;
|
||||
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.entity.Entity;
|
||||
import net.minestom.server.instance.Chunk;
|
||||
import net.minestom.server.instance.Instance;
|
||||
import net.minestom.server.instance.block.Block;
|
||||
import net.minestom.server.utils.BlockPosition;
|
||||
import net.minestom.server.utils.Position;
|
||||
import net.minestom.server.utils.chunk.ChunkUtils;
|
||||
|
||||
public class EntityUtils {
|
Loading…
Reference in New Issue
Block a user