Skocz do zawartości
  • 0

[Optymalizacja] Automessage oraz inventory


kerpson

Pytanie

Witam, czy powiecie mi czy auto message bedzie dzialac wydajnie?? Jezeli trzeba cos zmienic, napiszcie a zastosuje sie :DD

Main:

AutoMessage

 

I jeszcze pytanie co do metody inventory, jest ona dobra czy nie??

A potem przy blok inventory

 

Proszę o normalne odpowiedzi

Edytowane przez bvcz
bvcz

Wstawiam długi kod na https://code.skript.pl

Notatka dodana przez bvcz

Odnośnik do komentarza
Udostępnij na innych stronach

3 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Cytat

public class AutoMSG extends BukkitRunnable{
    
    int i = 0;
    
    public void run(){
        Bukkit.broadcastMessage(TranslateAPI.format(Main.getInst().msg.get(i)));
        i++;
        if(i >= Main.getInst().msg.size()){
            i = 0;
        }
    }

}

rozszerz klase o runnable, a wiadomosci dostarcz od razu w konstruktorze no i wtedy mozesz jeszcze od razu je skoloryzować i tyle, a w run() juz tylko sprawdzasz size listy itd
no i:
 

Cytat

        Bukkit.getScheduler().runTaskTimer(this, new AutoMSG(), 0, delay*80);
 

mozesz puszczac to async i uzyc od razu this.getServer().getScheduler() a nie Bukkit.getScheduler(), no ale jak kto woli, i tak wyjdzie na to samo

Cytat

    @Override
    public void onDisable(){
        System.out.println("[LastSV] Wylaczanie...");
    }

nie rozumiem po co to printujecie =/
przeciez sam serwer juz to robi podczas wlaczania pluginu.. do tego println, a przeciez mozesz uzyc loggera ktory jest juz w javaplugin

 

Cytat

        if(e.getInventory().getName() == "§6§lItemShop"){
            if(e.getCurrentItem().getType().equals(Material.STAINED_GLASS_PANE)){

stringi porownujemy equals(), a enumy enum equals czyli ==

a itemshop.create.. to juz kompletnie fuj = ( uzyj jakiegos api, do tego masz przeciez petle, a ty odwalasz cos takiego:

Cytat

        itemshopvip.setItem(21, glass);
        itemshopvip.setItem(22, glass);
        itemshopvip.setItem(23, glass);
        itemshopvip.setItem(24, glass);
        itemshopvip.setItem(25, glass);
        itemshopvip.setItem(26, glass);
        itemshopvip.setItem(27, glass);
        itemshopvip.setItem(28, glass);
        itemshopvip.setItem(29, glass);
        itemshopvip.setItem(30, glass);
        itemshopvip.setItem(31, glass);
        itemshopvip.setItem(32, glass);
        itemshopvip.setItem(33, glass);
        itemshopvip.setItem(34, glass);
        itemshopvip.setItem(35, glass);
        itemshopvip.setItem(36, glass);
        itemshopvip.setItem(37, glass);
        itemshopvip.setItem(38, glass);
        itemshopvip.setItem(39, glass);
        itemshopvip.setItem(41, glass);
        itemshopvip.setItem(42, glass);
        itemshopvip.setItem(43, glass);
        itemshopvip.setItem(44, glass);
        itemshopvip.setItem(45, glass);
        itemshopvip.setItem(46, glass); i jeszcze dalej xd

lore mozesz dac juz wgl do configu i te inventory wczytuj sobie tylko raz =/ przeciez przy kazdym wywolaniem tej metody robisz pelno akcji =/ sprobuj to skrocic, czyli przy onenable laduj to tylko raz, a w create...() tylko otwieraj inventory graczowi 

ogolnie te tworzenie itemkow wyglada okropnie, jest pelno api gotowych do gui =( np. opengui

 

i ogolnie cancelowac event mozesz od razu po sprawdzeniu nazwy inventory, a nie przy kazdym sprawdzaniu nazwy itemu bo i tak wychodzi na to samo, do tego sprawdzaj czy item ma itemmete i displayname bo sie zdziwisz jak ci zacznie rzucac nulle

Odnośnik do komentarza
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ę...