本帖最后由 1582952890 于 2017-9-16 20:45 编辑

1. 插件介绍

把图片直接导入地图上显示的插件大家都见得多了,那在地图上直接作画呢?
如果你以前没见过能在地图上画画的插件,那这款插件就能满足你的猎奇欲望!
如果你以前觉得用方块堆像素画很抖M,没事,这个插件更抖M!
想象一下,在Minecraft里面写生,是什么样的感受,难道你不想试一下吗?


http://v.youku.com/v_show/id_XMTUwOTAzOTMwNA==.html
想在纯原版的服务器里玩街机游戏?可能吗?可能!这个插件就帮你实现!
想在Minecraft中开游戏机厅?想拥有个人电脑?这个插件就帮你实现!
不要三四千,不要一两千,更不需要九九八!!

githubhttps://github.com/aegistudio/MapPainting
spigotmchttps://www.spigotmc.org/resources/map-painting.19823/
(本插件全部免费,但为了确保作者不会弃坑,精神上的鼓励还是需要的。。。
可以的话github上求个小星星,spigotmc上给个五星,作者会很开心然后更的更快,更牛逼了!

2. 如何画画?
2.1 创建画布

2.2 删除画布

2.3 画画!

2.4 将画送给别人

2.5 让你的小伙伴和你一起画!

2.6 你需要更多的颜色吗?

2.7 合成颜料桶!

2.8 哎呦!画错了!

2.9 提高像素风

2.10 拷贝画布


3. 如何玩游戏?
3.1 加载游戏

3.2 如何设计一个脚本游戏?开发者专题

3.3 脚本如何与游戏进行交互?开发者专题

3.4 使用回调表开发者专题

3.5 绘制图形开发者专题

3.6 使用卡带开发者专题

4. 指令
所有指令均以/mpp开头,mpp是MaP Painting的简写。
  • /mpp:查看mpp的所有子指令及他们的描述。
  • /mpp create <type> <name>:创建一张画布。手里需要拿着一张用过的地图。当手里不拿着地图时,需要进行确认。
  •     /mpp create normal <name> <1~128>:创建一张覆盖整个地图的方形画布。参数为画布的分辨率。
  •     /mpp create clone <name> <cloned>:完全拷贝一个已经存在的画布。参数为需要拷贝的画布名称。
  •     /mpp create wrap <name> [<initWrapped>]:创建一个包裹画布,画布里面的内容可以通过控制指令更换。参数是一开始被包裹的画布名称。
  •     /mpp create script <name> <script> [<language>]:创建一个脚本画布。参数script是脚本的文件名,language是脚本的语言,默认为ECMAScript。
  • /mpp chown <receiver> [<name>]:将手里的画布或者指定名称的画布的所有权转交给别人。其中receiver是要转交的人,name是画布的名字(可选)。
  • /mpp chmod <+/-painter>... [<name>]:修改手里或者指定名称的画布的画家队伍。可以一次指定多个画家。painter是画家的用户名,name是画布的名称(可选)。
  • /mpp destroy [<name>]:将手里或者指定名称的画布删除。其中name是画布的名称(可选)。
  • /mpp pigment <color>:获得指定RGB颜色的颜料。其中color是颜色表达式,参看下面。
  • /mpp undo <name>:撤销刚才进行过的操作。可以指定撤销哪个画布的。
  • /mpp redo <name>:重做刚才进行过的操作。可以指定重做哪个画布的。
  • /mpp list:显示玩家拥有的所有画布。
  • /mpp confirm:确认玩家需要执行的危险指令(危险指令以红色标注)。

颜色表达式用于表达颜色,它的格式有两种:
  • 专家表达式:虽然是专家其实是最不专家的。这种表达式需要的是颜色的名称,例如red是红,green是绿,等等。可以在配置文件里面自定义。
  • RGB表达式:RGB表达式使用16进制的rgb值表达颜色。例如#ffffff表示白色(不是红色,别老想着烧死异性恋),#00ffff表示青色。

5. 配置文件
用英文写插件是基本礼仪,不过有中文配置,覆盖掉原来的config.yml然后reload即可。
  1. tool:
  2.   pencil:
  3.     tipMessage: 在[$x, $y]处用($r, $g, $b)颜色点了一笔。
  4.     lineMessage: 用($r, $g, $b)颜色从[$x1, $y1]到[$x2, $y2]画了一条线。
  5.   paintBucket:
  6.     fillMessage: 在[$x, $y]使用($r, $g, $b)颜色进行填充。
  7. palette:
  8.   identifier: §r§t调色物品
  9.   cyan: §r§b§l青色含量:§r
  10.   magenta: §r§d§l洋红色含量:§r
  11.   yellow: §r§e§l黄色含量:§r
  12.   fillBucket: §r颜料桶
  13.   drinkPaintBucket: §k====§r好喝吗?§k=====
  14. command:
  15.   subcommand:
  16.     create:
  17.       description: 根据给定参数创建一张新的画布。
  18.       onlyPlayer: §c只有玩家可以使用创建画布的指令。
  19.       mapAlreadyBound: 你手里拿着的地图已经和一个画布链接起来了。你可以进行确认来创建一张新的地图。
  20.       canvasAlreadyExisted: §c画布§b$canvasName§c已经存在!
  21.       typeUnsupported: §c画布类型§a$typeName§c在这个服务器上不支持!
  22.       bound: 你成功创建了画布§b$canvasName§r!
  23.       noCreatePermission: §c你没有创建类型为§a$typeName§c的画布的权限!
  24.       subcommand:
  25.         normal:
  26.           description: 一个覆盖整个地图的方形画布。
  27.           invalidFormat: §c你指定的画布大小格式不对!请输入整数!
  28.           outOfRange: §c你输入的画布太大或太小了!
  29.         clone:
  30.           description: 一份指定画布的独立拷贝。
  31.           clonedUnspecified: §c在拷贝之前你需要指定画布的名称!
  32.           canvasNotExists: §c不能拷贝画布§b$canvasName§c!指定的画布§b$canvasName§c不存在!
  33.       notHoldingMap: 你手里没有拿着一张地图。如果你想凭空创建一张画布的话,请进行确认。
  34.       tooManyMap: §c看起来你分服务器上已经有太多的地图了,不能创建新的画布!
  35.     destroy:
  36.       description: 删除一张画布,使得它再度成为一张地图。
  37.       onlyPlayer: §c只有玩家才能在使用删除画布指令时不指定画布名称!
  38.       canvasNotExists: §c不能删除§b$canvasName§c!你指定的画布§b$canvasName§c不存在!
  39.       noPermission: §c你既不是画布§b$canvasName§c的持有者又不是没有画布管理权限!
  40.       unbound: 你成功删除了画布§b$canvasName§r!
  41.     confirm:
  42.       nothingToConfirm: §c你没有需要确认的指令!只有在执行了危险指令之后才需要进行确认!
  43.       pleaseConfirm: 你正在执行一条危险指令!如果你真要执行的话,请输入§e/mpp confirm§r。
  44.       description: 当你执行危险指令之前进行确认。
  45.     chown:
  46.       description: 将你手中的或你指定的画布的所有权转给别人。
  47.       onlyPlayer: §c只有玩家才能在使用变更所有权指令时不指定画布名称!
  48.       canvasNotExists: §c不能变更§b$canvasName§c的所有权,指定的画布§b$canvasName§c不存在!
  49.       ownershipChanged: 你成功地把画布§b$canvasName§r的所有权转给了§9$newOwner§r!
  50.       ownershipGained: 你刚刚获得了画布§b$canvasName§r的所有权!
  51.       notHolding: §c你要么在手里拿着一张画布,要么指定画布的名称!
  52.       noChownPermission: §c你没有权限变更画布啊§b$canvasName§c的拥有者!
  53.     chmod:
  54.       description: 管理你手中的或你指定的画布的画家。
  55.       onlyPlayer: §c只有玩家才能在使用模式变更指令是不指定画布名称!
  56.       canvasNotExists: §c不可以添加或删除§b$canvasName§c的画家!指定的画布§b$canvasName§c不存在!
  57.       painterModified: 你成功管理了画布§b$canvasName§r的画家!
  58.       painterAdded: 你被添加为画布§b$canvasName§r的画家!
  59.       painterRemoved: 你不再是画布§b$canvasName§r的画家了。
  60.       notHolding: §c你要么在手里拿着一张画布,要么指定画布的名称!
  61.       noChmodPermission: §c你没有权限管理画布§b$canvasName§c的画家!
  62.     pigment:
  63.       description: 给玩家一个特定颜色的颜料。
  64.       onlyPlayer: §c只有在线的玩家才能使用颜料指令!
  65.       noPermission: §c你没有使用颜料指令的权限!
  66.       invalidFormat: §c你输入的颜色格式不正确!请输入一个整数!
  67.     list:
  68.       description: 显示你拥有的所有画布。
  69.       noPossess: §c你没有拥有任何画布!
  70.       entry: §b$name§r
  71.       possess: 你拥有的画布有:$list.
  72.     undo:
  73.       description: 撤销你刚才进行的操作。
  74.       nothingToUndo: §c在画布§b$canvasName§c上你没有可以撤销的操作!
  75.       noUndoPermission: §c你没有在画布§b$canvasName§c上撤销权限!
  76.       undoFinish: 你成功地撤销了在画布§b$canvasName§r上§n$memoto§r的操作!
  77.       noModifiedCanvas: §c在撤销之前,你需要指定画布名称或者在某一画布上进行操作!
  78.       canvasNotExists: §c不能在画布§b$canvasName§c上进行撤销!指定的画布§b$canvasName§c不存在!
  79.     redo:
  80.       description: 重做你刚才撤销了的操作。
  81.       nothingToRedo: §c在画布§b$canvasName§c上你没有可以重做的操作!
  82.       noRedoPermission: §c你没有在画布§b$canvasName§c上重做的权限!
  83.       redoFinish: 你成功地重做了在画布§b$canvasName§r上§n$memoto§r的操作!
  84.       noModifiedCanvas: §c在重做之前,你需要指定画布名称或者在某一画布上进行操作!
  85.       canvasNotExists: §c不能在画布§b$canvasName§c上进行重做!指定的画布§b$canvasName§c不存在!
  86.   listing: 正在列出§e$prefix§r的§l子命令§r:
  87.   nextPage: 请输入§e$prefix $nextPage§r来查看更多§l子命令§r。
  88.   lastPage: 这已经是§e$prefix§r的§l子命令§r列表的最后一页了。
  89.   commandsPerPage: 5
  90. canvas:
  91.   map: {}
复制代码

6. 权限
该插件有两类权限,一类是显式的权限,能在权限配置文件或插件中配置;另一类是隐式的权限,取决于本插件的状态。

  • 显式权限:
  1. mpp.paint:玩家在他拥有的画布上画画的的权限。默认为true。
  2. mpp.interact:玩家与任意一张画布交互的权限。默认为true。
  3. mpp.command:使用/mpp指令的权限。默认为true。
  4. mpp.create.*:使用/mpp create指令创建任何一种画布的指令。
  5. -   mpp.create.normal:创建类型为normal的画布的指令。默认为true。
  6. -   mpp.create.clone:拷贝已有的画布。默认为true。
  7. mpp.chown:变更玩家所拥有的画布所有权的权限。默认为true。
  8. mpp.chmod:管理玩家自己拥有的画布的画家的权限。默认为true。
  9. mpp.destroy:删除玩家自己拥有的画布的权限。默认为true。
  10. mpp.undo:在自己拥有的画布上进行撤销。默认为true。
  11. mpp.redo:在自己拥有的画布上进行重做。默认为true。
  12. mpp.manager:对任意一张画布使用管理指令的权限。默认为op。
  13. mpp.pigment:直接使用指令获得某一种颜色的指令。默认为op。
复制代码
  • 隐式权限(不能在权限配置文件或工具中配置!):
  1. mpp.owner:拥有一张画布的权限,当玩家是画布的拥有者时为真,可以使用画布管理指令。
  2. mpp.painter:在一张画布上使用绘画工具的权限,当玩家在画布的画家列表中时为真。
复制代码

7. 更新日志
1.5.6(去地图化更新)(2016-4-18)
1. 使用挂画物品代替地图物品,再也不需要合成地图和物品展示框了,很开心!
2. API更新,现在画布可以知道自己被放置在什么地方,以及什么时候被从世界中移除。

1.5.3b(颜料桶漏洞修复)
(2016-4-4)


1.5.2b(刷新漏洞修复)(2016-4-4)


1.5b(接口更新)
(2016-4-2)


1.4b(脚本更新)
(2016-3-23)


1.3b
操作性更新
(2016-3-19)
(该版本不兼容以前的任何版本,如果有需要迁移的画可以私信开发者提供迁移服务)

1.2b
颜料更新)(2016-3-14)


1.1b
所有权更新)(2016-3-12)
(该版本不兼容以前的任何版本)

1.0b
(2016-3-11)