Minecraft(我的世界)中文论坛

标题: ---===从零基础开始,到精通插件===---#7

作者: berry64    时间: 2015-3-19 18:47
标题: ---===从零基础开始,到精通插件===---#7
回到目录


--------------------------------------------------------------------------------------------------------------------


第七章: 一个简单的插件实例




好了,有人问为什么要发这么简单的呢?

首先应为要遵守诺言

其次应为好久没更新了

开始教程:

创建一个插件, 教程这里

最基本的东西,所以不用解释,直接放上源代码=w= 有问题之前都讲过的

  1. package com.github.berry64;

  2. import java.io.File;

  3. import org.bukkit.Bukkit;
  4. import org.bukkit.ChatColor;
  5. import org.bukkit.command.Command;
  6. import org.bukkit.command.CommandSender;
  7. import org.bukkit.command.ConsoleCommandSender;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.plugin.java.JavaPlugin;

  10. public class Warnmain extends JavaPlugin{
  11.         @Override
  12.         public void onEnable(){
  13.                 getLogger().info("警告插件已启动!");
  14.                 CreateConfig();
  15.         }
  16.         public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
  17.                 if(cmd.getName().equalsIgnoreCase("warn")){
  18.                         if(sender.hasPermission("warn.warn")){
  19.                                 if (args.length != 2){
  20.                                         sender.sendMessage(ChatColor.RED+ "请使用/warn [玩家] [原因]");
  21.                                 }
  22.                                 else{
  23.                                         Player target = (Bukkit.getServer().getPlayer(args[0]));
  24.                                         if(target == null){
  25.                                                 sender.sendMessage(ChatColor.AQUA+ args[0]+"不存在");
  26.                                         }
  27.                                         else{
  28.                                                 sendmessage(args[0], args[1]);
  29.                                                 sender.sendMessage(ChatColor.YELLOW+"已向玩家"+ args[0] +"发送警告, 原因:"+ ChatColor.GREEN+ args[1]);
  30.                                         }
  31.                                 }
  32.                         }
  33.                 }
  34.                 return true;
  35.         }
  36.         public void CreateConfig(){
  37.                 if (!new File(getDataFolder() + File.separator + "config.yml").exists()) {
  38.                         saveDefaultConfig();
  39.                         say(ChatColor.YELLOW + "无法找到config.yml,正在创建");
  40.                 } try {
  41.                         reloadConfig();
  42.                         say(ChatColor.YELLOW + "成功加载config");
  43.                 } catch (Exception e) {
  44.                         e.printStackTrace();
  45.               getServer().getPluginManager().disablePlugin(this);
  46.               say(ChatColor.RED + "无法读取config");
  47.                 }
  48.         }
  49.         public void say(String s){
  50.                 ConsoleCommandSender sender = Bukkit.getConsoleSender();
  51.                 sender.sendMessage(s);
  52.         }
  53.         public void sendmessage(String p, String m){
  54.                 Player asdf = (Bukkit.getServer().getPlayer(p));
  55.                 asdf.sendMessage(ChatColor.DARK_GRAY+"=========================");
  56.                 asdf.sendMessage((getConfig().getString("Warn_message").replaceAll("<reason>", m).replaceAll("&", "§")));
  57.                 asdf.sendMessage(ChatColor.DARK_GRAY+"=========================");
  58.         }
  59. }
复制代码

对,这就是5分钟做出来的教程, 有不会的翻以前教程

读完吱一声,告诉我一下看了什么和评论,如果条件允许的话给点人气我就知足了,给人气自己也不丢什么,不想给人气清至少回复个帖子让我知道发生了什么。

--------------------------------------------------------------------------------------------------------------------
回到目录





[groupid=844]SmoothCraft Work[/groupid]
作者: Lucky777777    时间: 2015-3-25 06:59
  看起来不错,插件的一般结构都具备
作者: 色蛋小黑    时间: 2015-3-27 15:42
支持大触!
作者: 九尾·    时间: 2015-3-28 02:45
哇!支持一下
作者: enjoy-shock    时间: 2015-3-28 03:56
第七章了……慢慢看。。
作者: 1527802264    时间: 2015-3-31 00:07
有点看不懂{:10_527:}在你的帖子有木有经常看到我的身影
作者: iSteven    时间: 2015-3-31 20:00
屠版的姿势
作者: 桃渊林    时间: 2015-4-17 19:22
没事拿asdf做Player干嘛...
作者: 作死的温柔    时间: 2015-5-9 15:36
支持一个  好人一生平安
作者: berry64    时间: 2015-5-25 19:06
1527802264 发表于 2015-3-31 00:07
有点看不懂在你的帖子有木有经常看到我的身影

有啊~感谢对我的支持
作者: @lcz    时间: 2015-5-26 16:25
支持一下
作者: 123645525    时间: 2015-8-6 16:19
为什么我按照你的写的  服务器却不加载
作者: sa1402189438    时间: 2015-8-8 22:40
其实如果有时间的话建议大触还是讲讲这个流程是怎么控制的,但其实我并不会,所以更希望各位大触的教程内出现更多有关控制流程的讲解
作者: 堕星辰    时间: 2015-8-9 01:59
支持一下qwq
作者: WANG丶    时间: 2015-8-20 10:56
支持,排版有待改进[我的眼睛]
作者: q1499562875    时间: 2015-8-29 19:10
berry64 发表于 2015-5-25 19:06
有啊~感谢对我的支持

我想加你学习,可以么?
作者: berry64    时间: 2015-8-29 20:41
q1499562875 发表于 2015-8-29 19:10
我想加你学习,可以么?

