use of com.mojang.brigadier.StringReader in project MyPet by xXKeyleXx.
the class PlatformHelper method playParticleEffect.
/**
* @param location the {@link Location} around which players must be to see the effect
* @param effectName list of effects: https://gist.github.com/riking/5759002
* @param offsetX the amount to be randomly offset by in the X axis
* @param offsetY the amount to be randomly offset by in the Y axis
* @param offsetZ the amount to be randomly offset by in the Z axis
* @param speed the speed of the particles
* @param count the number of particles
* @param radius the radius around the location
*/
@Override
public void playParticleEffect(Location location, String effectName, float offsetX, float offsetY, float offsetZ, float speed, int count, int radius, de.Keyle.MyPet.api.compat.Compat<Object> data) {
Particle effect = IRegistry.PARTICLE_TYPE.get(new MinecraftKey(effectName));
Validate.notNull(location, "Location cannot be null");
Validate.notNull(effect, "Effect cannot be null");
Validate.notNull(location.getWorld(), "World cannot be null");
ParticleParam particle = null;
if (effect.d() != null && data != null) {
try {
particle = effect.d().b(effect, new StringReader(" " + data.get().toString()));
} catch (CommandSyntaxException e) {
e.printStackTrace();
}
} else if (effect instanceof ParticleType) {
particle = (ParticleType) effect;
}
if (particle == null) {
return;
}
PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(particle, false, (float) location.getX(), (float) location.getY(), (float) location.getZ(), offsetX, offsetY, offsetZ, speed, count);
radius = radius * radius;
for (Player player : location.getWorld().getPlayers()) {
if ((int) MyPetApi.getPlatformHelper().distanceSquared(player.getLocation(), location) <= radius) {
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
}
}
}
use of com.mojang.brigadier.StringReader in project MyPet by xXKeyleXx.
the class PlatformHelper method playParticleEffect.
/**
* @param location the {@link Location} around which players must be to see the effect
* @param effectName list of effects: https://gist.github.com/riking/5759002
* @param offsetX the amount to be randomly offset by in the X axis
* @param offsetY the amount to be randomly offset by in the Y axis
* @param offsetZ the amount to be randomly offset by in the Z axis
* @param speed the speed of the particles
* @param count the number of particles
* @param radius the radius around the location
*/
@Override
public void playParticleEffect(Location location, String effectName, float offsetX, float offsetY, float offsetZ, float speed, int count, int radius, de.Keyle.MyPet.api.compat.Compat<Object> data) {
ParticleType effect = Registry.PARTICLE_TYPE.get(new ResourceLocation(effectName));
Validate.notNull(location, "Location cannot be null");
Validate.notNull(effect, "Effect cannot be null");
Validate.notNull(location.getWorld(), "World cannot be null");
ParticleOptions particle = null;
if (effect.getDeserializer() != null && data != null) {
try {
particle = effect.getDeserializer().fromCommand(effect, new StringReader(" " + data.get().toString()));
} catch (CommandSyntaxException e) {
e.printStackTrace();
}
} else if (effect instanceof SimpleParticleType) {
particle = (SimpleParticleType) effect;
}
if (particle == null) {
return;
}
ClientboundLevelParticlesPacket packet = new ClientboundLevelParticlesPacket(particle, false, (float) location.getX(), (float) location.getY(), (float) location.getZ(), offsetX, offsetY, offsetZ, speed, count);
radius = radius * radius;
for (Player player : location.getWorld().getPlayers()) {
if ((int) MyPetApi.getPlatformHelper().distanceSquared(player.getLocation(), location) <= radius) {
((CraftPlayer) player).getHandle().connection.send(packet);
}
}
}
use of com.mojang.brigadier.StringReader in project MyPet by xXKeyleXx.
the class PlatformHelper method playParticleEffect.
/**
* @param location the {@link Location} around which players must be to see the effect
* @param effectName list of effects: https://gist.github.com/riking/5759002
* @param offsetX the amount to be randomly offset by in the X axis
* @param offsetY the amount to be randomly offset by in the Y axis
* @param offsetZ the amount to be randomly offset by in the Z axis
* @param speed the speed of the particles
* @param count the number of particles
* @param radius the radius around the location
*/
@Override
public void playParticleEffect(Player player, Location location, String effectName, float offsetX, float offsetY, float offsetZ, float speed, int count, int radius, de.Keyle.MyPet.api.compat.Compat<Object> data) {
ParticleType effect = Registry.PARTICLE_TYPE.get(new ResourceLocation(effectName));
Validate.notNull(location, "Location cannot be null");
Validate.notNull(effect, "Effect cannot be null");
Validate.notNull(location.getWorld(), "World cannot be null");
ParticleOptions particle = null;
if (effect.getDeserializer() != null && data != null) {
try {
particle = effect.getDeserializer().fromCommand(effect, new StringReader(" " + data.get().toString()));
} catch (CommandSyntaxException e) {
e.printStackTrace();
}
} else if (effect instanceof SimpleParticleType) {
particle = (SimpleParticleType) effect;
}
if (particle == null) {
return;
}
ClientboundLevelParticlesPacket packet = new ClientboundLevelParticlesPacket(particle, false, (float) location.getX(), (float) location.getY(), (float) location.getZ(), offsetX, offsetY, offsetZ, speed, count);
if (MyPetApi.getPlatformHelper().distanceSquared(player.getLocation(), location) <= radius) {
((CraftPlayer) player).getHandle().connection.send(packet);
}
}
use of com.mojang.brigadier.StringReader in project MinecraftForge by MinecraftForge.
the class ConsoleCommandCompleter method complete.
@Override
public void complete(LineReader reader, ParsedLine line, List<Candidate> candidates) {
String buffer = line.line();
boolean prefix;
if (buffer.isEmpty() || buffer.charAt(0) != '/') {
buffer = '/' + buffer;
prefix = false;
} else {
prefix = true;
}
final String input = buffer;
// See NetHandlerPlayServer#processTabComplete
StringReader stringReader = new StringReader(input);
if (stringReader.canRead() && stringReader.peek() == '/')
stringReader.skip();
try {
ParseResults<CommandSourceStack> results = this.server.getCommands().getDispatcher().parse(stringReader, this.server.createCommandSourceStack());
Suggestions tabComplete = this.server.getCommands().getDispatcher().getCompletionSuggestions(results).get();
for (Suggestion suggestion : tabComplete.getList()) {
String completion = suggestion.getText();
if (!completion.isEmpty()) {
boolean hasPrefix = prefix || completion.charAt(0) != '/';
Candidate candidate = new Candidate(hasPrefix ? completion : completion.substring(1));
candidates.add(candidate);
}
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
} catch (ExecutionException e) {
logger.error("Failed to tab complete", e);
}
}
use of com.mojang.brigadier.StringReader in project MyPet by xXKeyleXx.
the class PlatformHelper method playParticleEffect.
/**
* @param location the {@link Location} around which players must be to see the effect
* @param effectName list of effects: https://gist.github.com/riking/5759002
* @param offsetX the amount to be randomly offset by in the X axis
* @param offsetY the amount to be randomly offset by in the Y axis
* @param offsetZ the amount to be randomly offset by in the Z axis
* @param speed the speed of the particles
* @param count the number of particles
* @param radius the radius around the location
*/
@Override
public void playParticleEffect(Location location, String effectName, float offsetX, float offsetY, float offsetZ, float speed, int count, int radius, de.Keyle.MyPet.api.compat.Compat<Object> data) {
Particle effect = IRegistry.PARTICLE_TYPE.get(new MinecraftKey(effectName));
Validate.notNull(location, "Location cannot be null");
Validate.notNull(effect, "Effect cannot be null");
Validate.notNull(location.getWorld(), "World cannot be null");
ParticleParam particle = null;
if (effect.d() != null && data != null) {
try {
// noinspection unchecked
particle = effect.d().b(effect, new StringReader(" " + data.get().toString()));
} catch (CommandSyntaxException e) {
e.printStackTrace();
}
} else if (effect instanceof ParticleType) {
particle = (ParticleType) effect;
}
if (particle == null) {
return;
}
PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(particle, false, (float) location.getX(), (float) location.getY(), (float) location.getZ(), offsetX, offsetY, offsetZ, speed, count);
radius = radius * radius;
for (Player player : location.getWorld().getPlayers()) {
if ((int) MyPetApi.getPlatformHelper().distanceSquared(player.getLocation(), location) <= radius) {
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
}
}
}
Aggregations