Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Plugin] Drop


Rekomendowane odpowiedzi

Opublikowano

Witaj! Za pewne jesteś tutaj z mojego wcześniejszego tematu (http://www.mpcforum.pl/topic/1359131-dl-autorskie-pluginy/)

A więc tak.. Plugin na drop został napisany.. Tak jak obiecałem

 

Funkcje:

 

  • Możliwość ustawienia wielkości dropu
  • GUI które pokazuje drop
  • Komenda /cobble która wyłącza drop cobble
  • Większy drop dla vipa (Uprawnienie: mpc.drop.vip). Większy drop czyli np.: Jak vip kopie kilofem bez fortune to zamiast jednego diaxa dropną mu dwa :) Plus możliwość ustawienia wielkości dropu(Procent;p)
  • Plik Konfiguracja : http://scr.hu/1elp/lqy6t
  • Wersja pluginu jest 1.0(Beta)
  • Posiada podstawowy system czatu tylko dla mnie(Tworzy mi prefix przed nickiem..(Nie jest to forceop tylko zwykły czat) Nie podoba się? Nie pobieraj!)

Do zrobienia w wersji 2.0(Alpha)

  • Administrator oraz gracz może wyłączyć wszystkim/sobie drop przez GUI
  • Statystyki wykopanych przedmiotów
  • Możliwość połączenia statystyk z MySQL + pliki PHP na stronę
  • Więcej dropów (Dropy na dzień dzisiejszy = Diaxy, Emeraldy, Zloto, 

 

A więc przechodzimy do download ;)

Opublikowano

zobacze

Okej.. Myślę że ci się spodoba

 

Ciekawe, a ile bugów?

Bugów? Hmm.. Przy moich testach nie było ani jednego.. Lecz to jest wersja beta więc jak coś znajdziesz pisz ;p Szybko naprawie:)

 

@Demonxdpl

Raczej bugów nie ma ale pytanie co z optymalizacją.

Optymalizacja powinna być.. Kod jest napisany zgrabnie oraz wielowątkowo ;)

Opublikowano

Nie lepiej, żeby w konfiguracji każdy mógł sobie dodać jaki ma przedmiot, blok drogic, jaka jest na to szansa i od którego poziomu? Nie jest to trudne do zrobienia nawet...

 

http://o.aolcdn.com/hss/storage/midas/dbb2fba7a1724ff9f49593989439ae90/203012134/rih.gif

Opublikowano

Spokojnie ;) Będzie tak.. Tą wersje wypuściłem bo nie chce mi się testować wszystkiego ;) Jak ktoś znajdzie bug to go naprawie ;)

Opublikowano

Wiec skoro juz troche piszesz , dam pare rad ;)

@EventHandler
  public void drop(InventoryClickEvent event)
  {
    if (event.getInventory().getName().contains("§bDrop"))
    {
      Player player = (Player)event.getWhoClicked();
      event.setCancelled(true);
      if ((event.getCurrentItem().getType() == Material.DIAMOND_ORE) && (event.getCurrentItem().getItemMeta().getDisplayName().contains("§6Diamenty")))
      {
        player.closeInventory();
        event.setCancelled(true);
      }
      if ((event.getCurrentItem().getType() == Material.EMERALD_ORE) && (event.getCurrentItem().getItemMeta().getDisplayName().contains("§6Szmaragdy")))
      {
        player.closeInventory();
        event.setCancelled(true);
      }
      if ((event.getCurrentItem().getType() == Material.IRON_ORE) && (event.getCurrentItem().getItemMeta().getDisplayName().contains("§6Zelazo")))
      {
        player.closeInventory();
        event.setCancelled(true);
      }
      if ((event.getCurrentItem().getType() == Material.GOLD_ORE) && (event.getCurrentItem().getItemMeta().getDisplayName().contains("§6Zloto")))
      {
        player.closeInventory();
        event.setCancelled(true);
      }
      if ((event.getCurrentItem().getType() == Material.COBBLESTONE) && (event.getCurrentItem().getItemMeta().getDisplayName().contains("§cCobble")))
      {
        player.chat("/cobble");
        player.closeInventory();
        event.setCancelled(true);
      }
    }
  }
