Minecraft(我的世界)中文论坛

标题: Spigot插件开发教程-给你的插件添加一个命令(新编版)

作者: 彪悍的新手    时间: 2015-8-7 12:32
标题: Spigot插件开发教程-给你的插件添加一个命令(新编版)
本帖最后由 彪悍的新手 于 2017-1-16 20:31 编辑


1、给你的插件添加一个命令(新编版)


上一章地址:
http://www.mcbbs.net/thread-482197-1-1.html
注意:在此章之后图片量急剧减少。

1、在plugin.yml里添加代码


2、在主类里写代码


3、填写命令执行器:



4、执行效果:
[groupid=1009]The Command's Power[/groupid]
作者: 云闪    时间: 2015-8-7 13:40
还是不知道和Bukkit有什么区别_(:_」∠)_而且你命令那里import的也是bukkit的类_(:_」∠)_这是传说中的高端水贴吗_(:_」∠)_
作者: 彪悍的新手    时间: 2015-8-7 15:03
splt 发表于 2015-8-7 13:40
还是不知道和Bukkit有什么区别_(:_」∠)_而且你命令那里import的也是bukkit的类_(:_」∠)_这是传说中的高端 ...

本来只是按草稿,结果发出去了······
作者: 123645525    时间: 2015-8-7 16:16
坚持来看教程
作者: HuaiYang    时间: 2015-11-28 15:43
  1. [15:41:56] [Server thread/ERROR]: Could not load 'plugins\Myplugin.jar' in folder 'plugins'
  2. org.bukkit.plugin.InvalidDescriptionException: commands are of wrong type
  3.         at org.bukkit.plugin.PluginDescriptionFile.loadMap(PluginDescriptionFile.java:946) ~[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
  4.         at org.bukkit.plugin.PluginDescriptionFile.<init>(PluginDescriptionFile.java:232) ~[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
  5.         at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:159) ~[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
  6.         at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:133) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
  7.         at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:291) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
  8.         at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:202) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
  9.         at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:560) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
  10.         at java.lang.Thread.run(Thread.java:745) [?:1.8.0_60]
  11. Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map
  12.         at org.bukkit.plugin.PluginDescriptionFile.loadMap(PluginDescriptionFile.java:928) ~[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
  13.         ... 7 more
  14. [15:41:56] [Server thread/INFO]: Set PluginClassLoader as parallel capable
复制代码

@彪悍的新手 求解哪里错了?
作者: 周润发    时间: 2015-12-13 21:23
[21:12:25 ERROR]: Could not load 'plugins\MyPlugin.jar' in folder 'plugins'
org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
        at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPlug
inLoader.java:164) ~[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-
f6fba00-9935adc]
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
.java:133) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9
935adc]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.ja
va:291) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935
adc]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:74
1) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
        at org.bukkit.Bukkit.reload(Bukkit.java:534) [PaperSpigot-1.8.8-R0.1-SNA
PSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:
25) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]

        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:14
1) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServe
r.java:640) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-
9935adc]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(Craf
tServer.java:626) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6
fba00-9935adc]
        at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:
415) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc
]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:3
79) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]

        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:7
10) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]

        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java
:613) [PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935ad
c]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_65]
Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInp
utException: Input length = 1
        at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:200)
~[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
        at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:60) ~
