Skocz do zawartości


Zdjęcie

[Video] Seria poradników związanych z tworzeniem pluginów do serwera Minecraft Bukkit


  • Zaloguj się, aby dodać odpowiedź
38 odpowiedzi w tym temacie

#1 grzegorz2047

grzegorz2047

    Znawca

  • Użytkownik+
  • 355 postów

Napisano 12 February 2013 - 23:55

Cześć,

w tym temacie będę umieszczał wam różne poradniki mojego autorstwa związane z tworzeniem pluginów pod  serwer Bukkit.

Jeżeli nie będzie można dodawać filmików za dużo w temacie to dawać będę w postach.

Tutaj znajduje się spoiler z lekcjami:

 

Jeżeli chcecie jakiś poradnik, który nie występuje to postaram się go nagrać :)


  • kwasior1 lubi to
Programuj? w c++ ,java,javascript a ty ?

craftportal

Craftserve to największy i najlepszy polski hosting serwerów Minecraft, jest solidny i tani więc go polecam

#2 Drag

Drag

    Nowy

  • Użytkownik
  • 31 postów
  • Drag

Napisano 13 February 2013 - 15:43

Dzieki :D



#3 grzegorz2047

grzegorz2047

    Znawca

  • Użytkownik+
  • 355 postów

Napisano 13 February 2013 - 17:10

Dzieki :D

Spoko, jeżeli masz jakieś pytania to pytaj :)


Programuj? w c++ ,java,javascript a ty ?

#4 MaaLee

MaaLee

    Bywalec

  • Użytkownik
  • 196 postów

Napisano 13 February 2013 - 21:16

Jak tylko bede mial chwile to obejrze.
Interesuje sie programowaniem ale nie mialem jeszcze stycznosci z java.
Poradniki na pewno sa ciekawe - widzialem twoje pluginy a z niektorych korzystam. Maja to czego od nich oczekuje. Nie sa rozbudowane o niepotrzebne funkcje tylko to co jest potrzebne.

#5 modelot

modelot

    Nowy

  • Użytkownik
  • 11 postów
  • modelot

Napisano 14 February 2013 - 16:24

Dla raczkujących z pluginami bardzo dobry poradnik polecam !



#6 ZohanTSW

ZohanTSW

    Nowy

  • Użytkownik
  • 38 postów
  • Zohan

Napisano 14 February 2013 - 22:15

Konkretny poradnik, przyda się



#7 grzegorz2047

grzegorz2047

    Znawca

  • Użytkownik+
  • 355 postów

Napisano 16 February 2013 - 00:15

@ref nowy poradnik nt. leczenia i zabijania graczy oraz tworzenia komend bez użycia slasha (ukośnika)


Programuj? w c++ ,java,javascript a ty ?

#8 kuxnicki

kuxnicki

    Nowy

  • Użytkownik
  • 48 postów
  • kuxnicki

Napisano 17 February 2013 - 04:25

Denerwują mnie ludzię, którzy piszą:

Dzięki, Przyda się a nawet Like nie dadzą ;(

 

Btw, Poradniki troche bez sensu moim zdaniem,

Ty się lepiej zajmij tworzeniem pluginów, ;)

To ci lepiej wychodzi

Takie moje zdanie :)



#9 grzegorz2047

grzegorz2047

    Znawca

  • Użytkownik+
  • 355 postów

Napisano 17 February 2013 - 09:29

Denerwują mnie ludzię, którzy piszą:

Dzięki, Przyda się a nawet Like nie dadzą ;(

 

Btw, Poradniki troche bez sensu moim zdaniem,

Ty się lepiej zajmij tworzeniem pluginów, ;)

To ci lepiej wychodzi

Takie moje zdanie :)

Wg, mnie lepiej, że ludzie posiadają jakikolwiek poradnik aniżeli mieli by samemu do tego dochodzić.


Programuj? w c++ ,java,javascript a ty ?

#10 grzegorz2047

grzegorz2047

    Znawca

  • Użytkownik+
  • 355 postów

Napisano 22 February 2013 - 18:13

@ref


Programuj? w c++ ,java,javascript a ty ?

#11 ElDorado

ElDorado

    Znawca

  • Użytkownik
  • 214 postów

Napisano 24 February 2013 - 09:26

Czy to Windows 8 ? :D



#12 grzegorz2047

grzegorz2047

    Znawca

  • Użytkownik+
  • 355 postów

Napisano 24 February 2013 - 10:08

Czy to Windows 8 ? :D

Tak.


Programuj? w c++ ,java,javascript a ty ?

#13 ElDorado

