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

[Pytanie] Jak zrobić stały item?


Rekomendowane odpowiedzi

Opublikowano

Witam!

Jak zrobić, że po wejściu na serwer, gracz dostaje na stałe  np. kompass - nie może go wyrzucić, przemieścić itd.

Drugie pytanie:

Jak zrobić żeby jakaś stała rzecz (czyt. pytanie 1) po naciśnięciu wydawała jakąś komendę, np. /stone ?

 

Proszę o pomoc, wynagradzam lajkami :D

Opublikowano

Musisz sobie napisać plugin, skript. Zapisać co dany gracz ma z tych stałych przedmiotów i potem to odczytać(dodawać to eq) i chyba tyle, a te komendy to też łatwa sprawa. Trzeba pobrać nazwe itemku i masz :D

 

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

Opublikowano

Musisz sobie napisać plugin, skript. Zapisać co dany gracz ma z tych stałych przedmiotów i potem to odczytać(dodawać to eq) i chyba tyle, a te komendy to też łatwa sprawa. Trzeba pobrać nazwe itemku i masz :D

 

Ale po co tak utrudniać na siłę? 

 

Przy PlayerJoinEvent dodawaj do EQ kompas z danym meta (setName i jakaś tam customowa nazwa), następnie przy InventoryInteractEvent sprawdzasz, czy meta tego klikalnego itemu jest równa danemu stringowi i anulujesz event. ;)

 

­

5465845486.png

Opublikowano

Ale po co tak utrudniać na siłę? 

 

Przy PlayerJoinEvent dodawaj do EQ kompas z danym meta (setName i jakaś tam customowa nazwa), następnie przy InventoryInteractEvent sprawdzasz, czy meta tego klikalnego itemu jest równa danemu stringowi i anulujesz event. ;)

 

­

Ale to był jego przykład z kompasem tylko. Zauważ, ze ona pewnie chce zrobić system stałych itemków ze sklepem, więc jednak gdzieś te zakupione itemki trzeba zapisać.

 

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

Opublikowano

Jeszcze jedno pytanie, jak dodać swoją komendę, bo zrobiłem takie coś dla testu i działa, ale jak swoją komendę dać ?

SS: http://screenshooter.net/101977725/pmfptdf

 

 

Hmm co tu mam źle:

package menuHenas;

import java.util.Arrays;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

public final class Main extends JavaPlugin {
	 
    public void Inventory(Main instance){}
   
    public ItemStack su = new ItemStack(Material.DIAMOND_SWORD, 1);{
            ItemMeta im = su.getItemMeta();
            im.setDisplayName(ChatColor.GREEN + "Survival");
            su.setItemMeta(im);
}

    public ItemStack compass = new ItemStack(Material.COMPASS, 1);{
            ItemMeta im = compass.getItemMeta();
            im.setDisplayName(ChatColor.AQUA + "" + ChatColor.BOLD + "Gamemode world");
            im.setLore(Arrays.asList(ChatColor.GOLD + "" + ChatColor.BOLD + "Choose your world !"));
            compass.setItemMeta(im);
}
    org.bukkit.inventory.Inventory inv = Bukkit.getServer().createInventory(null, 9, ChatColor.DARK_PURPLE + "" + ChatColor.BOLD + "Gamemode chooser");{
            inv.setItem(1, su);
}
            public void onJoin(PlayerJoinEvent e){
                Player p = e.getPlayer();
                PlayerInventory i = p.getInventory();
                i.addItem(compass); 
}
    @EventHandler
    public void onClick(InventoryClickEvent e){
            if(!e.getInventory().getName().equals(ChatColor.DARK_PURPLE + "" + ChatColor.BOLD + "World chooser")){
                    return;
}
            if(e.getCurrentItem().getItemMeta() == null){
                    return;
}
            if(e.getCurrentItem().getItemMeta().getDisplayName() == su.getItemMeta().getDisplayName()){
                    if(e.getWhoClicked() instanceof Player){
                            Player p = (Player) e.getWhoClicked();
                            p.setGameMode(GameMode.SURVIVAL);
                            p.closeInventory();
}
}
}
    @EventHandler
    public void onUse(PlayerInteractEvent e){
            Player p = e.getPlayer();
            if(p.getItemInHand().getType() == Material.COMPASS){
                    if(p.getItemInHand().getItemMeta().getDisplayName().equals(ChatColor.AQUA + "" + ChatColor.BOLD + "World Chooser")){
                            p.openInventory(inv);
}
}
}              
}
Opublikowano


Do plugin.yml

commands:
 {command}
  description: null 

Do extends JavaPlugin:

@Override
public void onEnable() {
  getCommand("{command}").setExecutor(new Commands());
}

W klasie Commands ściągasz methode onCommand i gotowe.
{command} - nazwa komendy.
I film:


­

Opublikowano

 

Do plugin.yml

commands:
 {command}
  description: null 

Do extends JavaPlugin:

@Override
public void onEnable() {
  getCommand("{command}").setExecutor(new Commands());
}

W klasie Commands ściągasz methode onCommand i gotowe.

{command} - nazwa komendy.

I film:


­

 

 

@Lord Tytan, błagam Cię chłopie na litość boską... Nie wysyłaj mu tak gównianych poradników od tego pseudo developera, który popełnia rażące błędy przy najprostszych działaniach w Javie (podkreślam Javie, nie samym Bukkit API). Nawet źle zmienne definiował w którymś odcinku.

 

Są lepsze poradniki, wystarczy poszukać. ;)

­

5465845486.png

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...