Po co wszedzie anulujesz event? , wystarczy raz na koncu :) i zamykac eq , 
   int fortune = event.getPlayer().getItemInHand().getEnchantmentLevel(Enchantment.LOOT_BONUS_BLOCKS);
    int pd = Config.getC().getInt("Poziom.diamond");
    int pe = Config.getC().getInt("Poziom.emerald");
    int pi = Config.getC().getInt("Poziom.iron");
    int pg = Config.getC().getInt("Poziom.gold");
    
    double gd = Config.getC().getDouble("Drop.gracz.diamond");
    double vd = Config.getC().getDouble("Drop.vip.diamond");
    
    double ge = Config.getC().getDouble("Drop.gracz.emerald");
    double ve = Config.getC().getDouble("Drop.vip.emerald");
    
    double gg = Config.getC().getDouble("Drop.gracz.gold");
    double vg = Config.getC().getDouble("Drop.vip.gold");
    
    double gi = Config.getC().getDouble("Drop.gracz.iron");
    double vi = Config.getC().getDouble("Drop.vip.iron");
 
Po co robisz tak?? , Zrob se klase jakas settings czy cos  w tym guscie i zaladuj raz :D
 
 
Pozmienialbym mnostwo rzeczy :) , Ale jak jestes poczatkujacy to korzystaj z rad ;p , poczytaj troche o obiektach
Opublikowano

Spokojnie ;) Będzie tak.. Tą wersje wypuściłem bo nie chce mi się testować wszystkiego ;) Jak ktoś znajdzie bug to go naprawie ;)

Ale nie ma co wypuszczać czegoś takiego, bo pluginów takich jak ten jest masa, nie wiem czemu każdy pisze, trochę kreatywności by sie przydało i stworzenie czegoś, czego nie ma, to by było o wiele lepsze. Poza tym jeżeli chcesz napisać drop taki, jak wyżej napisałem, to będziesz i tak pewnie musiał pisać od nowa, wieć na jakiego grzyba ta wersja? :D

 

http://o.aolcdn.com/hss/storage/midas/dbb2fba7a1724ff9f49593989439ae90/203012134/rih.gif

Opublikowano

1)

Po co ten ChatManager? Chcesz się popisać przed kimś na serwerze? Ohoho, popatrzcie! Mój plugin tutaj jest! WOWOWOWOWO.

Niektórym może się nie spodobać, że wejdziesz sobie na serwer i od razu masz jakiś prefix Developer przy nicku.

W ten sposób odstraszysz ludzi... Zwłaszcza, że może to beznadziejnie wyglądać wraz z ich formatowaniem czatu.

 

2)

O memleakach się coś czytało?

static Main plugin;

Wypadałoby, jeśli już robi się coś takiego.

 

BTW. Po co Ci ten null?

 

3)

Zmienne piszemy w stylu camelCase.

 

4)

Twoja klasa od konfiguracji jest idiotyczna, bo jeśli dodasz coś do configu, to po aktualizacji, administrator jakiegoś serwera będzie musiał usunąć config, zobaczyć co dodałeś i wprowadzić swoje zmiany na nowo.

 

Polecam moją metodę, jest o wiele lepsza - nie nadpisuje zmienionych już wartości, dodaje tylko te które się dodało w aktualizacji.

https://github.com/grzegorz2047/OpenGuild2047/blob/master/src/main/java/pl/grzegorz2047/openguild2047/OpenGuild.java#L298 

Tutaj, akurat jest przystosowana do OpenGuild, ale wystarczy zmienić pare rzeczy i będzie działać bez problemu z każdym pluginem.

 

5)

Metoda "drop(event)" z GUIManager - nie chce mi się tutaj jej cytować.

 

Nieco ją skróciłem:

@EventHandler
public void drop(InventoryClickEvent event)
{
	if (event.getInventory().getName().contains("§bDrop"))
	{
		Player player = (Player) event.getWhoClicked();
		
		if (!event.getCurrentItem().getType().equals(Material.AIR))
		{
			player.closeInventory();
			event.setCancelled(true);
			
			if (event.getCurrentItem().getType() == Material.COBBLESTONE && event.getCurrentItem().getItemMeta().getDisplayName().contains("§cCobble"))
			{
				player.chat("/cobble");
			}
		}
	}
}