[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
        at org.yaml.snakeyaml.Yaml.load(Yaml.java:381) ~[PaperSpigot-1.8.8-R0.1-
SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
        at org.bukkit.plugin.PluginDescriptionFile.<init>(PluginDescriptionFile.
java:232) ~[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9
935adc]
        at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPlug
inLoader.java:159) ~[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-
f6fba00-9935adc]
        ... 13 more
Caused by: java.nio.charset.MalformedInputException: Input length = 1
        at java.nio.charset.CoderResult.throwException(Unknown Source) ~[?:1.8.0
_65]
        at sun.nio.cs.StreamDecoder.implRead(Unknown Source) ~[?:1.8.0_65]
        at sun.nio.cs.StreamDecoder.read(Unknown Source) ~[?:1.8.0_65]
        at java.io.InputStreamReader.read(Unknown Source) ~[?:1.8.0_65]
        at org.yaml.snakeyaml.reader.UnicodeReader.read(UnicodeReader.java:123)
~[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
        at java.io.Reader.read(Unknown Source) ~[?:1.8.0_65]
        at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:184)
~[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
        at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:60) ~
[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
        at org.yaml.snakeyaml.Yaml.load(Yaml.java:381) ~[PaperSpigot-1.8.8-R0.1-
SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9935adc]
        at org.bukkit.plugin.PluginDescriptionFile.<init>(PluginDescriptionFile.
java:232) ~[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-f6fba00-9
935adc]
        at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPlug
inLoader.java:159) ~[PaperSpigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-PaperSpigot-
f6fba00-9935adc]
        ... 13 more
作者: 可可可可可乐    时间: 2015-12-16 00:33
╭(°A°`)╮不一起讲权限么
作者: kjkj2173135    时间: 2016-2-22 10:27
请问@Override有什么用?
我学java没有听说过
作者: q513902026    时间: 2016-2-23 08:48
本帖最后由 q513902026 于 2016-2-23 08:50 编辑
HuaiYang 发表于 2015-11-28 15:43
@彪悍的新手 求解哪里错了?

命令类型错误 请贴出plugin.yml看看

@hushubao
无效的plugin.yml 贴出plugin.yml看看
作者: 迷の十六    时间: 2016-4-9 23:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: q513902026    时间: 2016-4-10 00:29
迷の十六 发表于 2016-4-9 23:39
我也和上面的问题一样

请注意一下plugin.yml的编码格式
作者: 迷の十六    时间: 2016-4-10 00:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: q513902026    时间: 2016-4-10 01:38
迷の十六 发表于 2016-4-10 00:37
UTF-8 对吗

http://wiki.bukkit.org/Plugin_YAML

  1. name: MonsterC
  2. main: com.zdds.plugin.MonsterC
  3. version: 1.1
  4. commands:
  5.   MonsterC:
  6.     description: 小提示(插件名)
  7.     usage: 插件名
复制代码

作者: 迷の十六    时间: 2016-4-10 01:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: q513902026    时间: 2016-4-10 02:05
迷の十六 发表于 2016-4-10 01:51
改完这样以后 还是会报错_(:зゝ∠)_

main: com.zdds.plugin.MonsterC.MonsterC
作者: 迷の十六    时间: 2016-4-10 02:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: q513902026    时间: 2016-4-10 10:09
迷の十六 发表于 2016-4-10 02:40
灰常感谢 大触(腿)_(:зゝ∠)_还是会报错哦

java.io.FileNotFoundException: Jar does not contain plugin.yml
你打包后的插件 并不存在plugin.yml
作者: Li_peiang    时间: 2017-2-20 13:38
笨学生冒昧提问:请问核心文件(20MB)能当api在eclipse导入吗 还是说核心文件开服 api编程 互不相干
作者: 叶米柯    时间: 2017-2-20 16:13
  1. package plugin;

  2. public final class MyPlugin extends JavaPlugin{
  3.     private final static CommandExecutor COMMAND = new Reload();

  4.     @Override
  5.     public void onEnable(){
  6.         getCommand("reload").setExecutor(COMMAND);
  7.     }
  8. }
复制代码

  1. package plugin.commands;

  2. public final class Reload implements CommandExecutor {
  3.     @Override
  4.     public void onCommand(CommandSender sender, Command command, String label, String[] args){
  5.         // TODO Implementations here
  6.     }
  7. }
复制代码


岂不美哉?
作者: 小_丰    时间: 2017-8-12 21:57
看Java新人们(我也是A.A)全都有加载不了插件的这些问题 何不另发一个帖子 说一说解决方案呢
作者: 457725806    时间: 2017-8-30 13:39
MCBBS有你更精彩~
作者: 轻光233    时间: 2018-6-13 10:36
kjkj2173135 发表于 2016-2-22 10:27
请问@Override有什么用?
我学java没有听说过

是一个自定义注解,写在方法上面,表示这个方法重写了父类的同名方法
作者: 805781737    时间: 2018-12-10 23:25
  1. package com.zxcsqq;

  2. import org.bukkit.command.Command;
  3. import org.bukkit.command.CommandSender;
  4. import org.bukkit.plugin.java.JavaPlugin;

  5. public class GuessPoints extends JavaPlugin {
  6.         public void onLoad(){
  7.                 getLogger().info("[GuessPoints]:插件已加载");
  8.         }
  9.         public void onEnable(){
  10.                 getLogger().info("[GuessPoints]:插件已启用");
  11.         }
  12.         public void onDisable(){
  13.                 getLogger().info("[GuessPoints]:插件已关闭");
  14.         }
  15.         @Override
  16.     public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
  17.         if(cmd.getName().equalsIgnoreCase("test")){ //如果输入"test"则返回true
  18.                 sender.sendMessage("你好!");
  19.                 return true;
  20.         }
  21.         // 如果不是test,则返回false,如果你没有添加这个命令,系统就会显示:“没有这个命令”
  22.         return false;
  23.     }
  24. }
复制代码









没有用
输入test没有反映 未知命令
作者: MC2号    时间: 2019-6-16 18:07
805781737 发表于 2018-12-10 23:25
没有用
输入test没有反映 未知命令

我也是说未知的命令
作者: 丶桐谷和人    时间: 2019-6-21 17:14
kjkj2173135 发表于 2016-2-22 10:27
请问@Override有什么用?
我学java没有听说过

Override是重写,还有个Over什么的是重载。
作者: 幻刺呀    时间: 2019-6-22 16:29
教程不错 膜拜大佬
作者: 5352    时间: 2019-8-10 19:08
为什么服务器没加载我的插件?
作者: 5352    时间: 2019-8-10 20:41
楼主说句话啊,看来这帖被弃坑了
作者: 2408760644    时间: 2019-10-3 12:43
这是怎么回事呢

TIM图片20181003142955.png (32.26 KB, 下载次数: 1)

TIM图片20181003142955.png

TIM截图20191003124129.png (74.03 KB, 下载次数: 0)

TIM截图20191003124129.png

作者: Dogend    时间: 2019-10-7 21:32
805781737 发表于 2018-12-10 23:25
没有用
输入test没有反映 未知命令

你要把 test 放到plugin.yml里
作者: anan876    时间: 2019-10-9 18:23
老哥,会不会脚本啊,会的话帮个忙
作者: 红尘红尘y    时间: 2020-2-16 12:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: 逗比M    时间: 2020-5-22 09:42
通俗易懂的教程