Π½Π° ΡΠ΅ΠΌ ΠΏΠΈΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π΄Π»Ρ ΠΌΠ°ΠΉΠ½ΠΊΡΠ°ΡΡΠ°
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΠ°ΠΉΠ½ΠΊΡΠ°ΡΡ
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π» ΡΠ΅ΠΌΡ Π½Π° ΠΏΠΈΠΊΠ°Π±Ρ ΡΡΠ°Π½Π΅Ρ ΡΡΠ½ΠΎ ΡΡΠΎ ΡΡΠΎΠΊΠΎΠ² ΠΏΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΡΠ²Ρ ΠΎΡΠ΅Π½Ρ ΠΈ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ. ΠΠ°ΡΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ.
Π Π°Π±ΠΎΡΠ° Ρ plugin.yml
Π Π°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ
ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ Bukkit Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ.ΠΠ»Π°Π³ΠΈΠ½Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΡΠ²Π΅Π½ΡΡ (ΡΠΎΠ±ΡΡΠΈΡ) ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΠ»ΠΈ Π°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ²Π΅Π½ΡΡ Π²Ρ ΠΎΠ΄Π° ΠΈ Π²ΡΡ ΠΎΠ΄Π° Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ³ΡΠΎΠΊΠΎΠ² Π²ΡΠ³Π»ΡΠ΄ΡΡ ΡΠ°ΠΊ:
public void onJoin(PlayerJoinEvent event) <
event.setJoinMessage(event.getPlayer().getName() + » Π²ΠΎΡΠ΅Π» Π½Π° ΡΠ΅ΡΠ²Π΅Ρ»);
public void onQuit(PlayerQuitEvent event) <
event.setQuitMessage(event.getPlayer().getName() + » ΠΏΠΎΠΊΠΈΠ½ΡΠ» ΡΠ΅ΡΠ²Π΅Ρ»);
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡ ΠΏΠΎΠ²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Π΅Π΅. «@EventHandler» ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΎ Π΄Π°Π»ΡΡΠ΅ ΠΈΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°Ρ ΡΠ²Π΅Π½ΡΠ°, ΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠΎΠΊ Π·Π°Ρ ΠΎΠ΄ΠΈΡ ΠΈΠ»ΠΈ Π²ΡΡ ΠΎΠ΄ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ «event» Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ³ΡΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Π·Π°ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
event.setJoinMessage(event.getPlayer().getName() + » Π²ΠΎΡΠ΅Π» Π½Π° ΡΠ΅ΡΠ²Π΅Ρ»);
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎΡ ΠΊΠΎΠ΄:
String playername = event.getPlayer().getName();
Π’Π°ΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ playername ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ,
Π² ΠΊΠΎΠ½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠΎΡΡΡ Π·Π½Π°ΠΊ «;» ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠΉ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°.
Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ «Hello World!»
Π·Π°ΠΌΠ΅ΡΠ΅ ΡΡΠΎ Π·Π½Π°ΠΊ + Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠΎΠ±Π΅Π» Π° ΠΏΡΠΎΡΡΠΎ ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»Ρ ΡΠ²ΡΠ·ΡΡΡΠ΅Π³ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π°.
ΠΠΎ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π°, Ρ ΠΏΠΎΡΠΎΠ²Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
Π²ΡΠ±Π΅ΡΠ΅ΡΠ΅ Π΄Π»Ρ Java EE. ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ craftbukkit.
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΉΠ΄ΠΈΡΠ΅ Π² NetBeans ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ «Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ» (ΡΠ²Π΅ΡΠ»ΠΎ ΠΊΠΎΡΠΈΡΠ½Π΅Π²Π°Ρ ΠΏΠ°ΠΏΠΊΠ° Ρ ΠΏΠ»ΡΡΠΈΠΊΠΎΠΌ Π² ΠΏΠ°Π½Π΅Π»Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ²)
ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ ΠΈ Ρ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΠΎΡΠΊΡΡΡΡΡΡ ΠΊΠ»Π°ΡΡ Main
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°Ρ ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΡ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΈ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΏΠ°ΠΏΠΊΡ lib Π² Π½Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠΊΠ°ΡΠ°Π½Π½ΡΠΉ craftbukkit ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΡΠ½ΠΎΠ²ΠΎ Π² NetBeans ΠΆΠΌΡΠΌ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ (ΡΠ»Π΅Π²Π°) Π·Π°Ρ ΠΎΠ΄ΠΈΠΌ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π² ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ «ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ» ΠΈ ΠΆΠΌΡΠΌ «Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΈΠ»ΠΈ jar» ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ craftbukkit.jar, ΠΆΠΌΡΠΌ ΠΎΠΊ ΠΈ Π΅ΡΡ ΡΠ°Π· ΠΎΠΊ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ Π³Π»Π°Π²Π½ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ
public class Main extends JavaPlugin implements Listener < <
JavaPlugin ΠΈ Listener Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄ΡΡΡΠΊΠ½ΡΡΡ ΠΊΡΠ°ΡΠ½ΡΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° Π½ΠΈΡ ΠΈ Π·Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Alt+Enter ΠΏΠΎΡΠ²Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΠΆΠΌΡΠΌ «ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠΏΠΎΡΡΠ° org.bukkit.event.Listener»
ΠΏΠΎΡΠΎΠΌ ΠΏΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠ»ΠΎΠ²Ρ ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ «ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠΏΠΎΡΡΠ° org.bukkit.plugin.java.JavaPlugin»
public static void main(String[] args) <
// TODO code application logic here
public void onEnable() <
getServer().broadcastMessage(«ΠΠΎΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π²ΠΊΠ»ΡΡΠ΅Π½»);
public void onDisable() <
getServer().broadcastMessage(«ΠΠΎΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΎΡΠΊΠ»ΡΡΠ΅Π½»);
public void onJoin(PlayerJoinEvent event) <
event.setJoinMessage(event.getPlayer().getName() + » Π·Π°ΡΠ΅Π» Π½Π° ΡΠ΅ΡΠ²Π΅Ρ»);
public void onQuit(PlayerQuitEvent event) <
event.setQuitMessage(event.getPlayer().getName() + » ΠΏΠΎΠΊΠΈΠ½ΡΠ» ΡΠ΅ΡΠ²Π΅Ρ»);
Ρ PlayerJoinEvent ΠΈ PlayerQuitEvent ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅(ΠΈΠΌΠΎΡΡ)
ΠΠΎΡΠΎΠ²ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ Π³ΠΎΡΠΎΠ².
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π½Π° Spigot/Bukkit
ΠΠ΅ΡΠ²ΡΠΉ ΠΌΠΎΠΉ ΡΡΡΠΎΡΠΈΠ°Π», ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΡ Π΄ΠΎΠ½Π΅ΡΡΠΈ ΠΈΠ½ΡΡ Π΄ΠΎ Π»ΡΠ΄Π΅ΠΉ ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΡΡΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ, Π½ΠΎ Π½Π΅ Π·Π½Π°ΡΡ Π³Π΄Π΅ Π½Π°ΡΠ°ΡΡ. ΠΠ΅ ΡΡΠ΄ΠΈΡΠ΅ ΡΡΡΠΎΠ³ΠΎ.
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΡΡΠΎ Π½Π°Π²ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΎΠΏΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ. ΠΡΠ»ΠΈ Π½Π΅Ρ, Π±ΡΠ΄Π΅Ρ ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΡΡΠΎ Π²ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ.
ΠΠΈΡΠ°ΡΡ Π½Π°ΡΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π° Java, ΡΠ°ΠΊ ΡΡΠΎ Π½Π°ΡΠ°ΡΡ ΡΡΠΎΠΈΡ Ρ Π²ΡΠ±ΠΎΡΠ° ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (IDE). ΠΠΈΡΠ½ΠΎ Ρ Π½Π°ΡΠΈΠ½Π°Π» Ρ Eclipse, ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΡΠ΅Π» Π½Π° IntelliJ IDEA. ΠΡΠΎΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΠΌ Eclipse ΠΈ Π½Π΅ ΠΏΠ°ΡΠΈΠΌΡΡ.
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Eclipse ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ (workspace), ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ, Ρ ΠΎΡΡΠ°Π²Π»Ρ ΠΊΠ°ΠΊ Π΅ΡΡΡ.
ΠΡ, ΠΌΡ ΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ±ΠΈΡΠ°Π»ΠΈΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ. Π‘Π½ΠΈΠ·Ρ ΠΎΡ Package Explorer Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° Create a Java project.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π² Eclipse. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° Java ΠΈ Π½Π΅ ΠΏΠ°ΡΠΈΡΡΡΡ, Π½ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π½Π°ΡΠ΅ ΡΠ΄ΡΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠΎΠΆΠΈΠΌΠ°Π΅ΠΌ Alt + Enter, Π²ΠΈΠ΄ΠΈΠΌ Π²ΠΎΡ ΡΡΠΎ.
Add External JARs, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π½Π°ΡΠ΅ ΡΠ΄ΡΠΎ, Apply and Close.
Π‘Π½ΠΎΠ²Π° ΠΏΡΠΎΠΆΠΈΠΌΠ°Π΅ΠΌ Alt +Enter, Java Compiler, ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π³Π°Π»ΠΎΡΠΊΡ ΠΏΠΎΠ΄ JDK Compliance, ΠΈ ΡΡΠ°Π²ΠΈΠΌ Compieler Compliance Level Π½Π° 1.8, ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ.
ΠΡΡ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈ, ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ.
ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π³Π»Π°Π²Π½ΡΠΉ ΠΊΠ»Π°ΡΡ. Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΡΡΡ ΠΎΠ±ΡΡΡΠ½ΡΡΡ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠ»Π°ΡΡΡ Π² Java, ΡΠΎΠ²Π΅ΡΡΡ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π»ΠΈΠ±ΠΎ ΡΠ΅ΠΉΡΠ°Ρ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ·ΠΆΠ΅. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° Π² Π½Π°ΡΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅, ΠΠΠ ΠΏΠΎ ΠΏΠ°ΠΊΠ΅ΡΡ, new, Class. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ Plugin name.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΡΠΎ.
ΠΡΠ΅ΠΌΡ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄. Π ΠΊΠΎΠ΄Π΅ Π½ΠΈΠΆΠ΅ ΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° JavaPlugin. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° Π½Π°Ρ ΠΏΠ»Π°Π³ΠΈΠ½.
Π Π΅Π·ΠΎΠ½Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ: ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΡΠΊΠ½ΡΡΠΎ? ΠΡΠ΅ ΠΏΡΠΎΡΡΠΎ, ΠΌΡ Π½Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΊΠ»Π°ΡΡ JavaPlugin. ΠΡΠ»ΠΈ Π½Π°Π²Π΅ΡΡΠΈ Π½Π° ΠΎΡΠΈΠ±ΠΊΡ, Eclipse ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ· Π½ΠΈΡ , ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΠΈΠΌΠΏΠΎΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Ρ ΠΊΠΎΠ΄ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΡΠΎ Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π°. ΠΡΠ±ΠΎΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ onEnable(), Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ½ ΠΏΡΠΈ Π΅Π³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ. Π’Π°ΠΊ-ΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ onDisable(). Π ΠΊΠΎΠ΄Π΅ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΠΎΡ ΡΠ°ΠΊ:
@Override ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΡΡΠ°Π²ΠΈΡΡΡ ΡΡΠ° Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ. Π‘Π΅ΠΉΡΠ°Ρ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ, Π²ΡΠ΅ΠΌΡ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.
ΠΠ΅ΡΠΎΠ΄ΠΎΠΌ getLogger() ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½Π°Ρ Π»ΠΎΠ³Π³Π΅Ρ, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ log. ΠΠ»Π°ΡΡ Logger ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΌΠ΅ΡΠΎΠ΄ info( ), ΠΊΠΎΡΡΡΠΉ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Ρ ΠΏΠ»Π°Π³ΠΈΠ½, Π½ΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ»: plugin.yml Π² src
name: ΠΠΌΡ ΠΏΠ»Π°Π³ΠΈΠ½Π°
main: ΠΠ»Π°Π²Π½ΡΠΉ ΠΊΠ»Π°ΡΡ
version: ΠΠ΅ΡΡΠΈΡ
ΠΠ ΠΠ‘ΠΠΠΠ¬ΠΠ£ΠΠ’Π TAB
ΠΠ»Ρ ΡΠΊΡΠΏΠΎΡΡΠ° ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ File, Export, Java, JAR File. Π£ΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡ Π΄Π»Ρ ΡΠΊΡΠΏΠΎΡΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ°Π²ΠΈΡΡ ΡΡΠ°Π·Ρ ΠΏΠ°ΠΏΠΊΡ Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π½Ρ ΠΈ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ Finish.
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°, Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π°. Π₯ΠΎΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π ΡΡΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ, Π½ΠΎ ΡΡΠΎ ΡΠΆΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΎΡΠΈΡ.
ΠΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π»ΠΎ, ΠΈ Ρ Π±ΡΠ΄Ρ ΠΏΠΈΡΠ°ΡΡ Π΅ΡΡ ΡΡΠ°ΡΡΠΈ Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΊΠΎΠΌΡ-ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ.
Π’ΡΡΠΎΡΠΈΠ°Π» ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² mineraft
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΡΠΎΡΠΈΠ°Π»Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΄ΡΠΎ Spigot.
Π‘ΠΎΡΡ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ :
Π‘ΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ :
1) IntelliJ IDEA [+]
2) Eclipse [+]
3) NetBeans [+]
ΠΠ»Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΠ°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ JDK (Java Development Kit) ΠΈ JRE (Java Runtime Environment)!
ΠΡΠΎΠ΅ΠΊΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΡΠΎΡΠΈΠ°Π»Π°, Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π² Π‘Π Eclipse.
3) Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ » RuBukkitGuide «) ΠΈ ΡΡΠ°Π²ΠΈΠΌ ΡΠ°ΠΊΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ:
3) Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ:
2) Π£ΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Finish.
ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ ΠΊΠΎΠ΄ΠΈΡΡ!
Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π½Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡ Main ΠΏΠΎΠΊΠ°-ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΠΎΡ ΡΠ°ΠΊ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ protected ΠΈ public ΠΏΠΎΠ»ΡΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ. Π§ΡΠΎΠ±Ρ Java Π·Π½Π°Π»Π° Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ°, ΡΡΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ· ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (JavaPlugin), ΠΌΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ ΡΡΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Override. ΠΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΡ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΈΠ· ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°? onEnable(), ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π²Π΅ΡΡ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ. Π‘Π°ΠΌΠΎ ΡΠ΄ΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠ»Π°Π³ΠΈΠ½, ΠΈ Π½Π°ΡΠ½Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π²ΡΡ Π½ΡΠΆΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΡΠ»ΠΈ ΠΌΡ ΡΠ±Π΅ΡΠ΅ΠΌ extends JavaPlugin ΠΈ ΠΌΠ΅ΡΠΎΠ΄ onEnable(), ΡΠΎ ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ Π² ΠΏΠ°ΠΏΠΊΡ plugins, ΠΎΠ½ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ, ΠΈ Π΅Π³ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ².
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ void? ΠΡΠΎ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ΅ΡΠΎΠ΄ onEnable() Π½ΠΈ ΡΠ΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π· return, ΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΠ΅. (Π’ΠΈΠΏ Π΄ΠΎΡΡΡΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ: int, boolean ΠΈ Π΄Π°ΠΆΠ΅ String).
ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄ΠΎΡΡΡΠΏ? ΠΠΈΡΠ΅ΠΌ this ΠΈ ΡΡΠ°Π²ΠΈΠΌ ΡΠΎΡΠΊΡ. ΠΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ²Π΅Π»Π° Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΏΠΎΠ»Ρ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° JavaPlugin.
Π§ΡΠΎ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ? ΠΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Π°, ΡΡΠΎ ΠΎΠ½ Π²ΠΊΠ»ΡΡΠΈΠ»ΡΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π·Π°Ρ
ΠΎΠ΄ΠΈΠΌ Π² ΠΌΠ΅ΡΠΎΠ΄ onEnable() < >ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ < ΠΈ >ΠΏΠΈΡΠ΅ΠΌ Π½Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ½Π° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ: this.getLogger().info(«ΠΠΠ£ΠΠΠ Π ΠΠΠΠ’ΠΠΠ’!»);
Π§ΡΠΎ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ, Π²Π²Π΅Π΄Ρ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ? ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ Logger, Π² ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ info(. ), ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ.
[Π£ΡΠΎΠΊ][ΠΠ»Π°Π²Π° 1] Π£ΡΠΈΠΌΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°
Π£ΡΠΎΠΊ ΠΏΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅, Π² ΡΡΠΎΠΉ Π½ΠΎΠ²ΠΎΡΡΠΈ, Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ Ρ Π½ΡΠ»Ρ. ΠΠ°ΡΠ½Π΅ΠΌ ΠΌΡ Ρ Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΠΈ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½Π°
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Eclipse
ΠΡ ΡΠΊΠ°ΡΠ°Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠ΄ΡΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Java Project
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²Π²ΠΎΠ΄ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Next
ΠΠ΄Π΅ΡΡ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Add External Jars ΠΈ ΠΈΡΠ΅ΠΌ ΡΠ²ΠΎΠΉ JAR ΡΠ΄ΡΠΎ (Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ bukkit 1.8), ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΡΠ΄Π°
ΠΠ°Π»Π΅Π΅, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΠ» ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Package Π² ΡΠ°ΠΉΠ»Π΅ scr ΠΈ Π² Package ΡΠΎΠ·Π΄Π°Π΅ΠΌ Class. ΠΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Π°.
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΡΠ°ΠΉΠ», Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ 2 ΡΡΡΠΎΠΊΠ΅ extends JavaPlugin, Π·Π°ΡΠ΅ΠΌ, Π½Π°Π²Π΅ΡΡΠΈ Π½Π° Π½Π΅Π³ΠΎ ΠΊΡΡΡΠΎΡ ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΈΠΌΠΏΠΎΡΡ. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ, Ρ Π²Π°Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΡΠΎΠΊΠ° Ρ ΠΈΠΌΠΏΠΎΡΡΠΎΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Π°
Π ΡΠ°ΠΊ. ΠΠ°Π±Ρ Π½Π΅ ΡΠΎΠΌΠΈΡΡ Π²Π°Ρ Π½ΡΠ΄Π½ΡΠΌΠΈ ΡΠΊΡΠΈΠ½Π°ΠΌΠΈ, ΡΠΎΡΡΠ°Π²ΠΈΠ» Π²Π°ΠΌ ΡΡΠ°Π·Ρ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ Π²ΡΠ΄Π°ΡΠΈ Π»ΠΎΠ³Π° Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΆΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, Π° Π½Π΅ ΡΡΠΏΠΎ ΡΠΏΠΈΡΠ΅ΠΌ.
ΠΡ Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅ ΡΠΏΡΠΎΡΠΈΡΠ΅, Π·Π°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ < ΠΈ >> ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·?
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΈ ΡΠΊΠΎΠ±ΠΎΡΠΊΠΈ, ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠ°Π±Π»ΠΈΠΊΠΎΠΌ. ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ Π²Π²ΠΎΠ΄Π° public void onEnable() ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ <, ΡΠΎ Π²ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Ρ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°Π±Π»ΠΈΠΊ Π½Π°ΡΠ½Π΅Ρ ΠΈΡ
Π²ΡΠΏΠΎΠ»Π½ΡΡΡ.
Π§ΡΠΎΠ±Ρ Π·Π°ΠΊΡΡΡΡ ΠΏΠ°Π±Π»ΠΈΠΊ, Π½ΡΠΆΠ½ΠΎ Π²Π²Π΅ΡΡΠΈ >. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ ΠΊΠΎΠ΄, Π½ΡΠΆΠ½ΠΎ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ ΠΈ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠ΅, Π½Π°ΠΏΠΈΡΠ°ΡΡ Π΅ΡΠ΅ ΡΠ°Π· >. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠ°Π±Π»ΠΈΠΊ ΠΈ ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ΅Π½Ρ
Π ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½Π΅ΠΌ ΡΡΠΎΠΊΠ΅, ΠΌΡ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ Π²ΡΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΎ Π·Π°ΠΏΡΡΠΊΠ΅/Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
ΠΠ° ΡΠ΅ΠΌ ΠΏΠΈΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π΄Π»Ρ ΠΌΠ°ΠΉΠ½ΠΊΡΠ°ΡΡΠ°
ΠΡΠ°ΠΊ, ΠΌΠ°Π»ΡΡΠΈΠΊΠΈ ΠΈ Π΄Π΅Π²ΠΎΡΠΊΠΈ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½Π°Ρ ΠΈΠ³ΡΠ°ΡΡ Π² ΡΡΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ. Π ΡΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π»ΡΠ΄Π΅ΠΉ ΠΆΠ΅Π»Π°ΡΡ ΠΎΡΠΊΡΡΡΡ ΡΠ²ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΠ°Ρ
ΠΌΠ°ΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΈΠΎΠ½Π΅ΡΠΊΠ°ΠΌΠΈ, ΡΠΎ ΡΠ²ΠΎΠΈΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²β¦ ΠΠΎ ΡΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈ ΡΠ°ΠΊ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΏΠΎΡΠΎΠΉ Π½Π΅ Π½Π°ΠΉΡΠΈ ΠΈΠ»ΠΈ Π½ΡΠΆΠ½Π° ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΌΠ΅Π»ΠΎΡΠΎΠ²ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΈΡΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΌΠΎΠ½ΡΡΡΡΠΎΠ·Π½ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ Π²Π°Ρ Π½Π°ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΌΠ°ΠΉΠ½ΠΊΡΠ°ΡΡΠ°.
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΠΊΠ»ΠΈΠΏΡ. ΠΠ½Π°ΠΊΠΎΠΌΠΈΡΡ Π²Π°Ρ Ρ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π½Π΅ ΡΡΠ°Π½Ρ. Π ΠΡΠ³Π»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠ΅ΠΉ Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ Π½Π°ΠΉΡΠΈ.
ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ, ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ (Java Project).
Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅, Π² ΠΏΠΎΠ»Π΅ Project name, ΠΏΠΈΡΠ΅ΠΌ Π»ΡΠ±ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅. Π Π³ΡΡΠΏΠΏΠ΅ JREΠΌΠΎΠΆΠ½ΠΎ
Π²ΡΠ±ΡΠ°ΡΡ Π²Π΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Java, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ. Π₯ΠΎΡΡ Ρ Π½Π΅ Π·Π½Π°Ρ Π½Π° ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π·Π°Π½Π°Π²ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΎΠ±ΡΠ°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½.
.
Π‘Π»Π΅Π²Π°, Π² Package Explorer, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π½Π°ΡΠ΅ Π΄ΡΠ΅Π²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π’Π°ΠΌ ΠΏΠΎΠΊΠ° Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΡΡΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΡ. ΠΠ°ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠ΅Π³ΠΎ. ΠΡΠΏΡΠ°Π²ΠΈΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ. ΠΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ½Π°ΡΠ°Π»ΠΎ ΠΠ°ΠΊΠ΅Ρ(package). ΠΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ,
ΠΠ°ΠΊΠ΅Ρ β ΡΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½(namespace) ΠΈ ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
Π ΠΏΠΎΠ»Ρ Name Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΈΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ°. Π€ΠΎΡΠΌΠ°Ρ ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ: me.dmitriymx.firstplg.
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Class Π² ΠΏΠ°ΠΊΠ΅Ρ.
Π ΠΏΠΎΠ»Π΅ Name Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΈΠΌΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ DmxFirstPlugin).
ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ½ΠΊΡΡ ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π΅ΡΡΡ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅.
ΠΠΎΡ Π²ΡΠΎΠ΄Π΅ ΠΈ Π²ΡΡ Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΎΠΉβ¦ Π₯ΠΎΡΡ Π½Π΅Ρ. ΠΠ°Π±ΡΠ»ΠΈ ΠΏΡΠΎ Bukkit API. Π‘ΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π² Π»ΡΠ±ΡΡ ΠΏΠ°ΠΏΠΊΡ(Π»ΡΡΡΠ΅ Π² ΡΡ ΠΆΠ΅, Π³Π΄Π΅ ΠΈ workspace, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΡΡ) ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ ΠΏΠΊΠΌ(ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ) Π½Π° ΠΏΠ°ΠΏΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Package Explorer ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Properties. Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅, ΡΠ»Π΅Π²Π°, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ Java Build Path. Π‘ΠΏΡΠ°Π²Π° ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Libraries. ΠΠ°Π»Π΅Π΅ ΠΆΠΌΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Add External JARs ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠΊΠ°ΡΠ΅Π½Π½ΡΠΉ Bukkit API.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΠΊΠ°ΡΠ° Π΄Π»Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΡΠΎ
public class DmxFirstPlugin<
Π½Π° ΡΡΠΎ
public class DmxFirstPlugin extends JavaPlugin<
ΠΠΊΠ»ΠΈΠΏΡ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½Π΅Ρ Π½Π°ΠΌ JavaPlugin, ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π½Π° ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΊΠΎΠ΄Π΅. ΠΡΠ»ΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΡΠΈ ΠΌΡΡΡ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΠΎΠΌΡ ΠΊΠΎΠ΄Ρ, ΡΠΎ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΠΎΠΊΠΎΡΠΊΠΎ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ Π΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ ΠΈΠ· Bukkit API, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ Import βJavaPluginβ(org.bukkit.plugin.java). Π ΡΡΠ°Π·Ρ ΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π΅ΠΌ. ΠΊΠ°ΠΊ Π½Π°Π΄ Π²ΡΠ΅ΠΌ Π½Π°ΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π²ΠΏΠΈΡΠ°Π»Π°ΡΡ ΡΡΡΠΎΡΠΊΠ°
import org.bukkit.plugin.java.JavaPlugin;
ΠΠΎ Π²ΠΎΡ ΠΎΠΏΡΡΡ ΠΠΊΠ»ΠΈΠΏΡΡ ΡΡΠΎ-ΡΠΎ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΈ ΠΎΠ½ Π½Π°ΠΌ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΊΠ»Π°ΡΡ DmxFirstPlugin. ΠΠΎΠ²ΡΠΎΡΡΠ΅ΠΌ ΡΡΡΠΊ Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΎΠΉ ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠ½ΠΊΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΌΡ: Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠΎΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, Π½Π°ΠΌ Π΄ΠΎΠΏΠΈΡΡΡ 2 ΠΌΠ΅ΡΠΎΠ΄Π°: onEnabled ΠΈ onDisabled.
Π‘ΠΎΠ±ΡΡΠΈΠ΅ onEnabled ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π°Ρ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅. Π’.Π΅. ΠΊΠΎΠ΄ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π² ΡΡΠΎΠΌ ΠΌΠ΅ΡΠΎΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΡΠ°ΠΌΡΠΌ ΠΏΠ΅ΡΠ²ΡΠΌ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΡΡΠΎΠΌΡ, onEnabled() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠ°ΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½Π°, ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Ρ ΡΠ°ΠΌ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠΎΡΠΈΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ.
Π‘ΠΎΠ±ΡΡΠΈΠ΅ onDisabled, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ, Π³Π΄Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΎΡ ΡΠΆΠ΅ Π½Π΅Π½ΡΠΆΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡΡΡ ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ(Π΅ΡΠ»ΠΈ, Π½Π°ΠΏΠΈΡΠΈΠΌΠ΅Ρ, ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π»ΡΡ ΠΊ Π±Π΄)
Π’Π΅ΠΏΠ΅ΡΡ Β«Π·Π°ΠΊΡΠ΅ΠΏΠΈΠΌΒ» Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ, ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ΅ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π½Π°ΠΏΠΈΡΠ΅ΠΌ:
private static final Logger mclog = Logger.getLogger(«minecraft»);
Π Π² ΠΌΠ΅ΡΠΎΠ΄Π°Ρ
onEnabled ΠΈ onDisabled:
public void onEnable() <
mclog.info(«[DmxFirstPlugin] Start»);
>
public void onDisable() <
mclog.info(«[DmxFirstPlugin] Stop»);
>
Π ΠΈΡΠΎΠ³Π΅, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΡ ΠΊΠΎΠ΄:
package me.dmitriymx.firstplg;
public class DmxFirstPlugin extends JavaPlugin<
private static final Logger mclog = Logger.getLogger(«minecraft»);
@Override
public void onDisable() <
mclog.info(«[DmxFirstPlugin] Stop»);
>
@Override
public void onEnable() <
mclog.info(«[DmxFirstPlugin] Start»);
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΡΡΠΈΡ
ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ. ΠΠ°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΉΠ» ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π°.
ΠΠ»ΠΈΠΊ ΠΏΠΊΠΌ ΠΏΠΎ src, New->File. Π File name ΠΏΠΈΡΠ΅ΠΌ plugin.yml. Π Π½Π΅Π³ΠΎ ΠΏΠΈΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ:
name: FirstSamplePlugin
main: me.dmitriymx.firstplg.DmxFirstPlugin
version: 1.0
Π Π²ΠΎΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ.
Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΠ»ΠΈΠΊ ΠΏΠΊΠΌ ΠΏΠΎ ΠΏΠ°ΠΏΠΊΠ΅ src ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Export. Π ΠΎΠΊΠ½Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΏΠ°ΠΏΠΊΡ Java ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ°ΠΌ JAR file. ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° Next, ΠΆΠΌΠ΅ΠΌ Π½Π° Browse ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΡΠ°ΠΉΠ» ΡΡΠ°Π·Ρ Π² ΠΏΠ°ΠΏΠΊΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΡΠ΅ΡΠ²Π΅ΡΠ°(plugins). Finish.
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΡΠ±Π΅ΠΆΠ΄Π°Π΅ΠΌΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΠΌΡ Ρ ΠΎΡΠΈΠΌ:
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π²ΡΡ. ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΊΠ°ΡΠΊΠ°Ρ Π΄Π»Ρ Π±ΡΠ΄ΡΡΡΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ².