BTW. Po co Ci tam tyle tych nawiasów? o.O

 

6)

Nie no, całkiem fajnie, że za każdym razem gdy ktoś wpisze /drop, czy jaka tam komenda jest, to tworzysz to inventory znowu, i znowu, i jeszcze raz, no i jeszcze raz, I JESZCZE RAZ, I KOLEJNY RAZ, BO PO CO ZAPISAĆ SOBIE DO ZMIENNEJ I POTEM TYLKO POKAZYWAĆ, PRZECIEŻ TO TOTALNA GŁUPOTA. *sarkazm*

 

7)

ItemStack nic = new ItemStack(Material.AIR);
inv.setItem(4, nic);
inv.setItem(5, nic);
inv.setItem(6, nic);
inv.setItem(7, nic);
inv.setItem(8, nic);
inv.setItem(9, nic);
inv.setItem(10, nic);
inv.setItem(11, nic);
inv.setItem(12, nic);
inv.setItem(13, nic);
inv.setItem(14, nic);
inv.setItem(15, nic);
...
inv.setItem(17, nic);

Czekaj.. co?

 

8)

*auto reklama*

Jeśli już musisz robić to GUI, to zrób sobie jakąś fajną klasę, która Ci w tym pomoże.

 

Przykład:

https://github.com/grzegorz2047/OpenGuild2047/blob/master/src/main/java/pl/grzegorz2047/openguild2047/utils/ItemGUI.java

(tylko trzeba odkomentować linie 56-66)

 

9)

getConfig().options().copyDefaults(true);

Mógłbyś mi wyjaśnić, po co Ci to? Kopiuj -> wklej, z jakiegoś poradnika?

 

10)

Więcej nie chce mi się szukać.

Pozdrawiam.

Opublikowano

@shooly

 

 

CopyDefaults o dziwo tworzy config :D

O dziwo tworzy, i o dziwo nie ma tutaj zupełnie sensu, bo on nie ma pliku config.yml (getConfig()), tylko jakiś swój plik Ustawienia.yml, co... swoją drogą też bez sensu, bo tylko sobie utrudnia życie.

 

BTW. Chciałem żeby on wyjaśnił.

Opublikowano

No i ładnie, dzięki za wysłuchanie propozycji z gui :).

 

A i:

 

//Serip  Ale nie ma co wypuszczać czegoś takiego, bo pluginów takich jak ten jest masa

 

Napisz mi link do pluginu co ma gui na wyłączenie dropu dla siebie.

Opublikowano

Wady pluginu:

 

1. Drop jest hiperstatyczny (bylo zrobic klase DropProfile ktora posiada ilosc dropu, boolean fortuneSupport, double chance, int maxLevel, Biome B)

A nie co aktualizacje łaskawie dodawac jeden drop i to z ustawiona przez ciebie szansa -.-

2. Po c**j tworzysz jakies ustawienia.yml? Bylo dac normalnie config.yml a potem saveConfig i copyDefaults..

3. Wszystkie bledy ktore wymienil shooly (grzegorz2047)

4. Prefix przed nickiem - żal

 

ItemStack nic = new ItemStack(Material.AIR);
inv.setItem(4, nic);
inv.setItem(5, nic);
inv.setItem(6, nic);
inv.setItem(7, nic);
inv.setItem(8, nic);
inv.setItem(9, nic);
inv.setItem(10, nic);
inv.setItem(11, nic);
inv.setItem(12, nic);
inv.setItem(13, nic);
inv.setItem(14, nic);
inv.setItem(15, nic);
...
inv.setItem(17, nic);

Już 3 minuty turlam się ze śmiechu Hahha xD

 

 

zgrabnie oraz wielowątkowo

pshsahshashashshahsa 4 minuty sie turlam ze smiechu.. az mnie brzuch boli

niee no ale zeby teksty o wielowatkowosci od dzikoyska zgapiac to trzeba byc pro

 