ElDorado

    Znawca

  • Użytkownik
  • 214 postów

Napisano 24 February 2013 - 17:39

Mam problem z listerinach 

Z konsoli

17:32:22 [INFO] Entities enhanced[0] subclassed[2]
17:32:23 [SEVERE] Could not load 'plugins/interplugin.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.ClassCastException: class pl.interplugin.Main
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184)
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
at org.bukkit.craftbukkit.v1_4_R1.CraftServer.loadPlugins(CraftServer.java:239)
at org.bukkit.craftbukkit.v1_4_R1.CraftServer.(CraftServer.java:217)
at net.minecraft.server.v1_4_R1.PlayerList.(PlayerList.java:55)
at net.minecraft.server.v1_4_R1.DedicatedPlayerList.(SourceFile:11)
at net.minecraft.server.v1_4_R1.DedicatedServer.init(DedicatedServer.java:104)
at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:399)
at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
Caused by: java.lang.ClassCastException: class pl.interplugin.Main
at java.lang.Class.asSubclass(Class.java:3046)
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:174)
... 9 more

 

 

Main.class

 
package pl.interplugin;
 
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.plugin.java.JavaPlugin;
 
public class Main extends JavaPlugin implements Listener {
 
@Override
public void onEnable() {
    System.out.println("InterPlugin(ON)");
    getServer().getPluginManager().registerEvents(this, this);
 
}
 
@Override
public void onDisable() {
System.out.println("InterPlugin(OFF)");
}
 
public void antytnt(BlockPlaceEvent p){
 
if(p.getBlock().getType() == Material.TNT){
 
String BlockTnt= "TNT Jest Zablokowane";
   BlockTnt = this.getConfig().getString("BlockTnt");
 
p.setBuild(false);
p.getPlayer().sendMessage(ChatColor.GREEN + "[InterPlugin]" + ChatColor.GOLD + BlockTnt);
 
}
 
}
 
 
public void logowanie(PlayerLoginEvent l){
String Witamy= "Witamy na serwerze DP-Craft :D !";
String niedlugo= "Niedlugo 20 slotow ! ;>";
 
Witamy = this.getConfig().getString("Witamy");
niedlugo = this.getConfig().getString("niedlugo");
 
l.getPlayer().sendMessage(ChatColor.GREEN +"[InterPlugin]"+ ChatColor.GOLD + Witamy);
l.getPlayer().sendMessage(ChatColor.GREEN +"[InterPlugin]"+ ChatColor.GOLD + niedlugo);
}
 
@Override
public boolean onCommand(CommandSender sender, Command command,String label, String[] args) {
 
if(label.equalsIgnoreCase("it")){
if(!(sender instanceof Player)){
 
return false;
 
}
Player player = (Player) sender;
if(player.hasPermission("InterPlugin.info")){
 
player.sendMessage(ChatColor.GREEN + "[InterPlugin]" + ChatColor.GOLD +"Twoj Exp: " + player.getLevel());
player.sendMessage(ChatColor.GREEN + "[InterPlugin]" + ChatColor.GOLD +"Twoj nick: " + player.getName());
 
}
else
{
player.sendMessage(ChatColor.RED + "Nie masz uprawnien");
}
 
}
 
return false;
}
 
 
 
 
 
 
 
 
 
 
}

package pl.interplugin;
 
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.plugin.java.JavaPlugin;
 
public class Main extends JavaPlugin implements Listener {
 
@Override
public void onEnable() {
    System.out.println("InterPlugin(ON)");
    getServer().getPluginManager().registerEvents(this, this);
 
}
 
@Override
public void onDisable() {
System.out.println("InterPlugin(OFF)");
}
 
public void antytnt(BlockPlaceEvent p){
 
if(p.getBlock().getType() == Material.TNT){
 
String BlockTnt= "TNT Jest Zablokowane";
   BlockTnt = this.getConfig().getString("BlockTnt");
 
p.setBuild(false);
p.getPlayer().sendMessage(ChatColor.GREEN + "[InterPlugin]" + ChatColor.GOLD + BlockTnt);
 
}
 
}
 
 
public void logowanie(PlayerLoginEvent l){
String Witamy= "Witamy na serwerze DP-Craft :D !";
String niedlugo= "Niedlugo 20 slotow ! ;>";
 
Witamy = this.getConfig().getString("Witamy");
niedlugo = this.getConfig().getString("niedlugo");
 
l.getPlayer().sendMessage(ChatColor.GREEN +"[InterPlugin]"+ ChatColor.GOLD + Witamy);
l.getPlayer().sendMessage(ChatColor.GREEN +"[InterPlugin]"+ ChatColor.GOLD + niedlugo);
}
 
@Override
public boolean onCommand(CommandSender sender, Command command,String label, String[] args) {
 
if(label.equalsIgnoreCase("it")){
if(!(sender instanceof Player)){
 
return false;
 
}
Player player = (Player) sender;
if(player.hasPermission("InterPlugin.info")){
 
player.sendMessage(ChatColor.GREEN + "[InterPlugin]" + ChatColor.GOLD +"Twoj Exp: " + player.getLevel());
player.sendMessage(ChatColor.GREEN + "[InterPlugin]" + ChatColor.GOLD +"Twoj nick: " + player.getName());
 
}
else
{
player.sendMessage(ChatColor.RED + "Nie masz uprawnien");
}
 
}
 
return false;
}
 
 
 
 
 
 
 
 
 
 
}
 

 

