欢迎来到Minecraft插件百科!
对百科编辑一脸懵逼?
帮助:快速入门
带您快速熟悉百科编辑!
因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289
查看“PlotSquared/Dev”的源代码
←
PlotSquared/Dev
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于这些用户组的用户使用:
用户
、
自动确认用户
、
巡查者
您可以查看与复制此页面的源代码。
这里是PlotSquared的开发文档界面~ [[https://github.com/IntellectualSites/PlotSquared/wiki/Developer-documentation-(WIP) 原文地址]] ==有用的类== * [[https://github.com/IntellectualSites/PlotSquared/blob/master/Bukkit/src/main/java/com/intellectualcrafters/plot/api/PlotAPI.java 地皮API]] * [[https://github.com/IntellectualSites/PlotSquared/blob/master/Core/src/main/java/com/intellectualcrafters/plot/object/PlotPlayer.java 地皮玩家]] * [[https://github.com/IntellectualSites/PlotSquared/blob/master/Core/src/main/java/com/intellectualcrafters/plot/object/Plot.java 地皮]] * [[https://github.com/IntellectualSites/PlotSquared/blob/master/Core/src/main/java/com/intellectualcrafters/plot/flag/FlagManager.java 标志管理]] * [[https://github.com/IntellectualSites/PlotSquared/blob/master/Core/src/main/java/com/intellectualcrafters/plot/util/MainUtil.java MainUtil]] * [[https://github.com/IntellectualSites/PlotSquared/blob/master/Core/src/main/java/com/intellectualcrafters/plot/util/SchematicHandler.java 模型处理]] * [[https://github.com/IntellectualSites/PlotSquared/blob/master/Core/src/main/java/com/intellectualcrafters/plot/util/ChunkManager.java 区块管理]] * [[https://github.com/IntellectualSites/PlotSquared/blob/master/Core/src/main/java/com/intellectualcrafters/plot/util/UUIDHandler.java UUID处理]] ==教程== ===使用Java语言编码=== ====总览==== * 脚本放到 PlotSquared/scripts 目录下 * 语言请使用Java语言 ====指令==== * /plot debugexec run <script> [args...] * /plot debugexec runasync <script> [args...] * /plot debugexec <code goes here> ====示例脚本==== * [[https://github.com/IntellectualSites/PlotSquared/wiki/Merging-all-plots 合并所有地皮]] * [[https://github.com/IntellectualSites/PlotSquared/wiki/Setting-all-signs 设置所有标志]] * [[https://github.com/IntellectualSites/PlotSquared/wiki/Resetting-plot-biomes 重设置地皮生物群系]] * [[https://github.com/IntellectualSites/PlotSquared/wiki/Allowing-a-player-to-claim-more-plots 允许一个玩家认领更多地皮]] * [[https://github.com/IntellectualSites/PlotSquared/wiki/Printing-the-furthest-plot 打印出最远的地皮]] * [[https://github.com/IntellectualSites/PlotSquared/wiki/Startup-script---commands 安装脚本和命令]] =====其他脚本===== * [[https://www.dropbox.com/s/cfg24xb2t4x9apl/fixborder.js?dl=0 地皮边界]] * [[https://www.dropbox.com/s/xzjfhavselyrf2m/addsigns.js?dl=0 地皮标志]] 写了你自己的脚本?想发到这里?[[https://github.com/IntellectualSites/PlotSquared/issues 欢迎!]] ===一个PlotSquared的附属插件实例=== <pre> import com.intellectualcrafters.plot.api.PlotAPI; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.PluginManager; public class Main extends JavaPlugin { public PlotAPI api; @Override public void onEnable() { PluginManager manager = Bukkit.getServer().getPluginManager(); final Plugin plotsquared = manager.getPlugin("PlotSquared"); // 如果插件没有安装的话就关闭这个插件 // If you move any PlotSquared related tasks to en external class you // wouldn't have to disable the plugin if PlotSquared wasn't installed if(plotsquared != null && !plotsquared.isEnabled()) { PS.log(null, "&c[ExamplePlugin] Could not find PlotSquared! Disabling plugin..."); manager.disablePlugin(this); return; } // Do PlotSquared related stuff api = new PlotAPI(); // 现在你就可以使用这个API了 } } </pre> ===增加一个子命令=== 当玩家输入 /plot help <category> 时会展示你增加的子命令。 CATEGORY 为你添加子命令时选择的类型 ====增加命令==== 下面是一个例子 <pre> @CommandDeclaration( // 你所添加命令的名字 command = "test", // 若要运行你所添加的命令,你需要的权限 permission = "plots.music", // 你所添加的命令的描述 description = "Player music in a plot", // 你所添加的命令的使用方法 usage = "/plot music", // 你所添加的命令的类型 category = CommandCategory.ACTIONS, // 需要的命令执行者 (NONE 允许控制台执行) requiredType = RequiredType.NONE ) public class TestCommand extends SubCommand { public TestCommand() { // 你可以在这儿或者其他地方自定义命令 MainCommand.getInstance().addCommand(this); // Then just call: // new TestCommand(); // 在游戏中使用 : /plot test } // 下面是这个指令是干嘛的 @Override public boolean onCommand(final PlotPlayer player, final String[] args) { Location loc = player.getLocation(); Plot plot = Plot plot1 = MainUtil.getPlot(loc); if (plot1 == null) { sendMessage(player, C.NOT_IN_PLOT); return false; } Plot plot = MainUtil.getCurrentPlot(plr); MainUtil.sendMessage(player, "You are in plot " + plot.getId()); return true; } } </pre> ====动态命令添加==== <pre> Command<PlotPlayer> cmd = new Command<PlotPlayer>(String command, String usage, String description, String permission, String[] aliases, RequiredType requiredType) { @Override public boolean onCommand(PlotPlayer plr, String[] arguments) { Location loc = player.getLocation(); Plot plot = Plot plot1 = MainUtil.getPlot(loc); if (plot1 == null) { sendMessage(player, C.NOT_IN_PLOT); return false; } Plot plot = MainUtil.getCurrentPlot(plr); MainUtil.sendMessage(player, "You are in plot " + plot.getId()); return true; } }; MainCommand.getInstance().addCommand(cmd); </pre> ===增加自定义标志=== <pre> import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import com.intellectualcrafters.plot.AbstractFlag; import com.intellectualcrafters.plot.Flag; import com.intellectualcrafters.plot.Plot; import com.intellectualcrafters.plot.api.PlotAPI; import com.intellectualcrafters.plot.events.PlayerEnterPlotEvent; public class Main extends JavaPlugin implements Listener { PlotAPI plotAPI = null; @Override public void onEnable() { // 获取插件 Plugin plotSquaredPlugin = getServer().getPluginManager().getPlugin("PlotSquared"); //检查PS插件是否被启动 if (plotSquaredPlugin!=null && plotSquaredPlugin.isEnabled()) { // 这儿我们来获取一些带有有趣事情的API plotAPI = new PlotAPI((JavaPlugin) plotSquaredPlugin); } else { // 当PS没有启用时 给控制台发送一条消息然后关闭这个插件吧! // 当然你也可以把PS的代码移到另一个类中,这样你就不要单独写停止PS的部分了。 getServer().getConsoleSender().sendMessage("Plugin 'PlotSquared' not found. Disabling MyPlugin"); Bukkit.getPluginManager().disablePlugin(this); } //增加一个 AbstractFlag (标志的关键) AbstractFlag abFlag = new AbstractFlag("greeting") { // 下面的东西是可选的 并允许你限制哪些玩家可以设置这个标志: @Override public String parseValue(String value) { // Only accept woof, dog, cat, meow for the greeting flag switch (value.toLowerCase()) { case "woof": case "dog": return "dog"; case "cat": case "meow": return "cat"; default: return null; // Return null the value is invalid } // 你也可以使用一些简单的IF语句 例子如下: /* if (value.equals("hello")) { return value; } return null; */ } @Override public String getValueDesc() { return "You are currently only allowed to set the greeting to: woof, dog, cat, meow"; } }; // 现在我们要注册标志了 plotAPI.addFlag(abFlag); // 别忘记注册一个消息然后我们才可以给控制台发消息 getServer().getPluginManager().registerEvents(this, this); } // 这儿是 PlayerEnterPlotEvent, 同时也有其他你可以接入的事件。这些会在网页中列举出来。 @EventHandler public void onPlayerEnterPlot(PlayerEnterPlotEvent event) { Plot plot = event.getPlot(); Player player = event.getPlayer(); // checking if the plot has that flag if (plot.settings.getFlag("greeting")!=null) { // Get the message String message = plot.settings.getFlag("greeting").getValue(); // Only send a message if it's not blank. if (!message.equals("")) { // Send the player the message set for that plot player.sendMessage(ChatColor.translateAlternateColorCodes('&', message)); } } } } </pre> ==开发的东西== [[https://github.com/IntellectualSites/PlotSquared 源代码]] ==特有词汇==
返回至
PlotSquared/Dev
。
导航菜单
个人工具
中文(中国大陆)
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
编辑相关
百科公告
编辑帮助
互助客栈
贡献分数
测试沙盒
发布条目
插件分类
管理
安全
聊天
编程
经济
修正
娱乐
综合
信息
机械
角色
传送
网页
整地
创世
付费
其它
工具
链入页面
相关更改
特殊页面
页面信息
相关网站
MCMOD百科
Minecraft中文百科
Minecraft中文论坛
Minecraft百度贴吧
虚无世界Wiki