Skocz do zawartości
  • 0

Problem - Dodanie 2 efektu do PL


Pytanie

 

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 odpowiedzi
Udostępnij na innych stronach

2 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

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)

 

Odnośnik do odpowiedzi
Udostępnij na innych stronach
Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...