- Баллы
- 76
- Имя в Minecraft
- Blc_Dragon
Если люди не могут осилить статью хабра на ~10к символов, то о каких 80 стр может идти речь? Для таких людей это как войну и мир прочитатьВ любой книге о java - коллекции. Там максимум 80 страниц.
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Если люди не могут осилить статью хабра на ~10к символов, то о каких 80 стр может идти речь? Для таких людей это как войну и мир прочитатьВ любой книге о java - коллекции. Там максимум 80 страниц.
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
Player p = (Player) sender;
if(sender instanceof Player)
{
if(cmd.getName().equalsIgnoreCase("lab"))
{
Location loc = p.getLocation();
loc.setZ(-20);
loc.setX(472);
p.setCompassTarget(loc);
}
}
return true;
}
}
В plugin.yml команду добавил?При вводе пишет тип команды нетуJavaScript:@Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { Player p = (Player) sender; if(sender instanceof Player) { if(cmd.getName().equalsIgnoreCase("lab")) { Location loc = p.getLocation(); loc.setZ(-20); loc.setX(472); p.setCompassTarget(loc); } } return true; } }
Делал всё по этому гайду http://rubukkit.org/threads/tutoria...pigot-craftbukkit-bukkit.133861/#post-1438006 ,а в нём об этом даже не писалось . Спасибо что помоглиВ plugin.yml команду добавил?
Вот так ?В plugin.yml команду добавил?
commands:
lab:
Делал всё по этому гайду http://rubukkit.org/threads/tutoria...pigot-craftbukkit-bukkit.133861/#post-1438006 ,а в нём об этом даже не писалось . Спасибо что помогли
Вот так ?
JavaScript:commands: lab:
commands:
lab:
розработки
выглядить
здоровьи
тоесть
Учить интерфейсам надо изучая java и писать плагины уже с каким то базовым набором знаний.в строку public class Main должны дописать extends JavaPlugin.
Я объяснить зачем начинающим "Дивилоперам" не хочешь ?
Это форум Bukkit, и глубоко затрагивать именно классы/методы Java здесь нет смысла, для этого есть другие сайты. А тут больше по созданию плагинов на платформе Bukkit/SpigotПридёт же начинающий "Дивилопер" который не знает основ и будет задавать эти вопросы... И да такие люди всегда будут появляться на рб... Хотя бы сократить бы их количество.
Спасибо)@_MasterCapeXD_, отлично сделал. Только вот помести все скриншоты под спойлеры.
package ya.top.koder.plugin;
import java.util.List;
import org.bukkit.Material;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;
public class GUIBuilder
{
public static ItemStack addIcon(Material material, String displayname, List<String> lore)
{
ItemStack item = new ItemStack(material);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(displayname);
meta.setLore(lore);
item.setItemMeta(meta);
return item;
}
}
package ya.top.koder.plugin;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin
{
public void onEnable()
{
getLogger().info("Norm");
getLogger().warning("Not Norm");
getLogger().severe("Bad");
getServer().getPluginManager().registerEvents(new Join(), this);
getServer().getPluginCommand("maininfo").setExecutor(new myCommand());
getServer().getPluginCommand("geturl").setExecutor(new GURLCmd());
}
package ya.top.koder.plugin;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.*********ventory.Inventory;
public class GURLCmd implements CommandExecutor {
//Создаем список строк для установки описания
//Для иконки Да
private List<String> lore1;
//Для иконки Нет
private List<String> lore2;
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
{
if(sender instanceof Player)
{
Player player = (Player) sender;
if(cmd.getName().equalsIgnoreCase("geturl"))
{
Inventory inv = Bukkit.createInventory(null, 9, "§eПолучить ссылку?");
lore1.add("§eПодтвердить получение ссылки");
lore2.add("§eОтказаться от получения ссылки");
//Устанавливаем предметы в инвентарь (первый слот начинается от нуля)
inv.setItem(2, GUIBuilder.addIcon(Material.EMERALD_BLOCK, "§aДа", lore1));
inv.setItem(6, GUIBuilder.addIcon(Material.REDSTONE_BLOCK, "§cНет", lore2));
//Открываем инвентарь
player.openInventory(inv);
}
}
return true;
}
}
package ya.top.koder.plugin;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin
{
public void onEnable()
{
getLogger().info("Norm");
getLogger().warning("Not Norm");
getLogger().severe("Bad");
getServer().getPluginManager().registerEvents(new Join(), this);
getServer().getPluginManager().registerEvents(new Click(), this);
getServer().getPluginCommand("maininfo").setExecutor(new myCommand());
getServer().getPluginCommand("geturl").setExecutor(new GURLCmd());
}
package ya.top.koder.plugin;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
public class Click implements Listener
{
@EventHandler
public void on(InventoryClickEvent e)
{
//Проверяем инвентарь
if(e.getInventory().getTitle().equals("§eПолучить ссылку?"))
{
//Если он, то отменяем ивент
e.setCancelled(true);
//Если игрок кликнул по иконке Да, то:
if((e.getCurrentItem().getType() == Material.EMERALD_BLOCK) && (e.getCurrentItem().getItemMeta().getDisplayName().equals("§aДа")))
{
//Проверяем, есть ли это игрок
if(e.getWhoClicked() instanceof Player)
{
//Если да, устанавливаем игрока как того, кто кликнул и отправляем сообщение
Player p = (Player) e.getWhoClicked();
p.sendMessage("§6http://rubukkit.org/threads/tutorial-sozdanie-plaginov-spigot-craftbukkit-bukkit.133861/page-3");
}
//Или если игрок кликнул по иконке Нет, то:
} else if((e.getCurrentItem().getType() == Material.REDSTONE_BLOCK) && (e.getCurrentItem().getItemMeta().getDisplayName().equals("§cНет")))
{
//Проверяем, есть ли это игрок
if(e.getWhoClicked() instanceof Player)
{
//Если да, устанавливаем игрока как того, кто кликнул и отправляем сообщение
Player p = (Player) e.getWhoClicked();
p.sendMessage("§cВы отказались от получения ссылки.");
}
}
}
}
}
name: RuBukkit
description: Tutorial
author: MasterCapeXD
version: 1.0
main: ya.top.koder.plugin.Main
commands:
maininfo:
description: Main info of player
geturl:
description: get url of this thread
ЧСВya.top.koder.plugin
есть ли это игрок
Я это заметил, когда написал уже. Знал, что прицепятся)
Да и лучше проверку на игрока в самом начале тогда делать...
Так у тебя даже 2 проверки
=)
неане проще
Насчет этого - не понял, что ты имеешь в виду? Чем тебе не нравится метод addIcon()?Создать инвентарь один раз, и итем стак тоже один раз, и использовать private static видимо уже не в моде.
Почему обязательно шутка? Хороший сайт, доступно объясняют. Ещё и практики кучу.JavaRush чтобы стать профи? Надеюсь это шутка.
Я не пишу, что ничему там нельзя научиться, но профессионалом там не стать. Чтобы стать профессионалом надо не одну книжку прочитать и опыта набираться несколько лет. (КЭП)Почему обязательно шутка? Хороший сайт, доступно объясняют. Ещё и практики кучу.
После самообучения (!) я смотрю на JavaRush, как на отходы жизнедеятельности. Не знаю, кого они могут чему научить...Почему обязательно шутка? Хороший сайт, доступно объясняют. Ещё и практики кучу.