Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Различные пакеты в помощь! Я если честно, для своего сервера всегда использую API PlayEffect, и не разу не заморачивался.Прошу помочь мне с кодом Java в общем мне нужно воспроизводить эффекты как сердца,ангри,ноты ...
Примеры вот:
Smoke_Trail
PlayerTrails
ParticlePack
Если кто то знает как это сделать прошу написать полную информацию.
У меня не получается с PlayEffect !Различные пакеты в помощь! Я если честно, для своего сервера всегда использую API PlayEffect, и не разу не заморачивался.
PlayEffect.play(VisualEffect.ТВОЙ_ЕФФЕКТ, new Location(МИР, X,Y,Z), "Парамеры, типа:draw:circle и так далее.");
Как делаешь?У меня не получается с PlayEffect !
package me.fromgate.playeffectplayermove;
import java.util.HashMap;
import java.util.Map;
import me.fromgate.playeffect.PlayEffect;
import me.fromgate.playeffect.VisualEffect;
import org.bukkit.Location;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class PlayEffectPlayerMove extends JavaPlugin implements Listener{
Map<String,Location> playerLocations;
@Override
public void onEnable(){
if (getServer().getPluginManager().getPlugin("PlayEffect")==null){
getLogger().info("[PlayEffectPlayerMove] PlayEffect plugin required!");
return;
}
playerLocations = new HashMap<String,Location>();
getServer().getPluginManager().registerEvents(this, this);
}
private Location getPreviousLocation (PlayerMoveEvent event){
String playerName = event.getPlayer().getName();
return playerLocations.containsKey(playerName) ? playerLocations.get(playerName) : event.getFrom();
}
@EventHandler
public void onPlayerMove(PlayerMoveEvent event){
Location currentLocation = event.getTo();
Location previousLocation = getPreviousLocation(event);
if (currentLocation.getWorld().equals(previousLocation.getWorld())&&
(currentLocation.distance(previousLocation)<0.7)) return;
PlayEffect.play(VisualEffect.MOBSPELL, currentLocation, "num:20 speed:0.5 offset:0.8");
playerLocations.put(event.getPlayer().getName(), currentLocation);
}
}
Я новичёк. я перешел с Delphi на Java и по ка что не знаю что к чему.Сколько тебе писал об этом... Все равно не понял
А чем же они ненастоящие?Я новичёк. я перешел с Delphi на Java и по ка что не знаю что к чему.
Писал писал и всё бес толку потому что мне нужны настоящие эффекты а не
PlayEffect - визуальные и звуковые эффекты на Вашем сервере!
Визуальные, их вижу лишь я !А чем же они ненастоящие?
Визуальные - имеется в виду не то что только ты их видишь! их видят все!Визуальные, их вижу лишь я !
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
public enum ParticleEffect {
HUGE_EXPLOSION("hugeexplosion", 0), LARGE_EXPLODE("largeexplode", 1), FIREWORKS_SPARK("fireworksSpark", 2), BUBBLE("bubble", 3), SUSPEND("suspend", 4), DEPTH_SUSPEND("depthSuspend", 5), TOWN_AURA("townaura", 6), CRIT("crit", 7), MAGIC_CRIT("magicCrit", 8), MOB_SPELL("mobSpell", 9), MOB_SPELL_AMBIENT("mobSpellAmbient", 10), SPELL("spell", 11), INSTANT_SPELL("instantSpell", 12), WITCH_MAGIC("witchMagic", 13), NOTE("note", 14), PORTAL("portal", 15), ENCHANTMENT_TABLE("enchantmenttable", 16), EXPLODE("explode", 17), FLAME("flame", 18), LAVA("lava", 19), FOOTSTEP("footstep", 20), SPLASH("splash", 21), LARGE_SMOKE("largesmoke", 22), CLOUD("cloud", 23), RED_DUST("reddust", 24), SNOWBALL_POOF("snowballpoof", 25), DRIP_WATER("dripWater", 26), DRIP_LAVA("dripLava", 27), SNOW_SHOVEL("snowshovel", 28), SLIME("slime", 29), HEART("heart", 30), ANGRY_VILLAGER("angryVillager", 31), HAPPY_VILLAGER("happyVillager", 32), ICONCRACK("iconcrack", 33), TILECRACK("tilecrack", 34);
private String name;
private int id;
ParticleEffect(String name, int id) {
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
public int getId() {
return id;
}
private static final Map<String, ParticleEffect> NAME_MAP = new HashMap<String, ParticleEffect>();
private static final Map<Integer, ParticleEffect> ID_MAP = new HashMap<Integer, ParticleEffect>();
static {
for (ParticleEffect effect : values()) {
NAME_MAP.put(effect.name, effect);
ID_MAP.put(effect.id, effect);
}
}
public static ParticleEffect fromName(String name) {
if (name == null) {
return null;
}
for (Entry<String, ParticleEffect> e : NAME_MAP.entrySet()) {
if (e.getKey().equalsIgnoreCase(name)) {
return e.getValue();
}
}
return null;
}
public static ParticleEffect fromId(int id) {
return ID_MAP.get(id);
}
public static void sendToPlayer(ParticleEffect effect, Player player, Location location, float offsetX, float offsetY, float offsetZ, float speed, int count) throws Exception {
Object packet = createPacket(effect, location, offsetX, offsetY, offsetZ, speed, count);
sendPacket(player, packet);
}
public static void sendToLocation(ParticleEffect effect, Location location, float offsetX, float offsetY, float offsetZ, float speed, int count) throws Exception {
Object packet = createPacket(effect, location, offsetX, offsetY, offsetZ, speed, count);
for (Player player : Bukkit.getOnlinePlayers()) {
sendPacket(player, packet);
}
}
public static void sendCrackToPlayer(boolean icon, int id, byte data, Player player, Location location, float offsetX, float offsetY, float offsetZ, int count) throws Exception {
Object packet = createCrackPacket(icon, id, data, location, offsetX, offsetY, offsetZ, count);
sendPacket(player, packet);
}
public static void sendCrackToLocation(boolean icon, int id, byte data, Location location, float offsetX, float offsetY, float offsetZ, int count) throws Exception {
Object packet = createCrackPacket(icon, id, data, location, offsetX, offsetY, offsetZ, count);
for (Player player : Bukkit.getOnlinePlayers()) {
sendPacket(player, packet);
}
}
public static Object createPacket(ParticleEffect effect, Location location, float offsetX, float offsetY, float offsetZ, float speed, int count) throws Exception {
if (count <= 0)
count = 1;
Object packet = getPacket63WorldParticles();
setValue(packet, "a", effect.name);
setValue(packet, "b", (float) location.getX());
setValue(packet, "c", (float) location.getY());
setValue(packet, "d", (float) location.getZ());
setValue(packet, "e", offsetX);
setValue(packet, "f", offsetY);
setValue(packet, "g", offsetZ);
setValue(packet, "h", speed);
setValue(packet, "i", count);
return packet;
}
public static Object createCrackPacket(boolean icon, int id, byte data, Location location, float offsetX, float offsetY, float offsetZ, int count) throws Exception {
if (count <= 0)
count = 1;
Object packet = getPacket63WorldParticles();
String modifier = "iconcrack_" + id;
if (!icon) {
modifier = "tilecrack_" + id + "_" + data;
}
setValue(packet, "a", modifier);
setValue(packet, "b", (float) location.getX());
setValue(packet, "c", (float) location.getY());
setValue(packet, "d", (float) location.getZ());
setValue(packet, "e", offsetX);
setValue(packet, "f", offsetY);
setValue(packet, "g", offsetZ);
setValue(packet, "h", 0.1F);
setValue(packet, "i", count);
return packet;
}
private static void setValue(Object instance, String fieldName, Object value) throws Exception {
Field field = instance.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(instance, value);
}
private static Object getEntityPlayer(Player p) throws Exception {
Method getHandle = p.getClass().getMethod("getHandle");
return getHandle.invoke(p);
}
private static String getPackageName() {
return "net.minecraft.server." + Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3];
}
private static Object getPacket63WorldParticles() throws Exception {
Class<?> packet = Class.forName(getPackageName() + ".Packet63WorldParticles");
return packet.getConstructors()[0].newInstance();
}
private static void sendPacket(Player p, Object packet) throws Exception {
Object eplayer = getEntityPlayer(p);
Field playerConnectionField = eplayer.getClass().getField("playerConnection");
Object playerConnection = playerConnectionField.get(eplayer);
for (Method m : playerConnection.getClass().getMethods()) {
if (m.getName().equalsIgnoreCase("sendPacket")) {
m.invoke(playerConnection, packet);
return;
}
}
}
}
ParticleEffect.sendToPlayer(ParticleEffect.ENCHANTMENT_TABLE, player, player.getLocation(), 0, -1, 0, 1f, 50);
Уфффф как же тяжело работать с этими эффектами а какой бы SRC не качал с гитхаба везде ошибки а рубакит не охота засерать !Визуальные - имеется в виду не то что только ты их видишь! их видят все!![]()
А зачем вам качать SRC?Уфффф как же тяжело работать с этими эффектами а какой бы SRC не качал с гитхаба везде ошибки а рубакит не охота засерать !
), ставите его на сервер(как плагин!), в своём плагине пишите:Что ты мне пытаешься сказать? Я ТС советую использовать мой предложенный PlayEffect, а не прошу что-то.Тогда используй его
в чём проблема?
Вот блин, сорри, только пришёл домой сразу за комп, перепутал тебя с TCЧто ты мне пытаешься сказать? Я ТС советую использовать мой предложенный PlayEffect, а не прошу что-то.
Руфу не будь умным. в общем это совсем другое .player.getWorld().playEffect(player.getLocation(), Effect.CLICK2, this);
Это пример проигрывания звуков кликанья кнопки.player.getWorld().playEffect(player.getLocation(), Effect.CLICK2, this);