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

Tworzenie pluginów dla Bukkit


piotrek54PL

Rekomendowane odpowiedzi

  • Odpowiedzi 496
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

hehe... trochę ciężko liczyć na jakieś nowe części więc poszukałem na własną rękę ;) prosiłem CIę, żebyś opisał jak się dostać do configa z innej klasy niżgłówna :D a teraz proszę, żebyś do tutoriala to dodał, bo to banalne... w kasie głównej:

public static main getInstance()
{
	return instance;
}

 

a potem jedynie w innej klasie uzyc NAZWAKLASYGLOWNEJ.getInstance().getConfig() zamiast zwykłego getConfig() ;)

Opublikowano

hehe... trochę ciężko liczyć na jakieś nowe części więc poszukałem na własną rękę ;) prosiłem CIę, żebyś opisał jak się dostać do configa z innej klasy niżgłówna :D a teraz proszę, żebyś do tutoriala to dodał, bo to banalne... w kasie głównej:





public static main getInstance()
{
	return instance;
}

 

a potem jedynie w innej klasie uzyc NAZWAKLASYGLOWNEJ.getInstance().getConfig() zamiast zwykłego getConfig() ;)

Ja polecam taki config






	public void copy(InputStream in, File file) {
		try {
			OutputStream out = new FileOutputStream(file);
			byte[] buf = new byte[1024];
			int len;
			while ((len = in.read(buf)) > 0) {
				out.write(buf, 0, len);
			}
			out.close();
			in.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public void CreateConfig() {
		configFile = new File(getDataFolder(), "Config.yml");
		if (!configFile.exists()) {
			configFile.getParentFile().mkdirs();
			copy(getResource("Config.yml"), configFile);
		}
		config = new YamlConfiguration();
		try {
			config.load(configFile);
		} catch (Exception e) {
			e.printStackTrace();
		}

 

File i ConfigurationFile dajemy jako public zaraz po rozpoczeciu klasy.

Jak chcemy uzyc go w innej klasie na starcie dajemy



public class LOLOLOLO{

	private MainClass plugin;

	public LOLOLOLO(MainClass plugin) {
		this.plugin = plugin;
	}
// Reszta

 

I mozemy uzywac wszystkich potrzebnych opcji, np tych nie dostepnych zwykle w innych klasach niz glowna

Dla ulatwienia warto w kodzie dodac myk

FileConfiguration config = plugin.config

By pisac tylko config.getInt lub cos innego zamiast za kazdym razem uzywac plugin.config...

 

Dlaczego lubie ten kod? bo mozna wygodnie i szybko tworzyc wiele plikow. np configi dla kazdego gracza jak przechowujesz wiecej danych. (tylko nie robie configow dla kazdego gracza jak chcecice trzymac np 5 linijek... Ja potrzebuje do okolo 100 wiec juz sie oplaca)

Config ktorego uzywamy musi yc w naszych plikach zrodlowych :P bo zostanie z tamtad skopiowany.

Ale ja wole usunac kopiowanie i napisc config uzywac filewritera :) mozna napisac fajny config automatycznie dodajacy brakujace opcje/komentarze.

 

Ten kodzik nie jest moj jak cus. Ale jest udostepniony dla kazdego :)

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

Póki co bawiłem się z C++ ale mam zamiar zacząć z Javą. Muszę jeszcze wybrać czy zacząć od minecrafta czy androida :) Z poradnika na 100% skorzystam gdy wybiorę pierwszą opcję!

Opublikowano

2x@up

 

Masz rację ;) Z tym, że to co ja podałem to dokładnie ten sam config, który autor podał w jednej z części tylko przeniesiony do innej klasy... żadnych opcji więcej... tylko standardowy :p Twój oferuje znacznie więcej ustawień i myślę, że autor powinien teżgdzieś o nim informację zawrzeć z tym że... Twój jest na tyle obszerny i ma tyle opcji, że powinien zyskaż nowy rozdział... mój możnaby spokojnie wcisnąć w rodział o configach standardowych ;) Widzisz różnicę mam nadzieję ;)

Opublikowano

w tutku tak ogólnie nie ma nic przydatnego do permissions. :D

Nawet głupiego sprawdzania czy gracz ma permissions w kodzie.

I nie rozumiem po co opisywać api najgorszego pluginu od permissions.

 

Oczywiście mi tu juz nie potrzebne, ale dla innych można by dodac

if (player.hasPermission("NoobPlugin.lol"))

I taka rada, to ze w jego wszystkich komendach sprawdza czy jesteś graczem, to nie oznacza ze tez tak masz robić :D wiele głupich pluginow ma takie sprawdzanie nawet do komendy /reload ...

To się dodaje tylko tam gdzie trzeba. Np: komenda do wyświetlania swoich danych. a do sprawdzenia informacji o graczy tez, ale sprawdza sie tylko cel, nie wysyłającego :)

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

@up

Wydaje mi się jednak, że jak się stworzy zmienną... playera z permisjami i wię wpisze jego nazwę i da kropkę to Eclipse pokaże co można dać... jakoś autor tego nie zawarł a założę się, że nie tylko ja nie miałęm z tym namjniejszych problemów...

Opublikowano

Bardzo ciekawy poradnik. Napisałem dzięki jemu 2 ważne pluginy na mój serwer. Pokombinowałem też sam z kilkoma "funkcjami bukkita" :)

Opublikowano

Nie czytałem całego ale w pierwszym co przejrzałem, znalazłem gafę która zniechęciła mnie do dalszego czytania... Priorytety zdarzeń nie decydują o ilości mocy przeznaczanej dla zdarzenia, ani nawet nie obciążają dodatkowo serwera (bo słuchacz i tak wypełni swoją rolę i tak), lecz o kolejności wywoływania słuchaczy w kolejności od LOWEST -> MONITOR, poczytaj troszkę dokumentację to się nauczysz ;)

Opublikowano

Pytanko jak zrobić żeby plugin czekał na przykład 10 sec?

Uzyj scheudlera wbudowanego w bukkita i wywołaj rozruch przez runTaskLater()

 

 

:O najlepszy poradnik ktory widzialem :D

Proponuję rozwinięcie poradnika o zarządzanie metadanymi np w blokach czy itemkach, ciekawy temat a mało kto podejmuje się tego bo mało kto to rozumie ^^

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...