ALLDAYSMOKER 0 Opublikowano 27 marca 2021 Udostępnij Opublikowano 27 marca 2021 Witam mam problem otóż to chciałbym dodać sobie 3 efekt do tego pluginu ale no nie za bardzo potrafię. Tutaj mam klasę z efektem chciałbym zrobić taka samą drugą ale z efektem np. Particle.SLIME public class Movement implements Listener { @EventHandler public void onMove(PlayerMoveEvent event) { if( !ParticleData.hasFakeID(event.getPlayer().getUniqueId())) return; Random r = new Random(); for (int i = 0; i < 5 ; i++) event.getPlayer().getWorld().spawnParticle(Particle.CLOUD, event.getPlayer().getLocation().add( r.nextDouble() * 0.5, r.nextDouble() * 0.5, r.nextDouble() * .5), 0); for (int i = 0; i < 5 ; i++) event.getPlayer().getWorld().spawnParticle(Particle.CLOUD, event.getPlayer().getLocation().add( -1*(r.nextDouble() * 0.5), r.nextDouble() * 0.5, (r.nextDouble() * .5) *-1), 0); } } A tutaj mam dodane GUI wszystko pięknie ładnie ale nie moge efektu dodać, cały czas załapuje efekt z tego Particle.CLOUD public class GUI { private static Inventory INV; public void register() { Inventory inv = Bukkit.createInventory(null, 9, ChatColor.AQUA + "" + ChatColor.BOLD + "Trails GUI"); ItemStack item = new ItemStack(Material.TOTEM_OF_UNDYING); ItemMeta meta = item.getItemMeta(); meta.setDisplayName(ChatColor.YELLOW + "Totem Trailsxddd"); item.setItemMeta(meta); inv.setItem(3, item); item = new ItemStack(Material.CAMPFIRE); meta = item.getItemMeta(); meta.setDisplayName(ChatColor.RED + "Totem Trai3lsxddd"); item.setItemMeta(meta); inv.setItem(5, item); item = new ItemStack(Material.PAPER); meta = item.getItemMeta(); meta.setDisplayName(ChatColor.RED + "Totem Trai3lsxddd"); item.setItemMeta(meta); inv.setItem(6, item); setInventory(inv); } public Inventory getInventory() { return INV; } private void setInventory(Inventory inv) { INV = inv; } public void openInventory(Player player) { player.openInventory(INV); } } public class ParticleData { private static Map<UUID, Integer> TRAILS = new HashMap<UUID, Integer>(); private final UUID uuid; public ParticleData(UUID uuid) { this.uuid = uuid; } public void setID(int id) { TRAILS.put(uuid, id); } public int getID() { return TRAILS.get(uuid); } public boolean hasID() { if (TRAILS.containsKey(uuid)) return true; return false; } public void removeID() { TRAILS.remove(uuid); } public void endTask() { if (getID() == 1) return; Bukkit.getScheduler().cancelTask(getID()); } public static boolean hasFakeID(UUID uuid) { if(TRAILS.containsKey(uuid)) if(TRAILS.get(uuid) == 1) return true; return false; } } Z GÓRY DZIĘKUJE ZA POMOC ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 549 Opublikowano 27 marca 2021 Udostępnij Opublikowano 27 marca 2021 Jeżeli źle zrozumiałem to proszę o ponowne wytłumaczenie. Zapewne chcesz aby gracz mógł wybrać sobie dany particle tak? Jakiś prosty enum: public enum class ParticleType { JAKISPARTICLE, JAKISPARTICLEDRUGI } To teraz może manager https://code.skript.pl/IWNBJi3W No i teraz czas na event onMove (warto się tutaj pobawić asynchronicznie, gdyż event ten który działa w wątku glównym może sprawiać niezłe problemy przy większej ilości graczy) https://code.skript.pl/TQzJWDvO No i w evencie od gui dajesz graczowi particle lub usuwasz (zależnie od sytuacji) paweU 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 paweU 64 Opublikowano 2 kwietnia 2021 Udostępnij Opublikowano 2 kwietnia 2021 Problem został rozwiązany. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
ALLDAYSMOKER 0
Witam mam problem otóż to chciałbym dodać sobie 3 efekt do tego pluginu ale no nie za bardzo potrafię.
Tutaj mam klasę z efektem chciałbym zrobić taka samą drugą ale z efektem np. Particle.SLIME
public class Movement implements Listener { @EventHandler public void onMove(PlayerMoveEvent event) { if( !ParticleData.hasFakeID(event.getPlayer().getUniqueId())) return; Random r = new Random(); for (int i = 0; i < 5 ; i++) event.getPlayer().getWorld().spawnParticle(Particle.CLOUD, event.getPlayer().getLocation().add( r.nextDouble() * 0.5, r.nextDouble() * 0.5, r.nextDouble() * .5), 0); for (int i = 0; i < 5 ; i++) event.getPlayer().getWorld().spawnParticle(Particle.CLOUD, event.getPlayer().getLocation().add( -1*(r.nextDouble() * 0.5), r.nextDouble() * 0.5, (r.nextDouble() * .5) *-1), 0); } }
A tutaj mam dodane GUI wszystko pięknie ładnie ale nie moge efektu dodać, cały czas załapuje efekt z tego Particle.CLOUD
public class GUI { private static Inventory INV; public void register() { Inventory inv = Bukkit.createInventory(null, 9, ChatColor.AQUA + "" + ChatColor.BOLD + "Trails GUI"); ItemStack item = new ItemStack(Material.TOTEM_OF_UNDYING); ItemMeta meta = item.getItemMeta(); meta.setDisplayName(ChatColor.YELLOW + "Totem Trailsxddd"); item.setItemMeta(meta); inv.setItem(3, item); item = new ItemStack(Material.CAMPFIRE); meta = item.getItemMeta(); meta.setDisplayName(ChatColor.RED + "Totem Trai3lsxddd"); item.setItemMeta(meta); inv.setItem(5, item); item = new ItemStack(Material.PAPER); meta = item.getItemMeta(); meta.setDisplayName(ChatColor.RED + "Totem Trai3lsxddd"); item.setItemMeta(meta); inv.setItem(6, item); setInventory(inv); } public Inventory getInventory() { return INV; } private void setInventory(Inventory inv) { INV = inv; } public void openInventory(Player player) { player.openInventory(INV); } }
Z GÓRY DZIĘKUJE ZA POMOC ;D
Odnośnik do komentarza
Udostępnij na innych stronach
2 odpowiedzi na to pytanie
Rekomendowane odpowiedzi