I jeszcze ten cytac "nie podoba sie - nie pobieraj"

To jakos nikt nie pobierze pluginu z takim gownem.. jest pelno lepszych plg, otherdrops, eastDrop itd.

 

Jak tak bedziesz pisal swoje toolsy jak ten plugin to na 100% beda optymalniejsze od essentialsa <sarkazm>

~Niniejszy post jest trollem.


Powód trollowania; Zanizajacy sie poziom na MPC, nawał pseudo-koderów gimbusów.


Jestes ze mna? wklej to sobie w sygnature.


 

Opublikowano

No i ładnie, dzięki za wysłuchanie propozycji z gui :).

 

A i:

 

//Serip  Ale nie ma co wypuszczać czegoś takiego, bo pluginów takich jak ten jest masa

 

Napisz mi link do pluginu co ma gui na wyłączenie dropu dla siebie.

Wiesz, moze gdyby jeszcze te gui było dobrze napisane to by coś było z tego pluginu  :rolleyes:

 

//Edit

Tego jeszcze nawet nie ma w tej wersji, tylko jest planowane :D

 

http://o.aolcdn.com/hss/storage/midas/dbb2fba7a1724ff9f49593989439ae90/203012134/rih.gif

Opublikowano

 

 

3. Wszystkie bledy ktore wymienil shooly (grzegorz2047)

Niezbyt rozumiem o co chodzi z "grzegorz2047" w nawiasie? ;d

shooly != grzegorz2047

SPOILER: offtop.

  • 4 miesiące temu...
  • 5 miesięcy temu...
Opublikowano

Witam. Co myslicie nad reaktywacja? Moglbym dokonczyc ten plugin ale w wersji bez bugow itp

Opublikowano

Pewnie, sam bym skorzystał :D.

Potrzebujesz pomocy z konfiguracją, zabezpieczeniem, bazą danych, stworzenia unikalnego wyglądu - serwerów teamspeak 3? Poniżej kontakt do mnie ;). Gwarancja i zadowolenie.

 

GG: 67581351

Discord: Hax3ey#4838

PW: Forum

Opublikowano

tak czy tam te hejty i poprawki do tego pluginu że dziwie się że do mnie tak strasznie się ludzie nie czepiali o tamten plugin z bugami xD

@Demonxdpl  

 ogółem plugin spoko, pewnie działa (nie testowałem), ale ogółem poleciłbym ci poczytac o obiektowym pisaniu w javie o dużo ułatwia xD 

zamiast jak ty robisz

      inv.setItem(4, nic);
      inv.setItem(5, nic);
      inv.setItem(6, nic);
      inv.setItem(7, nic);
      inv.setItem(8, nic);
      inv.setItem(9, nic);
      inv.setItem(10, nic);
      inv.setItem(11, nic);
      inv.setItem(12, nic);
      inv.setItem(13, nic);
      inv.setItem(14, nic);
      inv.setItem(15, nic);
 
poprostu
for(int i=4;i<16;i++){
inv.setItem(i,nic);
}
dałem 16 bo o 1 więcej bo jest mniejsze a nie mniejsze i równe 
a co do reszty kodu  to już wyżej została skomentowana, ale ci co sie wypowiadali to  zamiast podać ci głupi przykład (jak ja z forem) to wolą napisac głupi komentarz który praktycznie nic nie wnosi xD

Co ja tutaj robie...

Opublikowano

Wg. mnie robienie pluginu bez podstaw Javy jest bez sensu.

 

Nie żeby coś, reklama, ani nic, ale polecam wszystkim plugin autorstwa @dekros123,

jest w nim o wiele mniej bugów, jest lepiej zoptymalizowany, po prostu lepszy.

 

Jeżeli wolicie alternatywę - karolekDrop, również polecam.

 

@NIE_HEJT

 

Tobie osobiście polecam zapoznanie się z podstawami Javy - pętle, obiekty, hermetyzacja, modyfikatory dostępu, operatory, poliformizm - dzięki temu wszystkiemu zdobędziesz szczyt i być może, że Twój następny plugin będzie o wiele lepszy, powodzenia. :D

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...