plugin.yml

 
name: InterPlugin
version: 1.0
main: pl.interplugin.Main
commands:
  it:
    description: InterPlugin info o graczu
    usage: /it

 

config.yml

 
BlockTnt: TNT Jest Zablokowane
niedlugo: Niedlugo 20 slotow !;>
Witamy: Witamy na serwerze DP-Craft


#14 grzegorz2047

grzegorz2047

    Znawca

  • Użytkownik+
  • 355 postów

Napisano 24 February 2013 - 18:09

Mam problem z listerinach 

Z konsoli

 

Jeżeli używasz eventów to potrzebujesz @EventHandler nad metodą.


Programuj? w c++ ,java,javascript a ty ?

#15 ElDorado

ElDorado

    Znawca

  • Użytkownik
  • 214 postów

Napisano 24 February 2013 - 18:48

dalej to samo



#16 grzegorz2047

grzegorz2047

    Znawca

  • Użytkownik+
  • 355 postów

Napisano 24 February 2013 - 19:01

dalej to samo

Spróbuj uruchomić go bez innych pluginów. Albo popatrz na nawiasy czy dobrze masz powstawiane. Ja tego nie widzę tutaj, bo nie ma odpowiednich przerw i wgl. trudno cokolwiek tu znaleźć.


Programuj? w c++ ,java,javascript a ty ?

#17 ElDorado

ElDorado

    Znawca

  • Użytkownik
  • 214 postów

Napisano 24 February 2013 - 19:21

a możesz mi dać gotowy kod? 



#18 grzegorz2047

grzegorz2047

    Znawca

  • Użytkownik+
  • 355 postów

Napisano 24 February 2013 - 19:29

a możesz mi dać gotowy kod? 

Do jakiego filmiku ?


Programuj? w c++ ,java,javascript a ty ?

#19 ElDorado

ElDorado

    Znawca

  • Użytkownik
  • 214 postów

Napisano 25 February 2013 - 16:45

5.Używanie listenerów w podstawowym zakresie i Fajnie jak byś mi dał plik Main.class plugin.yml i config.yml a ja bym se pozmieniał



#20 grzegorz2047

grzegorz2047

    Znawca

  • Użytkownik+
  • 355 postów

Napisano 25 February 2013 - 16:50

5.Używanie listenerów w podstawowym zakresie i Fajnie jak byś mi dał plik Main.class plugin.yml i config.yml a ja bym se pozmieniał

main

package pl.grzegorz2047;
 
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.plugin.java.JavaPlugin;
 
public class MainerTutek extends JavaPlugin implements Listener {
 
    @Override
    public void onEnable() {
        System.out.println(this.getName() + " Dziala :)");
        getServer().getPluginManager().registerEvents(this, this);
        saveDefaultConfig();
    }
   
   
   
    @EventHandler
    public void przyPostawieniu(BlockPlaceEvent p){
        if(p.getBlock().getType() == Material.TNT){
            p.setBuild(false);
            //albo p.setCancelled(true);
            String MsgBlokTnt= " I co cwaniaku, przecież tego nie mozna uzywac na  tym serwerze !";
            MsgBlokTnt = this.getConfig().getString("MsgBlokTnt");
            p.getPlayer().sendMessage(ChatColor.RED + MsgBlokTnt);
        }
    }
   
    @EventHandler
    public void przyLogowaniu(PlayerLoginEvent e){
        String WelcomeMessage= "Wita cie admin, Jak tam leci dzien :) ";
        WelcomeMessage = this.getConfig().getString("WelcomeMessage");
        e.getPlayer().sendMessage(ChatColor.BLUE + WelcomeMessage);
       
    }
   
   
   
   
   
 
}

Programuj? w c++ ,java,javascript a ty ?