- Баллы
- 108
- Имя в Minecraft
- CraftCoderr
Так тоже не робит.Не надо проверять args на нулл, лучше args.length(пустой равен 0)
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Так тоже не робит.Не надо проверять args на нулл, лучше args.length(пустой равен 0)
Тогда ещё вопрос. Где этот метод находится?Так тоже не робит.
public void onEnable()
{
getLogger().info("Rpg shield plugin was enabled!");
Bukkit.getPluginManager().registerEvents(this, this);
}
public void onDisable()
{
getLogger().info("Rpg shield plugin was disabled!");
}
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
//ВОТ ОН!
}
Но... Ведь только синтаксис выучить... Недостаточно... Хотя, похоже, достаточно.Нигде. Выучил синтаксис и всё.
Не станет
Не надо проверять args на нулл, лучше args.length(пустой равен 0)
Дальше при достаточном знании английского и умеении пользоваться JavaDocs почти всё возможноНо... Ведь только синтаксис выучить... Недостаточно... Хотя, похоже, достаточно.
Попробуй создать отдельно класс реализующий CommandExecutorDen_Abr, может перед onCommand нужно метку поставить или что?
Можешь поставить @Override, но по хорошему при компиляции java сама догадается.Den_Abr, может перед onCommand нужно метку поставить или что?
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Player p = null;
if (sender instanceof Player) {
p = (Player) sender;
}
if (p == null) {
return true;
}
String cmdname = command.getName();
if ("custom".equals(cmdname.toLowerCase())){
if (customCommand(p, args)) {
return true;
}
}
return true;
}
Сколько кода видел, заметил особенность - если расположить метод onCommand() в главном классе, то экзекутор не нужен в onEnablethis.getCommand("custom").setExecutor(this);
Английский знаю хорошо, с JavaDocs проблемы...Дальше при достаточном знании английского и умеении пользоваться JavaDocs почти всё возможно
Сколько кода видел, заметил особенность - если расположить метод onCommand() в главном классе, то экзекутор не нужен в onEnable
UPD: А всё потому что JavaPlugin реализует CommandExecutor
Вы чего? Это выставление обработчика команды, без него вашему onCommand просто ничего не передастся. И именно потому что "JavaPlugin реализует CommandExecutor" мы можем писать this.Почему это нужно регистрировать как экзекутор? Пфф.
Я всегда боялся экзекуторов и располагаю команды в главном классе) Все нормВы чего? Это выставление обработчика команды, без него вашему onCommand просто ничего не передастся. И именно потому что "JavaPlugin реализует CommandExecutor" мы можем писать this.
Они не могут ошибаться!Давай сделаю, бесплатно.Кароче что-то у меня нихеране получается, кто-то может написать плагин, который просто будет работать при команде itgive и кинуть мне исходники, заранее спасибо.
17:43:25 [SEVERE] Could not load 'plugins\RPGItems.jar' in folder 'plugins'
org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPlug
inLoader.java:257)
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
.java:132)
at org.bukkit.craftbukkit.v1_6_R3.CraftServer.loadPlugins(CraftServer.ja
va:241)
at org.bukkit.craftbukkit.v1_6_R3.CraftServer.reload(CraftServer.java:61
3)
at org.bukkit.Bukkit.reload(Bukkit.java:277)
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:
23)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:19
2)
at org.bukkit.craftbukkit.v1_6_R3.CraftServer.dispatchCommand(CraftServe
r.java:528)
at org.bukkit.craftbukkit.v1_6_R3.CraftServer.dispatchServerCommand(Craf
tServer.java:515)
at net.minecraft.server.v1_6_R3.DedicatedServer.as(DedicatedServer.java:
263)
at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:2
28)
at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:4
88)
at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java
:421)
at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:5
83)
Caused by: while scanning for the next token
found character '\t' that cannot start any token
in "<reader>", line 6, column 10:
itgive:
^
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.ja
va:358)
at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:17
9)
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(P
arserImpl.java:591)
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:161)
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:146)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:133)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java
:237)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java
:237)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:12
3)
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:106)
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseCons
tructor.java:121)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:411)
at org.bukkit.plugin.PluginDescriptionFile.<init>(PluginDescriptionFile.
java:188)
at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPlug
inLoader.java:252)
... 13 more
А потом догадываешься прочитать весь стак и увидеть, что в конфиге у тебя неверно расставлены отступы, а именно, через tab их делать нельзя, ручками жать пробел надо.Мудрил мудрил я, и получилась такая ошибка, ругается на "ничто", после itgive:Код:17:43:25 [SEVERE] Could not load 'plugins\RPGItems.jar' in folder 'plugins' org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPlug inLoader.java:257) at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager .java:132) at org.bukkit.craftbukkit.v1_6_R3.CraftServer.loadPlugins(CraftServer.ja va:241) at org.bukkit.craftbukkit.v1_6_R3.CraftServer.reload(CraftServer.java:61 3) at org.bukkit.Bukkit.reload(Bukkit.java:277) at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java: 23) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:19 2) at org.bukkit.craftbukkit.v1_6_R3.CraftServer.dispatchCommand(CraftServe r.java:528) at org.bukkit.craftbukkit.v1_6_R3.CraftServer.dispatchServerCommand(Craf tServer.java:515) at net.minecraft.server.v1_6_R3.DedicatedServer.as(DedicatedServer.java: 263) at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:2 28) at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:4 88) at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java :421) at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:5 83) Caused by: while scanning for the next token found character '\t' that cannot start any token in "<reader>", line 6, column 10: itgive: ^ at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.ja va:358) at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:17 9) at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(P arserImpl.java:591) at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:161) at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:146) at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:133) at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java :237) at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160) at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java :237) at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160) at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:12 3) at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:106) at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseCons tructor.java:121) at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480) at org.yaml.snakeyaml.Yaml.load(Yaml.java:411) at org.bukkit.plugin.PluginDescriptionFile.<init>(PluginDescriptionFile. java:188) at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPlug inLoader.java:252) ... 13 more
А сколько пробелов нужно, у меня вроде по 2 стоит.А потом догадываешься прочитать весь стак и увидеть, что в конфиге у тебя неверно расставлены отступы, а именно, через tab их делать нельзя, ручками жать пробел надо.
NotePad++ чёрточками выделяет каждые 4 пробелаА сколько пробелов нужно, у меня вроде по 2 стоит.