随便啦~
作者: 1902399802    时间: 2015-9-4 07:24
赞一个{:10_512:}
作者: brave_heart    时间: 2015-9-4 15:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: berry64    时间: 2015-9-5 08:59
brave_heart 发表于 2015-9-4 15:58
这号游泳~创建插件就是看这个贴会弄掉

=w= 尽然有帮助,满足了
作者: Bryan33    时间: 2015-9-5 09:00
reloadConfig()方法呢~
这么偷懒真的好~
作者: 871607295    时间: 2015-9-25 22:55
只看懂了创建命令哪一步,其他都没看懂,可以再详细点吗?
作者: Bryan33    时间: 2015-10-12 21:00
LZ听说过ChatColor.translateAlternateColorCodes('&',String)吗

作者: berry64    时间: 2015-10-12 21:26
a390807154 发表于 2015-10-12 21:00
LZ听说过ChatColor.translateAlternateColorCodes('&',String)吗

一样的效果
作者: 1912661366    时间: 2015-12-18 19:50
你这一章我真的没有看懂
希望大触有时间能把图P一下,把每个句子的意思都解释一下,前面几章都看懂的,但是你现在直接给个源文件,有很多新的东西看不懂
麻烦大神了
作者: 小宝23    时间: 2015-12-18 21:50
有点看不懂..
作者: blackkainuo    时间: 2015-12-18 21:59
新手小白默默的看着
作者: berry64    时间: 2015-12-19 10:56
1912661366 发表于 2015-12-18 19:50
你这一章我真的没有看懂
希望大触有时间能把图P一下,把每个句子的意思都解释一下,前面几章都看懂的,但是 ...

这里的所有东西都是以前讲过的,如果看不懂的话说明
1)没有从头看起,点击回到目录去目录看
2)没有认真看
作者: QQ382009    时间: 2016-1-31 16:41
支持本教程{:10_492:}希望越来越好
作者: cten    时间: 2016-5-18 16:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: lwaix    时间: 2016-6-20 20:00
支持支持支持支持
作者: dudududu2004    时间: 2016-11-15 13:06
辛苦了,可是我有点看不懂
作者: h731085774    时间: 2016-11-18 21:43
感谢楼主感谢楼主!
作者: cjkkk    时间: 2016-11-18 21:46
不错的插件 挺好用
作者: wodeshijieglq    时间: 2016-12-2 12:55
跟你们说一下ChatColor.颜色。这个是添加颜色的代码。相等于§,这个符号用ALT按住。1+6+7然后按顺序按完167松开ALT即可.
作者: 不做你世界    时间: 2016-12-13 17:26
支持@!!!!
作者: qazokmwsxijn168    时间: 2017-3-5 14:14
学了那么久 现在才知道怎么搞插件
作者: 辣条未至    时间: 2017-8-10 18:58
楼主大大最帅
作者: plgkm6    时间: 2017-11-9 14:05
没看懂:
1,为什么没有FileConfiguration config = getConfig();以及config.addDefault("xxx.yyy", "vvv");一大堆set和config.options().copyDefaults(true);、saveConfig();这几句?
2,为什么是saveDefaultConfig()?
3,请问你是怎么调用这个config文件的?没有找到呀
作者: baizhi_D    时间: 2018-4-26 21:28
hcrgm1 发表于 2015-4-17 19:22
没事拿asdf做Player干嘛...

作者随意的吧
作者: 冷樱    时间: 2018-4-27 10:12
完全看不懂23333 (尴尬
作者: z2398946243    时间: 2018-7-1 11:22
为什么写入CreateConfig();会提示undefined然后让我换成getConfig()或者saveConfig()
作者: lee8871    时间: 2019-5-1 04:49
非常感谢!
但是据我所知,bukkit是所谓的水桶服,而主流的jar包加载器用的是forge.
这样做的插件能在MC中跑吗?
大概是因为我没有看前情提要吧~
作者: f1a2f1a    时间: 2019-6-29 10:15
我感觉看源码比较清晰多了
作者: 齐天大西瓜    时间: 2019-6-29 19:29
mcbbs有你更精彩~
作者: AlbusDumbledor    时间: 2019-7-4 14:37
MCBBS有你更精彩~
作者: 131326865    时间: 2019-7-24 13:44
开始看不懂了qwq
作者: a13350070881    时间: 2020-4-13 18:41
l老哥解释一下求你了
作者: Riga    时间: 2020-9-28 12:57
        MCBBS有你更精彩~
作者: 有鱼丸也有粗面    时间: 2020-9-28 13:42
支持大佬
作者: 2580crq    时间: 2020-12-20 09:54
123645525 发表于 2015-8-6 16:19
为什么我按照你的写的  服务器却不加载

编译时没选plugin.yml?第一次他默认不会选的,我用的IDEA。。
作者: 星世界_Star    时间: 2020-12-20 12:17
但是还是不懂
作者: 一择    时间: 2020-12-29 21:13
第一次看到,谢谢大佬,马上读完
作者: ___空__白___    时间: 2021-1-4 23:07
桃渊林 发表于 2015-4-17 19:22
没事拿asdf做Player干嘛...

6666666666666
作者: ___空__白___    时间: 2021-1-4 23:08
sa1402189438 发表于 2015-8-8 22:40
其实如果有时间的话建议大触还是讲讲这个流程是怎么控制的,但其实我并不会,所以更希望各位大触的教程内出 ...

Java基础会了你就自然能看懂
作者: PbdSPds    时间: 2021-1-8 08:27
成功了,支持
作者: sa1402189438    时间: 2021-2-4 19:42
___空__白___ 发表于 2021-1-4 23:08
Java基础会了你就自然能看懂

这是6年前的回复了...我现在都已经参与工作了...