|
|
(未显示4个用户的38个中间版本) |
第1行: |
第1行: |
| Dynmap 是一个像谷歌地图一样的、为 Minecraft 服务器设计的地图插件,让你可以在浏览器查看地图。 | | {{急需改进|缺少概述表|存在维基语法错误}} |
| | Dynmap 是一个像谷歌地图一样的、为 Minecraft 服务器设计的地图插件,让你可以在浏览器查看服务器地图。 |
|
| |
|
| 你可以使用 Dynmap 的集成的网络服务器立即上手,也可以将其部署到 Apache 等现有的网络服务器,易于使用。 | | 你可以使用 Dynmap 的集成的网络服务器立即上手,也可以将其部署到 Apache 等现有的网络服务器,易于使用。 |
第7行: |
第8行: |
| 原始的项目是由 k-red 开发。 | | 原始的项目是由 k-red 开发。 |
|
| |
|
| =联络方式= | | ==支持的基于Forge的Mod== |
| * [http://forums.bukkit.org/threads/misc-dynmap-v0-12-1-realtime-minecraft-maps-314.489/ Bukkit 论坛]
| | 支持以下的Mod,尽管这些Mod的老版本可能不支持,当前版本的某些方块也可能不支持: |
| * [http://dev.bukkit.org/server-mods/dynmap/ BukkitDev 项目页面]
| |
| * IRC: irc://irc.esper.net/#dynmap ([http://webchat.esper.net/?nick=Webuser&channels=dynmap&prompt=0 在线])
| |
|
| |
|
| =用户相关=
| | * Advanced Machines - IC2 |
| ==不使用内部服务器安装==
| | * Advanced Power Management - IC2 |
| 我们猜测
| | * Advanced Solar Panels - IC2 |
| *你对你正在使用的独立Web服务器有相当的经验 | | * BetterWorlds |
| *你的Web服务器与CraftBukkit运行在同一台机器上 | | * BuildCraft |
| *你的Web服务器支持PHP (仅用于Web到Minecraft的聊天) | | * Charging Bench - IC2 |
| *如果你在使用Linux,你应该知道如何使用终端和chmod。 | | * Compact Solars - IC2 |
| | * ComputerCraft |
| | * Equivalent Exchange 2 |
| | * Ender Storage |
| | * ExtraBees |
| | * Extrabiomes XL (v2.x and v3.x) |
| | * Extrabiomes - Bunyan |
| | * Forestry (updated in 1.4) |
| | * Forgotten Nature |
| | * Greg's Lighting |
| | * IndustrialCraft 2 |
| | * Iron Chest |
| | * LC Trees++ |
| | * Millenaire |
| | * MystCraft |
| | * Metallurgy 2 |
| | * NetherOres |
| | * RailCraft |
| | * Red Power 2 |
| | * SuperSlopes |
| | * TerraFirmaCraft |
| | * ThaumCraft |
| | * Thermal Expansion |
| | * Tubestuff |
| | * Twilight Forest |
| | * XyCraft |
|
| |
|
| 将以下信息:
| | ==支持的服务端== |
| <pre>
| | Dynmap 包括了除了 CraftBukkit 的其他版本。其他的最新的版本可以在[http://www.minecraftforum.net/topic/1543523-dynmap-dynamic-web-based-maps-for-minecraft/ 这里]找到。目前有 3 个Dynmap主要的平台: |
| - class: org.dynmap.InternalClientUpdateComponent
| |
| sendhealth: true
| |
| allowwebchat: true
| |
| webchat-interval: 5
| |
| #- class: org.dynmap.JsonFileClientUpdateComponent
| |
| # writeinterval: 1
| |
| # sendhealth: true
| |
| # allowwebchat: false
| |
| </pre>
| |
|
| |
|
| 更改为
| | *[https://github.com/webbukkit/dynmap/ Bukkit Dynmap] |
| <pre>
| | *[https://github.com/webbukkit/DynmapForge/ DynmapForge] |
| #- class: org.dynmap.InternalClientUpdateComponent
| | *[https://github.com/webbukkit/DynmapSpout/ DynmapSpout] |
| # sendhealth: true
| |
| # allowwebchat: true
| |
| # webchat-interval: 5
| |
| - class: org.dynmap.JsonFileClientUpdateComponent
| |
| writeinterval: 1
| |
| sendhealth: true
| |
| allowwebchat: false
| |
| </pre>
| |
| 关闭内部更新机制并开启json文件更新机制,这将在 writeinterval 的间隔后在你的web路径写入文件 standalone/dynmap_world.json。
| |
|
| |
|
| 将 plugins/dynmap/web 中的文件复制进你的Web服务器中的某个文件夹,将 configuration.txt 的指向 tilespath 和 webpath 更改至你放置Web文件的地方。
| | ;Spigot |
|
| |
|
| | Spigot 通过 Bukkit Dynmap 被完全支持。 |
|
| |
|
| | ;MinecraftForge |
|
| |
|
| Linux
| | 很多版本的 MinecraftForge 都是支持的,可以使用 DynmapForge 项目。所有的 Forge 版本的 Dynmap 都需要特定的 Forge 版本,升级 Forge 版本也需要升级到对应的 DynmapForge 版本。你应该按照如下的方法来安装或者升级: |
| <pre>
| |
| # tile文件放置的路径
| |
| tilespath: /path/to/web/server/dynmap/web/tiles
| |
| | |
| # web文件放置的路径
| |
| webpath: /path/to/web/server/dynmap/web
| |
| </pre>
| |
| 或 Windows
| |
| <pre>
| |
| # tile文件放置的路径
| |
| tilespath: c:\\path\\to\\web\\server\\dynmap\\web\\tiles
| |
| | |
| # web文件放置的路径
| |
| webpath: c:\\path\\to\\web\\server\\dynmap\\web
| |
| </pre>
| |
| 现在重启你的Minecraft服务器。加入你的服务器并(随机)放置一些方块来激活Dynmap给你的地图生成tiles。
| |
|
| |
|
| 你也可以输入 dynmap fullrender worldname 于你的服务器控制台来渲染整个 worldname 世界。
| | *下载对应的 ZIP 文件,对应 MC 版本。 |
| | *解压整个 ZIP 文件,包括子目录,至服务器的根目录。 |
| | *如果是升级,那么删除 'mods' 下老的 'Dynmap-x.y.zip'。 |
|
| |
|
| 现在刷新你的浏览器,应该在 http://mywebserver/dynmap/ 显示你的在线人数,保持更新。
| | ;MCPC+ |
|
| |
|
| ===故障排除===
| | 目前 MCPC+ 的版本(v1.4.7 或之后) 只被 DynmapForge mods 支持对应的 Forge 版本。CraftBukkit 版本不被支持。安装请按照以下步骤。 你可以使用 DynmapCBBridge 来兼容使用的 Bukkit 的插件的数据(可以在[http://www.minecraftforum.net/topic/1543523-dynmap-dynamic-web-based-maps-for-minecraft/ 这里]找到)。这是一个 Bukkit 插件,所以应该放在 'plugins' 目录,并且只支持那些基于 Forge 的 Bukkit 服务器上。 |
| 如果你没有在地图看见任何tiles,检查tiles目录来查看他们是否已经被生成。如果没有任何tiles,那么可能Minecraft没有在web路径写入tiles的权限,或者你没有正确填写 tilespath 。
| |
|
| |
|
| 如果你没有看见任何玩家或者他们没有移动,前往 http://mywebserver/standalone/dynmap_world.json ( world 是世界的名称)。你应该能看见一些代码,并且随着时间流逝刷新能看见代码的改变、 如果没有这个文件或者这个文件没有更新,那么你可能填写了错误的 webpath 。
| | ;BukkitForge |
|
| |
|
| 在 Linux,如果web到Minecraft的聊天没有工作,你应该 chmod 'standalone' 文件夹到 775 或者 777:
| | BukkitForge mod,一个基于 Forge 的 Mod,添加了Bukkit 的 API,是不被 Dynmap 的 Bukkit 版本支持的。可以使用 DynmapForge 版本,并且搭配 DynmapCBBridge 插件。安装过程与上方的 MCPC+ 相同。 |
| <pre>
| |
| $ chmod -R 775 standalone
| |
| </pre>
| |
| 这允许 sendmessage.php 创建json文件。这一步是必须的,因为是你的Web服务器创建文件而不是Minecraft服务器。
| |
|
| |
|
| 如果在IIS web到Minecraft的聊天没有运行,你可能要安装PHP。
| | ;Tekkit Classic |
|
| |
|
| ==在Linux下建立动态地图插件==
| | Tekkit Classic,和更老的 MCPC (没有+ - v1.2.5),被 DynmapBukkit 支持。 |
| 我们猜测
| |
|
| |
|
| *你的Minecraft服务器目录为 /opt/minecraft_server/。
| | ;Tekkit-Lite |
| *你安装了最新的CraftBukkit
| |
| *你的Minecraft服务器托管于 localhost。
| |
| 安装并测试Dynmap:
| |
|
| |
|
| *将文件 dynmap.jar 和文件夹 dynmap 复制到 /opt/minecraft_server/plugins/。
| | Tekkit-Lite 被 DynmapForge 支持,而不是 Bukkit Dynmap。按照上方 Forge 的安装方式安装 Dynmap。 |
| *重启你的Minecraft服务器。
| |
| *加入你的Minecraft服务器。
| |
| *放置一些方块。
| |
| *开启浏览器。
| |
| *前往 http://localhost:8123/。
| |
| 你应该在左上方看到了你的地图和名字。一旦你点击了名称,地图会平移到你的位置,你应该能看见一部分生成的地图。
| |
|
| |
|
| 发布
| | ;Tekkit |
| 如果你想让你的地图能被其他人访问,你需要做这两步:
| | [http://www.technicpack.net/tekkit/ Tekkit] 是一个将大量的 Minecraft Mods 整合在 Bukkit 服务器的服务端。Dynmap 支持 Tekkit,目前的 Dynmap 版本会自动检测 Mod,和他们的方块ID,渲染支持的方块。目前支持 Tekkit v3.1.3 |
|
| |
|
| *将 TCP 端口 8123 转发。
| | ;Spout |
| *将地图托管到大型Web服务器上,大型Web服务器必须能够访问Minecraft服务器,详细见下。
| |
|
| |
|
| 大型Web服务器
| | Spout 服务器被 DynmapSpout 的实验项目支持(Spout 进行的重构使对其进行支持不切实际)。安装至 Spout 与 Bukkit 相同(解压到 plugins 目录)。注意:这个项目是给 Spout 服务器使用而不是 Bukkit 上的 Spout 插件。Spout插件可以使用 Bukkit Dynmap。 |
| 如果你正在托管一个 Apache 或者 Lighttpd 服务器,你可能想要让Dynmap地图可以被网页相同的URL访问,像 http://www.yourwebsite.com/dynmap/ 而不是 http://www.yourwebsite.com:8123/。如果是这样,你可以在下方选择你的Web服务器。
| |
|
| |
|
| *Debian/Ubuntu 上的 apache2: 在Debian下使用Apache建立Dynmap;
| | ;从 Bukkit Dynmap 迁移到 Forge Dynmap |
| *Arch Linux 上的 apache/httpd: 在Arch Linux下使用apache/https建立Dynmap;
| |
| *Arch Linux 上的 lighttpd: 在Arch Linux下使用Lighttpd建立Dynmap;
| |
| *nginx 在Centos下使用Nginx建立Dynmap (由 LukeHandle 提供);
| |
| ===Debian+Apache===
| |
| 我们猜测:
| |
|
| |
|
| *你安装了 Apache2。
| | 将 Bukkit Dynmap 迁移到 Forge Dynmap 可以按照以下方式进行: |
| *你的 www-root 目录在: /srv/http/。
| |
| *你应该可以通过 http://localhost:8123/ 成功访问Dynmap。
| |
| 这个示例展示了如何将你的Dynmap部署在Apache的 http://mywebserver/dynmap/。
| |
|
| |
|
| *先创建文件夹 /srv/http/dynmap/. | | *将 <base>/plugins/dynmap 目录(包括所有数据和子目录)移动到 Forge 服务器上的 <base>/dynmap 目录。 |
| *将 web 目录下的文件复制到 /srv/http/dynmap/ 的zip包。 | | *编辑 configuration.txt: 替换 'render-triggers' 为以下信息: |
| 首先,我们需要开启需要的模组,输入以下命令:
| |
| <pre> | | <pre> |
| sudo a2enmod rewrite proxy_http | | render-triggers: |
| | - blockupdate |
| | #- blockupdate-with-id |
| | #- lightingupdate |
| | - chunkpopulate |
| | - chunkgenerate |
| | #- none |
| </pre> | | </pre> |
| 首先我们必须重定向 /dynmap/up/ 和 /dynmap/standalone/ 到Dynmap的内部Web服务器。
| | *删除 <base>/plugins/dynmap.jar |
| | *按照安装对应 Forge 版本的方法安装。 |
|
| |
|
| 请保证你在 /etc/apache2/sites-available/default 后有这一段内容:
| | ==安装== |
| <pre>
| | 见:[[Dynmap/安装]] |
| ...
| |
| Alias /dynmap/tiles /opt/minecraft_server/plugins/dynmap/web/tiles/
| |
|
| |
|
| RewriteEngine on
| | ==配置== |
| RewriteRule /dynmap/up/(.*) http://localhost:8123/up/$1 [P,L]
| | 见:[[Dynmap/配置]] |
| RewriteRule /dynmap/standalone/(.*) http://localhost:8123/standalone/$1 [P,L]
| |
| </VirtualHost>
| |
|
| |
|
| <Directory /opt/minecraft_server/plugins/dynmap/web/tiles/>
| | ==命令== |
| Order allow,deny
| | 见:[[Dynmap/命令]] |
| Allow from all
| |
| </Directory>
| |
|
| |
|
| <Proxy http://localhost:8123/*>
| | ==权限== |
| Order deny,allow
| | 见:[[Dynmap/权限]] |
| Allow from all
| |
| </Proxy>
| |
| </pre>
| |
| 重启Apache2 (sudo /etc/init.d/apache2 restart).
| |
|
| |
|
| 现在应该在 http://mywebserver/dynmap/ 显示在线玩家了。
| | ==网页参数== |
| | 用于启动Web界面的URL可以有多个参数,可以用于改变发送给玩家的默认界面效果。这可以用来在加载WebUI时加载指定的世界或者地图,或者一个指定的缩放大小,或者将地图的中心设置为某个指定的世界坐标。 |
|
| |
|
| ===Arch Linux+apache/httpd===
| | 参数由一串属性-值组成,每个的参数格式就像这样:<code>attribute-id=value</code> |
| 我们猜测:
| |
| | |
| *你安装了 apache-httpd。
| |
| *你的 www-root 目录在: /srv/http/。
| |
| *你应该可以通过 http://localhost:8123/ 成功访问Dynmap。
| |
| | |
| 这个示例展示了如何将你的Dynmap部署在apache-httpd的 http://mywebserver/dynmap/。
| |
| | |
| *先创建文件夹 /srv/http/dynmap/.
| |
| *将 web 目录下的文件复制到 /srv/http/dynmap/ 的zip包。
| |
| 在 /etc/httpd/conf/httpd.conf,保证你在有以下几段,注意,这些语句不必相邻。
| |
| <pre> | |
| LoadModule proxy_module modules/mod_proxy.so
| |
| LoadModule proxy_http_module modules/mod_proxy_http.so
| |
| LoadModule rewrite_module modules/mod_rewrite.so
| |
| </pre> | |
| 接下来,我们必须将 /dynmap/up/ 和 /dynmap/standalone 重定向到Dynmap的内部Web服务器。编辑以下内容到 /etc/httpd/conf/httpd.conf 的末尾:
| |
| <pre>
| |
| ...
| |
| Alias /dynmap/tiles /opt/minecraft_server/plugins/dynmap/web/tiles/
| |
|
| |
|
| RewriteEngine on
| | 基础的URL必须含有一个问号 (?) 在第一个参数之前,每个参数之间必须以这个符号间隔,所以,如果这是默认的dynmap网址:<code><nowiki>http://mygreatserver:8123/</nowiki></code> |
| RewriteRule /dynmap/up/(.*) http://localhost:8123/up/$1 [P,L]
| |
| RewriteRule /dynmap/standalone/(.*) http://localhost:8123/standalone/$1 [P,L]
| |
|
| |
|
| <Directory /opt/minecraft_server/plugins/dynmap/web/tiles/>
| | 那么,直接打开“fred”世界并且显示“surface”地图的网页,就可以像这样:<code><nowiki>http://mygreatserver:8123/?worldname=fred&mapname=surface</nowiki></code> |
| Order allow,deny
| |
| Allow from all
| |
| </Directory>
| |
|
| |
|
| <Proxy http://localhost:8123/*>
| | 如果你想要使用一个外置的服务器,格式也是一样的 - 添加问号,使用 & 分隔参数:<code><nowiki>http://mycoolapacheserver.com/dynmap?worldname=fred&mapname=surface</nowiki></code> |
| Order deny,allow
| |
| Allow from all
| |
| </Proxy>
| |
| </pre> | |
| 注意这会对所有的VirtualHost生效,如果你有多个虚拟主机,那么推荐你将这些代码放入。
| |
|
| |
|
| 重启Apache/httpd (sudo /etc/rc.d/httpd restart)
| | 可用的参数如下: |
|
| |
|
| 现在应该在 http://mywebserver/dynmap/ 显示在线玩家了。
| | * worldname - 这个指定了世界的名称(不是标题)。如果没有定义,那么会显示第一个默认的世界(除非在 _configuration.txt里设置了显示哪个世界)。 |
| ===Arch Linux+Lighttpd===
| | * mapname - 这个指定了显示的地图的名称(不是标题),如果没有指定,那么将会显示选中的世界的第一个地图!(除非在_configuration.txt中设置了显示哪张地图)。 |
| 我们猜测:
| | * zoom - 指定的缩放大小(0为最高的缩放),如果没有提供,。那么将会使用默认的缩放大小(除非在_configuration.txt中指定了默认的缩放大小)。 |
| | * x - 这个指定了X坐标(展示的世界的坐标),如果没有指定,那么将会显示center定义的x坐标(一般为0)。 |
| | * y - 这个指定了Y坐标(展示的世界的坐标),如果没有指定,那么将会显示center定义的y坐标(一般为0)。 |
| | * z - 这个指定了Z坐标(展示的世界的坐标),如果没有指定,那么将会显示center定义的z坐标(一般为0)。 |
| | * nopanel - 如果设置为true,那么地图显示的侧边栏将会移除。 |
| | * chatname - 如果设置为一个字符串,WebUI将会将其转变为发送者发送的聊天消息使用的名称。这将只有在 'trustclientname' 设置为 true时才会生效,作为 'allowurlname' 的附加。在0.28及以后的版本中支持。 |
| | * playername - 如果定义了并将其设置为玩家的账户的名称,并且玩家在线或者开启WebUI后一会儿玩家加入了服务器,WebUI将会将地图初始化在给定玩家的位置。 |
| | * hidechat - 如果设置为 'true',那么WebUI将会关闭所有的聊天输入和输出模块(气泡,输入框,聊天栏)。 |
| | * nogui - 如果设置为 'true',那么WebUI将会关闭所有的控制面板,就像只显示地图层一样。 |
| | * nocompass - 如果设置为 'true',那么UI上的指南针将会隐藏。(v2.2-alpha-1) |
|
| |
|
| *你安装了 lighttpd。
| | ==地图标记== |
| *你的 www-root 目录在: /srv/http/。
| | 见:[[Dynmap/地图标记]] |
| *你应该可以通过 http://localhost:8123/ 成功访问Dynmap。
| |
| 开始
| |
|
| |
|
| *先创建文件夹 /srv/http/dynmap/.
| | ==自定义方块== |
| *将 web 目录下的文件复制到 /srv/http/dynmap/ 的zip包。
| | 见:[[Dynmap/自定义方块]] |
| 这个示例展示了如何将你的Dynmap部署在lighthttpd的 http://mywebserver/dynmap/。
| |
|
| |
|
| 在 /etc/lighttpd/lighttpd.conf,保证以下模块开启:
| | ==导出世界为WavefrontOBJ格式== |
| <pre>
| | 在 Dynmap v1.9.3 中,我们支持了将地图生成并导出为 Wavefront OBJ 格式的文件,这个特性由 jmc-2-obj 工具启发而来,允许管理员(或控制台)选择并导出他们的部分世界为模型文件,用于其他支持 Wavefront OBJ 格式的建模软件的导入 - 包括了 Blender(一个免费开源的渲染和动画套件),Cinema 4D,Maya,3D Studio Max 和其他的软件。这些导出的模型可以用于 Dynmap 不支持的高级渲染(保举哦了更高级的光照和反射)。由于 Dynmap 导出的 OBJ 格式文件与 jmc-2-obj 软件产生的非常相似,所以针对 jmc-2-obj 的模型的导入和处理与 Dynmap 的 OBJ 导出非常相似。 |
| server.modules = ( "mod_access",
| |
| "mod_rewrite",
| |
| "mod_proxy",
| |
| "mod_fastcgi"
| |
| )
| |
| </pre>
| |
| 现在我们需要让Web服务器的tiles可用,并且将代理 /dynmap/up/重定向至Dynmap的内部服务器。将以下内容添加至 /etc/lighttpd/lighttpd.conf 的末尾:
| |
| <pre>
| |
| alias.url += ( "/dynmap/tiles/" => "/home/minecraft/minecraft_server/plugins/dynmap/web/tiles/" )
| |
|
| |
|
| url.rewrite-once += (
| | 导出和处理使用新的 /dynmapexp 命令完成,此命令可以设置一些属性来控制导出: |
| "^/dynmap/up/(.*)" => "/up/$1",
| |
| "^/dynmap/standalone/(.*)" => "/standalone/$1"
| |
| )
| |
|
| |
|
| $HTTP["url"] =~ "^/up/" {
| | * x0, y0, z0 : 这些是最小的 X, Y, 和 Z 轴的长方体/矩形棱柱的值 |
| proxy.server = ( "" => (( "host" => "127.0.0.1", "port" => 8123 )) )
| | * x1, y1, z1 : 这些是最大的 X, Y, 和 Z 轴的长方体/矩形棱柱的值 |
| }
| | * world : 用于导出的世界的名称 |
| $HTTP["url"] =~ "^/standalone/" {
| | * byChunk : 如果设置为 true,这将会生成整个区块的所有方块的对象 |
| proxy.server = ( "" => (( "host" => "127.0.0.1", "port" => 8123 )) )
| | * byBlockID : 如果设置为 true,这将会生成所有给定方块ID的对象 |
| }
| | * byBlockIDData : 如果设置为 true,这将会生成所有给定方块ID和方块元数据的对象 |
| </pre>
| | * byTexture : 如果设置为 true,这将会生成所有给定材质的方块的对象 |
| 重启 lighttpd (sudo /etc/rc.d/lighttpd restart)
| | * shader : 指定用于导出的使用的材质的着色器,默认情况下使用 stdtexture,只有基于材质包的着色器才支持 |
|
| |
|
| 现在应该在 http://mywebserver/dynmap/ 显示在线玩家了。
| | /dynmapexp 的子命令包括了: |
| ===Centos+Nginx===
| |
| 在 CentOS 6.X 使用 Nginx 建立 Dynmap
| |
| ====介绍====
| |
| 之前我们介绍了使用Nginx(或者Apache)来建立你的Dynmap而不是内置的Jetty服务器,如果你正在托管你自己的网站(并且已经开放了80端口),那么这将允许你将你的地图建立在 http://map.example.com/ 而不是 http://map.example.com:8123/ (设置DNS记录超出了本文的讨论范围)。
| |
|
| |
|
| 注意:这篇文章猜测你的Web服务器与Minecraft服务器是分离的,这个例子里,我使用 192.168.1.2 建立Minecraft服务器而使用 192.168.1.3 建立Nginx服务器。
| | * /dynmapexp set : 允许设置导出的属性(如上),附加的属性可以在同一个命令使用,如 /dynmapexp set x0 0 y0 0 z0 100。 |
| | * /dynmapexp radius : 只能由一个游戏中的玩家使用:此命令会指定导出的世界为玩家所在的世界,并设置半径为玩家所在位置的半径,Y 轴为 0-255 的所有方块。 |
| | * /dynmapexp info : 显示当前导出的属性 |
| | * /dynmapexp pos0 : 此命令只能由玩家在游戏中使用:设置导出范围的第一个点 |
| | * /dynmapexp pos1 : 此命令只能由玩家在游戏中使用:设置导出范围的第二个点 |
| | * /dynmapexp reset : 重置导出属性为默认值 |
| | * /dynmapexp export : 初始化一个导出,创建一个叫 .zip 的文件(默认在 dynmap 文件夹下的 export 文件夹,可以在 exportpath 中设置)。导出是异步处理的,并且会耗费几分钟完成,用时取决于选区的大小 |
| | * /dynmapexp purge : 删除上一个导出 |
|
| |
|
| 如果你选择在同一个服务器运行,那么请在配置里将192.168.1.2更改为127.0.0.1 - 只是记住这可能不是最好的解决方式(这时候代理可能有用?)。
| | 完成后,ZIP文件中将会包含以下内容: |
|
| |
|
| ====CentOS====
| | * 一个 minecraft.obj 文件,包含导出的模型(可能非常大) |
| 为什么是 CentOS?
| | * 一个 .mtl 文件,包含材质列表(对应每个minecraft材质) |
| | * 一个 目录,包含使用的材质文件 |
|
| |
|
| 来自 Wikipedia:
| | 解压文件并将 minecraft.obj 导入到渲染/建模软件。 |
|
| |
|
| CentOS(Community Enterprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定发布的源代码所编译而成。
| | ==开发者== |
| | Dynmap 项目包含了多个部分,可以支持多个服务器平台,也可以帮助我们清楚地发布API。用来构建 'dynmap'(Bukkit 的 Dynmap 插件)的有以下几部分(按照构建顺序): |
|
| |
|
| 由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。
| | *[https://github.com/webbukkit/DynmapCoreAPI DynmapCoreAPI] - 这是无关平台的 Dynmap API:插件编写者可以使用这个接口来在任何平台使用 Dynmap(通过将插件转换为 org.dynmap.DynmapCoreAPI 示例) |
|
| |
|
| 从安装的时候,我选择了'最小安装'的ISO,接着安装任何我可能需要的模块。
| | *[https://github.com/webbukkit/DynmapCore DynmapCore] - 这个服务器平台的 Dynmap 核心:几乎所有的网页和渲染都在这里(我们尽可能多的往里放)。在这里构建的结果是不可运行的 - 他们被放入 dynmap 的其他部分(比如,DynmapSpout 支持 Spout 平台)。 |
|
| |
|
| 我推荐安装尽可能少的东西,接着添加缺少的东西而不是一次性安装所有的东西。
| | *[https://github.com/webbukkit/dynmap-api dynmap-api] - Dynmap 的 Bukkit 部分的 API - 定义了 org.dynmap.DynmapAPI 接口,包括了 Bukkit 的调用,通过配合 DynmapCoreAPI(DynmapAPI 继承),将插件实例转为 org.dynmap.DynmapAPI 来使用公布的接口。 |
|
| |
|
| CentOS ISO镜像都在这里。
| | *[https://github.com/webbukkit/dynmap dynmap] - 真正的 Dynmap Bukkit 的部分,包括了那些与服务器无关的代码。 |
|
| |
|
| x86_64 最小安装 ISO 在 /6.X/isos/x86\_64/CentOS-6.X-x86_64-minimal.iso,这与你使用的镜像相关(X替换为最近的版本 - 本文写作的时候 - 6.4 - 翻译的时候已经7.4了)。
| | ===如何编译Dynmap=== |
| | 编译 Dynmap 使用 [http://maven.apache.org/ Maven]。使用 Maven 的 mvn install 命令你就可以将项目安装在你的 Maven 仓库,这样就可以用于编译其他需要用此项目作为依赖的项目。基本的方法为,使用 git clone 下载代码,使用 mvn install 编译代码。 |
|
| |
|
| 安装CentOS并在安装的时候设置好网络而不是启动时手动设置 /etc/sysconfig/network-scripts/ifcfg-eth0 来配置你的网络。
| | Dynmap 的核心系统基本不需要依赖项,核心用于实现特殊的框架,比如 Bukkit 和 Spout。在你编译某平台的框架之前,你应该复制并按顺序编译这些项目: |
|
| |
|
| 一个静态的IP地址是非常重要的,或者使用DHCP服务器(经常是路由器)。你可能需要配置SSHd,但这不是必须的。
| | *DynmapCoreAPI - git://github.com/webbukkit/DynmapCoreAPI.git |
| | *DynmapCore - git://github.com/webbukkit/DynmapCore.git |
|
| |
|
| ====安装 Nginx, PHP 和 PHP-FPM====
| | ;Dynmap for Bukkit |
| 按照这里或者网上的指示安装Nginx。这样如果你安装了 x86_64 CentOS 你就可以在root登陆下使用以下命令。
| |
| <pre>
| |
| rpm -ivh http://mirror.yandex.ru/epel/6/x86_64/epel-release-6-7.noarch.rpm
| |
|
| |
|
| rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
| | 复制并按顺序编译这些项目来编译 Bukkit 的 Dynmap: |
| </pre>
| |
| 在 "配置 Nginx" 部分,我个人使用了 /var/www/map.example.com/public_html 和 /var/www/map.example.com/logs,但这决定于你。
| |
|
| |
|
| Note: Also create a folder for the cache eg. /var/www/cache and run chown nginx:nginx /var/www/cache.
| | *dynmap-api - git://github.com/webbukkit/dynmap-api.git |
| | *dynmap - git://github.com/webbukkit/dynmap.git |
|
| |
|
| ====设置"站点"====
| | 或者将以下复制进你的终端: |
| 在 /etc/nginx/sites-available/map.example.com 的文件处,更改为以下信息。
| |
| <pre> | | <pre> |
| proxy_cache_path /var/www/cache levels=1:2 keys_zone=map:8m max_size=1g inactive=24h;
| | git clone git://github.com/webbukkit/DynmapCoreAPI.git && (cd DynmapCoreAPI && mvn install) |
| server {
| | git clone git://github.com/webbukkit/DynmapCore.git && (cd DynmapCore && mvn install) |
| server_name map.example.com;
| | git clone git://github.com/webbukkit/dynmap-api.git && (cd dynmap-api && mvn install) |
| access_log /var/www/map.example.com/logs/access.log;
| | git clone git://github.com/webbukkit/dynmap.git && (cd dynmap && mvn install) |
| error_log /var/www/map.example.com/logs/error.log;
| |
| root /var/www/map.example.com/public_html;
| |
| | |
| location / {
| |
| proxy_pass http://[IP OF MINECRAFT SERVER]:9999/;
| |
| proxy_set_header Host $host;
| |
| proxy_cache map;
| |
| proxy_cache_key "$host$uri";
| |
| proxy_cache_valid 200 302 60m;
| |
| proxy_cache_valid 404 10m;
| |
| proxy_cache_use_stale error timeout invalid_header updating http_500 http_503 http_504;
| |
| proxy_connect_timeout 10;
| |
| }
| |
| }
| |
| </pre> | | </pre> |
| 将 proxy_pass 更改为你的Dynmap服务器的IP和端口。
| | 包含 Dynmap 的 ZIP 文件位于 dynmap/target/dynmap-*-bin.zip. |
| | |
| ====完成====
| |
| 运行这个命令: service nginx reload 来重载命令
| |
| | |
| 保证 80 端口被防火墙(iptables)开放,并且公共IP有一个DNS的A记录连接到 map.example.com 域名。
| |
|
| |
|
| 打开 http://map.example.com
| | ;Dynmap for 原版Spout |
|
| |
|
| ===Nginx===
| | 复制并按顺序编译这些项目来编译 Spout 原版服务器的 Dynmap: |
| 这里介绍了如何使用Nginx作为外部Web服务器搭建Dynmap 网页服务(非代理服务器)。 我们推测你已经完成了以下步骤:
| |
|
| |
|
| *你所安装的 Dynmap 根目录在 /srv/dynmap | | *[https://github.com/SpoutDev/SpoutAPI SpoutAPI] - git://github.com/SpoutDev/SpoutAPI.git |
| *你正确地安装了 Nginx 服务,并且懂得如何使用它来搭建一台PHP在线聊天系统 | | *[https://github.com/SpoutDev/Vanilla SpoutVanilla] - git://github.com/SpoutDev/Vanilla.git |
| *你所安装的 Dynmap 和内置网页服务器已经正确运行在 8123 端口 | | *[https://github.com/webbukkit/DynmapSpout DynmapSpout] - git://github.com/webbukkit/DynmapSpout.git |
| 以下展示出 Dynmap 运行在Nginx时的默认配置文件。为了更好的进行数据处理,我特意将Nginx中的php-fpm配置命名为 "php5-fpm.sock"。
| | 或者将以下复制进你的终端: |
| <pre> | | <pre> |
| server {
| | git clone git://github.com/webbukkit/DynmapCoreAPI.git && (cd DynmapCoreAPI && mvn install) |
| listen 80;
| | git clone git://github.com/webbukkit/DynmapCore.git && (cd DynmapCore && mvn install) |
| server_name minecraft.example.com;
| | git clone git://github.com/SpoutDev/SpoutAPI.git && (cd SpoutAPI && mvn install) |
| root /srv/dynmap/;
| | git clone git://github.com/SpoutDev/Vanilla.git && (cd Vanilla && mvn install) |
| | | git clone git://github.com/webbukkit/DynmapSpout.git && (cd DynmapSpout && mvn install) |
| index index.html;
| |
| | |
| access_log /var/log/nginx/minecraft.example.com-access_log;
| |
| error_log /var/log/nginx/minecraft.example.com-error_log;
| |
| | |
| location / {
| |
| try_files $uri $uri/ =404;
| |
| }
| |
| | |
| location ~ \.php$ {
| |
| try_files $uri =404;
| |
| fastcgi_index index.php;
| |
| fastcgi_pass php5-fpm-sock;
| |
| fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
| |
| include /etc/nginx/fastcgi_params;
| |
| }
| |
| }
| |
| </pre> | | </pre> |
| 这些配置会运用到 Dynmap 下所有的URL行中。
| | 包含 Dynmap 的 ZIP 文件位于 DynmapSpout/target/DynmapSpout-*-bin.zip. |
|
| |
|
| 如果你想使用 MultiCraft 作为 Dynmap 的后台管理系统也是极好的。
| | ==联系方式== |
| | | * [http://forums.bukkit.org/threads/misc-dynmap-v0-12-1-realtime-minecraft-maps-314.489/ Bukkit 论坛] |
| 以下是使用Nginx搭建 Dynmap 时使用 MultiCraft 管理的配置:
| | * [http://dev.bukkit.org/server-mods/dynmap/ BukkitDev 项目页面] |
| <pre>
| | * IRC: irc://irc.esper.net/#dynmap ([http://webchat.esper.net/?nick=Webuser&channels=dynmap&prompt=0 在线]) |
| server {
| |
| listen 80;
| |
| server_name minecraft.example.com;
| |
| root /srv/dynmap/;
| |
| | |
| index index.html;
| |
| | |
| access_log /var/log/nginx/minecraft.example.com-access_log;
| |
| error_log /var/log/nginx/minecraft.example.com-error_log;
| |
| | |
| location / {
| |
| try_files $uri $uri/ =404;
| |
| }
| |
| | |
| location /admin {
| |
| alias /srv/multicraft/;
| |
| index index.php;
| |
| }
| |
| | |
| location ~ ^/admin/(.*\.php)$ {
| |
| alias /srv/multicraft/$1;
| |
| fastcgi_pass php5-fpm-sock;
| |
| fastcgi_param SCRIPT_FILENAME $request_filename;
| |
| include /etc/nginx/fastcgi_params;
| |
| }
| |
| | |
| location ~ \.php$ {
| |
| try_files $uri =404;
| |
| fastcgi_index index.php;
| |
| fastcgi_pass php5-fpm-sock;
| |
| fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
| |
| include /etc/nginx/fastcgi_params;
| |
| }
| |
| }
| |
| </pre>
| |
| 你需要在确保以上所有步骤正确完成以及配置项无误后,你还需要给 Dynmap 和网页服务器对 standalone/dynmap_webchat.json 文件赋予足够的读写权限用于网页在线聊天系统。
| |
| | |
| 如果你们有关于Nginx+PHP5 FPM等的非 Dynmap类问题,可以前往 [http://www.cryptkcoding.com/2011/08/running-wordpress-with-nginx-php-fpm-apc-and-varnish/ 原作者的博客] 进行详细的提问。
| |
| ==在Windows下建立动态地图插件==
| |
| 我们猜测:
| |
| | |
| *你的Minecraft服务器目录位于D:\minecraft_server\。 | |
| *你安装了最新的 CraftBukkit
| |
| *你的Minecraft服务器托管在 localhost。
| |
| 安装并测试Dynmap:
| |
| | |
| *将 dynmap.jar 和文件夹 dynmap 复制到 D:\minecraft_server\plugins\.
| |
| *(重新)启动你的Minecraft服务器
| |
| *加入你的Minecraft服务器。
| |
| *放置几个方块。
| |
| *开启浏览器。
| |
| *前往 http://localhost:8123/。
| |
| | |
| 你应该看到了你的地图的名字显示在左上角。当你点击名字后,地图将会平移到你的位置,并且你应该看到了已经生成的一部分的世界。
| |
| | |
| 发布
| |
| | |
| 如果你想让地图能被其他的人访问,你需要做以下几步:
| |
| | |
| *将 TCP 端口 8123 转发。
| |
| *将地图托管到大型Web服务器上,大型Web服务器必须能够访问Minecraft服务器,详细见下。
| |
| | |
| 大型Web服务器
| |
| | |
| 如果你正在托管一个 Apache 或者 Lighttpd 服务器,你可能想要让Dynmap地图可以被网页相同的URL访问,像 http://www.yourwebsite.com/dynmap/ 而不是 http://www.yourwebsite.com:8123/。如果是这样,你可以在下方选择你的Web服务器。
| |
| | |
| *IIS: 使用IIS的URL重写和ARR模块建立Dynmap(感谢Kekec852的帮助!); | |
| *IIS: 使用IIS建立Dynmap;
| |
| (这还不是一个列表啊!如果你使用了其他的服务器,并且你知道如何配置它们,请将其添加至Wiki)
| |
| ===IIS+URL重写+ARR模块===
| |
| 这个页面猜测:
| |
| | |
| *你基本了解如何配置和管理IIS服务器。
| |
| *Web服务器的根目录位于 C:\Inetpub\wwwroot\。
| |
| *你的 IIS 和 CraftBukkit 在同一台机器运行。
| |
| *你安装了[http://www.iis.net/downloads/microsoft/url-rewrite URL Rewrite]和[http://www.iis.net/downloads/microsoft/url-rewrite ApplicationRequestRouting]模块。
| |
| | |
| 开始
| |
| | |
| *创建目录 C:\Inetpub\wwwroot\dynmap\。
| |
| *将仓库找到的'web'文件夹下的内容放入 C:\Inetpub\wwwroot\dynmap\。
| |
| | |
| 有两种选择:
| |
| | |
| *创建文件夹 C:\Inetpub\wwwroot\dynmap\tiles\ 并且编辑 configuration.txt 并且保证你的 tilespath 设置设置为 C:\Inetpub\wwwroot\dynmap\tiles\。
| |
| <pre>
| |
| # The path where the tile-files are placed. | |
| tilespath: C:\Inetpub\wwwroot\dynmap\tiles
| |
| </pre>
| |
| 或者
| |
| | |
| *在IIS中创建虚拟文件夹,通过在IIS中右键Dynmap文件夹并点击 Add Virtual Directory 命名为 tiles (别名) 然后 Physical path 指向 dynmap插件文件夹/web/tiles
| |
| | |
| 接着是重写的部分
| |
| | |
| *在IIS中选择Dynmap文件夹。点击URL Rewrite图标,接着 Add rule(s);选择 Reverse proxy。在入站规则(inbound rule)中输入 127.0.0.1:8123 并且点击ok。在询问是否启用反向代理(reverse proxy)时选择 Yes。
| |
| *打开你的Web文件夹 (C:\Inetpub\wwwroot\dynmap\) 开启 web.config 然后将内容更改为:
| |
| <pre>
| |
| <?xml version="1.0" encoding="UTF-8"?>
| |
| <configuration>
| |
| <system.webServer>
| |
| <rewrite>
| |
| <rules>
| |
| <clear />
| |
| <rule name="ReverseProxyInboundRule1" stopProcessing="true">
| |
| <match url="up/(.*)" />
| |
| <action type="Rewrite" url="http://127.0.0.1:8123/up/{R:1}" />
| |
| </rule>
| |
| <rule name="ReverseProxyInboundRule2" stopProcessing="true">
| |
| <match url="standalone/(.*)" />
| |
| <action type="Rewrite" url="http://127.0.0.1:8123/standalone/{R:1}" />
| |
| </rule>
| |
| </rules>
| |
| </rewrite>
| |
| </system.webServer>
| |
| </configuration>
| |
| </pre>
| |
| 有些版本的(7.x)的IIS不会自动给Dynmap需要的 *.json 文件分配正确的MIME类型(导致加载这些文件时出现406或者404错误,比如 Markers API)。
| |
| | |
| 解决这个问题,请按照[http://support.microsoft.com/kb/942050 这里]的指示,来将MIME类型 'application/json' 定义为 'json' 文件拓展。
| |
| | |
| 更多让IIS6和IIS7正确处理 JSON 的细节,请查看
| |
| | |
| http://www.sencha.com/forum/showthread.php?33266-Some-Problem-with-JSON&p=229858&viewfull=1#post229858
| |
| | |
| ===IIS===
| |
| 这个页面猜测:
| |
| | |
| *你的Web服务器的地址为 C:\Inetpub\wwwroot\。
| |
| *你的 IIS 和 CraftBukkit 在同一台机器运行。
| |
| *你的 IIS 开启了 ASP.NET http://support.microsoft.com/kb/315122。
| |
| | |
| 开始:
| |
| | |
| *创建目录 C:\Inetpub\wwwroot\dynmap\。
| |
| *创建目录 C:\Inetpub\wwwroot\dynmap\tiles\。
| |
| *将仓库找到的'web'文件夹下的内容放入 C:\Inetpub\wwwroot\dynmap\。
| |
| | |
| 你现在应该有这个文件 C:\Inetpub\wwwroot\dynmap\up.aspx。
| |
| | |
| *前往 minecraft_server/plugins/dynmap/configuration.txt 并确保你将 tilespath 设置为 C:\Inetpub\wwwroot\dynmap\tiles\:
| |
| <pre>
| |
| # The path where the tile-files are placed.
| |
| tilespath: C:\Inetpub\wwwroot\dynmap\tiles
| |
| </pre>
| |
| *重启你的Minecraft服务器
| |
| *加入你的Minecraft服务器,随机放置一些方块,激活Dynmap生成tiles。
| |
| | |
| 如果一切正常,你应该能在 C:\Inetpub\wwwroot\dynmap\tiles\ 找到一些新的 'PNG' 文件。你也可以前往 http://yourwebserver/dynmap/ 。
| |
| | |
| 这时候应该显示地图,并且也会显示不能更新(玩家位置和地图更新)的错误。
| |
| | |
| 创建或打开 C:\Inetpub\wwwroot\dynmap\standalone\config.js 文件,将内容替换为如下:
| |
| <pre>
| |
| var config = {
| |
| url: {
| |
| configuration: 'up.aspx?path=configuration',
| |
| update: 'up.aspx?path=world/{world}/{timestamp}',
| |
| sendmessage: 'up.aspx?path=sendmessage',
| |
| login: 'up.aspx?path=login',
| |
| register: 'up.aspx?path=register',
| |
| tiles : 'tiles/',
| |
| markers : 'tiles/'
| |
| }
| |
| };
| |
| </pre>
| |
| 现在刷新你的浏览器。现在应该在 http://mywebserver/dynmap/ 显示在线的玩家。
| |
| | |
| 故障排除
| |
| | |
| 前往你的Web服务器,开启一个浏览器。前往 http://localhost/dynmap/up.aspx?path=configuration。这里应该显示一些代表你的 configuration.txt 中配置的文本,如果显示的是一些错误,那么分析这些错误。如果你不确定要怎么做,请在 IRC 联系我们或者前往论坛求助。
| |
| | |
| 有些版本的(7.x)的IIS不会自动给Dynmap需要的 *.json 文件分配正确的MIME类型(导致加载这些文件时出现406或者404错误,比如 Markers API)。解决这个问题,请按照这里的指示,来将MIME类型 'application/json' 定义为 'json' 文件拓展。
| |
| | |
| 更多让IIS6和IIS7正确处理 JSON 的细节,请查看 http://www.sencha.com/forum/showthread.php?33266-Some-Problem-with-JSON&p=229858&viewfull=1#post229858
| |
| | |
| ==通过托管服务建立Dynmap==
| |
| 基本上这都不会工作,因为Dynmap服务器作为Web服务器创建tiles文件通常需要文件读写权限(相对于一些允许使用FTP或者SFTP的文件传输的服务)。下面的一些链接显示了一些非官方的,一些用户已经成功的解决方案:
| |
| | |
| Xenon 托管服务;
| |
| ===Xenon托管服务===
| |
| 很多人都注意到了,在Xenon或者其他全时间的托管服务上运行Dynmap是不会工作的,并且尝试进入页面会给你一个黑屏。这个教程希望能帮助你在几步内解决这个问题,它需要你有自己的托管服务,(以我来说,1and1.com)
| |
| | |
| 开始,下载最新版的Dynmap: http://webbukkit.org/jenkins/public/dynmap/dynmap-recommended-bin.zip - 然后像其他插件一样上传你的插件。
| |
| | |
| 解压文件,打开你的FTP应用(FileZilla就很好)并登入你的web托管服务。你需要放入Xenon不允许的 JS 文件,到你的web托管的某个文件夹。不要忘记将 "config.js" 复制。记住到这个文件夹的URL地址(对我来说就是 www.mavbear.com/map/web/js)。
| |
| | |
| 打开任意的文本编辑器,开启 "web/index.html" 文件,你会看到像这几行一样的:
| |
| | |
| <script type="text/javascript" src="js/jquery.json.js"></script>
| |
| | |
| 这里需要注意 "js/jquery.json.js" - 你将会需要将其重命名为你的实际的文件夹地址,这个例子里,我是 "http://www.mavbear.com/map/web/js/jquery.json.js"。
| |
| | |
| 对每一行以"js"的都这样样做,底部的 "config.js" 也需要这样。
| |
| | |
| 保存 index.html 文件,上传覆盖已经出现在你的Minecraft服务器的文件。
| |
| | |
| 接着打开 map.js,前往 403 行(v0.70.1,可能在新版本改变):
| |
| | |
| loadjs('js/' + type + '.js', function() {
| |
| | |
| 替换为
| |
| | |
| loadjs('(YOUR URL HERE)/js/' + type + '.js', function() {
| |
| | |
| 重新上传 'map.js' 文件到你的web托管服务(不是Minecraft服务器)。
| |
| | |
| 这个部分是必要的,者可以让你看见地图的玩家,还能使用聊天服务,否则你将只能看见地图。
| |
| | |
| 这就是完整的教程了!希望能够帮助你。
| |
| ===配置===
| |
| 这里我们将会介绍配置的结构和如何编辑配置。
| |
| | |
| 文件 plugins/dynmap/configuration.txt 的配置为 YAML 格式,这种格式使用锁紧结构,很重要的一点就是不能含有任何TAB,只能有空格,所以你必须将正确数量的空格放置在配置之前。
| |
| | |
| 仅作为参考,你可以查看这里的默认配置: https://github.com/webbukkit/dynmap/blob/recommended/src/main/resources/configuration.txt.
| |
| | |
| 配置文件包含 4 部分,以部件、全局设定、世界模板、世界的顺序排列。全局设定更改渲染和Dynmap的(内部)Web服务器的表现,这是很显然的。一个示例全局设定:
| |
| <pre>
| |
| # How often a tile gets rendered (in seconds).
| |
| renderinterval: 1
| |
| </pre>
| |
| 注意: 在版本 v0.20,默认的 configuration.txt file 被分离了, templates: 章节被移动到了 templates/ 目录, worlds: 章节被移动到了 worlds.txt 文件。用户不是必须更改他们现有的 configuration.txt - configuration.txt 定义的模板或世界仍然生效,并且会覆盖 templates/ 下的相同名称的模板。推荐已经使用的用户,尽快将 worlds: 章节(如果已经设置),从 configuration.txt 移动到 worlds.txt,放置以后的更新可能出现的冲突和影响。当然,现有的用户最好也把 templates: 章节从 configuration.txt 移动到新的文件 templates/custom-templates.txt。
| |
| | |
| 部件(Component)
| |
| | |
| 部件部分看起来像这样:
| |
| <pre>
| |
| components:
| |
| - class: org.dynmap.ClientConfigurationComponent
| |
| | |
| - class: org.dynmap.InternalClientUpdateComponent
| |
| sendhealth: true
| |
| allowwebchat: true
| |
| webchat-interval: 5
| |
| ...
| |
| </pre>
| |
| 每个不换都可以认为是Dynmap的一个单独的特性,可以被单独开启或者关闭。有些不见基于其他的部件,但是我们不会深入。配置文件中的部件都以 - class: ... 开头,接着是部件的设置。
| |
| | |
| 作为示例,我们会关闭处理聊天气泡的部件。这个部件看起来像这样:
| |
| <pre>
| |
| ...
| |
| - class: org.dynmap.ClientComponent
| |
| type: chatballoon
| |
| focuschatballoons: false
| |
| ...
| |
| </pre>
| |
| 我们可以通过删除这几行来关闭这个部件,但是更安全的方法是将他们变为注释。这个示例中:
| |
| <pre>
| |
| ...
| |
| - class: org.dynmap.ClientComponent
| |
| type: chat
| |
| #- class: org.dynmap.ClientComponent
| |
| # type: chatballoon
| |
| # focuschatballoons: false
| |
| - class: org.dynmap.ClientComponent
| |
| type: chatbox
| |
| showplayerfaces: true
| |
| messagettl: 5
| |
| ...
| |
| </pre>
| |
| 确保 # 之前仍然有正确的空格数。 保存配置后,重载Dynmap,刷新浏览器,聊天气泡不会再出现了。 同样的方法可以用来启用已经禁用的部件。
| |
| | |
| 查看更多的部件和他们的配置可以查看部件配置。
| |
| | |
| 世界与模板
| |
|
| |
|
| 在这个配置你会看到一个 world 章节(从 0.20 开始),可以在 worlds.txt 找到(之前是在 configuration.txt 的底部)。这个章节可以留空 - Dynmap将会找到服务器加载的所有世界,并提供一个默认的地图设定,基于使用 模板,定义于 templates: 章节。从 0.20 开始,模板定义从 configuration.txt 移动到了单独的文件,在 templates/ 目录中。但是之前的方式仍然生效。
| | ==参考== |
| | | * https://github.com/webbukkit/dynmap/wiki |
| 关于世界设置的全面的介绍,查看世界与模板设定。
| | * https://pluginscdtribe.github.io/wiki/dynmap/ |
| | | * http://www.mcbbs.net/thread-728931-1-1.html |
| 模板
| |
| | |
| 默认有 3 种模板:普通,地狱和空岛。模板基于世界的环境自动选择 - normal 为普通的世界,nether 为地狱世界,skylands 为空岛世界。在 0.20 版本中,这些定义可以在 templates/ 目录找到,使用相应的名称“ templates/normal.txt,templates/nether.txt 和 templates/skylands.txt。
| |
| | |
| 在 0.20,模板的名称可以使用 configuration.txt 中的 deftemplatesuffix 设定来变更。如果设置了,那么世界使用的模板的名称将会添加 - 和 deftemplatesuffix 设定的结果:所以设定 deftemplatesuffix 为 hires 将会造成 normal-hires 模板启用于所有的普通世界,nether-hires 启用于所有的地狱世界,skylands-hires 启用于所有的空岛世界。这会允许Dynmap(和其他的用户)使用预置的前缀设定,可以在 deftemplatesuffix 轻松设定。在 0.20版本,提供了 3 中默认的模板。
| |
| | |
| *默认 (normal,nether,skylands)
| |
| *lowres 模板集 (normal-lowres, nether-lowres, skylands-lowres - 提供更低解析度的地图(默认的2倍)。
| |
| *hires 模板集 (normal-hires, nether-hires, skylands-hires - 提供更高解析度的地图 - 大概是默认地图的8倍 - 'lowres' 版本用于平原和洞穴地图。
| |
| | |
| 在所有的情况下,模板的定义可以在 templates/ 目录找到,使用对应的名称,加上 .txt (比如 normal-hires 可以在 templates/normal-hires.txt 找到)。
| |
| | |
| 世界
| |
| | |
| 配置文件中,在模板章节附近还有一个世界设置。在 0.20 版本,推荐的配置文件的位置是 worlds.txt 文件。这里我们可以指定每个世界的单独的设置。我们会使用一些例子让你理解。
| |
| | |
| 基本上每个世界都有一些默认的值。 title 设置为世界的名称, template 设置为世界的环境(如果 deftemplatesuffix 在 configuration.txt 中被定义,那么有一个短横线和 deftemplatesuffix 跟随)。这个世界的模板可以覆盖这些值,但是这些世界设定里的值可以覆盖模板的设定。
| |
| | |
| 如果你有 3 个世界,名称为 world, nether 和 alternative,然后你像让他们以明确的顺序显示,你可以将其放入你的配置里:
| |
| <pre>
| |
| worlds:
| |
| - name: world
| |
| - name: alternative
| |
| - name: nether
| |
| </pre>
| |
| 这样他们就以 world, alternative, nether的顺序出现。
| |
| | |
| 更改某个世界的标题,你可以在配置添加title的配置:
| |
| <pre>
| |
| worlds:
| |
| - name: world
| |
| title: "My Super Awesome World"
| |
| - name: alternative
| |
| - name: nether
| |
| </pre>
| |
| 你可以对所有的世界都这样做。
| |
| | |
| 如果你想要关闭某个世界,比如世界alternative,你可以在配置添加 enable: false:
| |
| <pre>
| |
| worlds:
| |
| - name: world
| |
| title: "My Super Awesome World"
| |
| - name: alternative
| |
| enabled: false
| |
| - name: nether
| |
| </pre>
| |
| 你可以使用这个设置在你的模板里停用所有某一环境的世界。
| |
| | |
| 如果你想要更改某个世界的特定的设置,你可以使用这个设置。这个设置还包含了 maps: 属性,这样你就可以指定世界使用的地图了:
| |
| <pre>
| |
| - name: world
| |
| title: "My Super Awesome World"
| |
| center:
| |
| x: 100
| |
| y: 64
| |
| z: 0
| |
| maps:
| |
| - class: org.dynmap.flat.FlatMap
| |
| name: flat
| |
| title: "Flat"
| |
| prefix: flat
| |
| colorscheme: default
| |
| </pre>
| |
| 这将让这个世界,设置中心为 (100,64,0),并且只在侧边栏显示平坦地图。
| |
| | |
| 最终如果你有多个世界使用相同的设置,你可以添加一个模板到 templates: 部分(或者最好添加一个自定义分模板文件到 templates/ 目录),然后指定这些世界的模板。
| |
| <pre>
| |
| templates:
| |
| mycustomtemplate:
| |
| enabled: true
| |
| maps:
| |
| - class: org.dynmap.flat.FlatMap
| |
| name: flat
| |
| title: "Flat"
| |
| prefix: flat
| |
| colorscheme: ovocean
| |
| ...
| |
| worlds:
| |
| - name: world
| |
| template: mycustomtemplate
| |
| - name: nether
| |
| template: mycustomtemplate
| |
| - name: alternative
| |
| </pre>
| |
| 这里 world 和 nether 都使用 mycustomtemplate 模板,但是 alternative 会使用 normal 模板(因为这个示例中 alternative 有普通的世界环境)。
| |
| | |
| 就像上面你能看见的一样,每个 FlatMap 或者 KzedMap 地图都可以设置一个特定的颜色主题。颜色主题可以在 plugins/dynmap/colorschemes/, 也可以在这里看到。一个关于这些的简介可以在颜色主题找到。
| |
| | |
| 在 0.20 版本,一个新的地图种类出现了 - HDMap。这种地图种类,支持更高解析度的地图渲染,并且支持使用材质包,并且支持所有 FlatMap 和 KzedMap 的特性,但是更加灵活(允许自定义的观察角度,自定义的观察方向和缩放大小,等等)。有关配置 HDMaps 的详细信息,请查看HD Map 配置。
| |
| ===基础插件设定=== | |
| 这些设定是 configuration.txt 文件中的第一级设定,一般来说,会覆盖插件的基础设置,但与特殊的部件、地图和世界无关。有关部件的设定,详见部件设定。
| |
| | |
| 核心设置包含以下内容:
| |
| | |
| *deftemplatesuffix : 这个设定是可选的,字符串值。用于控制世界使用的模板,如果没有指定,那么普通的世界将会使用 normal 模板,地狱世界将会使用 nether 模板,末地世界将会使用 the_end 模板。当指定并且不为空后,使用的模板的名称将会是世界名加上下划线加上定义的内容。(比如 deftemplatesuffix 设置为XXX,普通的世界将会使用 normal_XXX 模板而不是 normal 模板。地狱世界将会使用 nether_XXX 模板,末地世界将会使用 the_end_XXX 模板)。查看高分辨率地图设定获得更多的信息。默认的模板有 vlowres, lowres, hires, 和 "" (留空)。
| |
| | |
| *display-whitelist : 如果为 false(默认),用户是可见的直到他们使用了 /dynmap hide 命令,如果设置为 true,用户默认是不可见的直到他们使用了 /dynmap show 命令。
| |
| | |
| *renderinterval : 这个设置为小数,以秒计算,用于控制多久之后tiles(比如玩家)需要被更新和处理。将这个设置的过低可能给服务器带来由于重复更新tiles的计算而额外的负担。默认为 0.5 秒,大多数的服务器设置为高于 0.2 的值都不会有问题。
| |
| | |
| *renderacceleratethreshold : 这个设置为一个整数,用于设定处理从 renderinterval 到 renderaccelerateinterval 的tile更新队列的大小。这用于防止大量tiles的积累(玩家大量跑图创建新的区块时),不用以很快的速度处理常规的更新。
| |
| | |
| *renderaccelerateinterval : 这个设定为以秒为单位的小数值,用于当tiles更新队列长度超过了 renderacceleratethreshold 的值而使用的类似 renderinterval 的值。
| |
| | |
| *tiles-rendered-at-once : 这个设定控制异步渲染的更新tiles的最大数量。如果没有设置,那么默认的值会是处理器数量的一半。将这个值设置的偏小可以减少在大量加载更新tiles(如新生成的大量区块)时CPU的峰值使用量。
| |
| | |
| *usenormalthreadpriority : 这个设定当设置为 true,会将渲染线程的优先度设置为普通(与最低优先度相比)。这可以帮助Windows下的渲染性能,但是可能会造成与其他进程的CPU使用竞争。大多数的Linux JVM忽略优先度。
| |
| | |
| *zoomoutperiod : 这个设定为以秒为单位的整数,指定了移出的tiles的更新频率。用于防止由于玩家的重复改变(比如挖矿)而造成不必要的tiles的重新生成。默认的值为 60 秒。
| |
| | |
| *enabletilehash : 此选项为 true 或者 false,用于启用tile数据的hash代码,可以用于避免在重新渲染后(比如tile不可见的方块)值没有发生变化的tile的重新编码。这减少了处理的负载、移出的处理和网页客户端的连接处理。
| |
| | |
| *render-triggers : 这个设定为字符串列表,用于启用检测或者更新地图tile的不同的机制。定义的触发器如下:
| |
| | |
| **chunkloaded : 这个触发器当地图的区块加载时更新tiles。这个触发器不再被推荐 - 使用 chunkgenerated ,因为 chunkloaded 可能造成大量的不必要的tiles的计算。在 v0.31 被删除。
| |
| | |
| **playermove : 这个触发器在玩家移动时更新tiles。这个触发器不被推荐,因为会造成大量不必要的重新计算。
| |
| | |
| **playerjoin : 这个触发器会在玩家登陆后的周围的区域更新tiles。
| |
| | |
| **blockplaced : 这个触发器在玩家放置方块后更新tiles。(推荐)
| |
| | |
| **blockbreak : 这个触发器会在玩家破坏方块后更新tiles。(推荐)
| |
| | |
| **leavesdecay : 这个触发器会在玩家砍树后树叶掉落更新tiles。(推荐)
| |
| | |
| **blockburn : 这个触发器会在火破坏一个方块后更新tiles。(推荐)
| |
| | |
| **blockfaded : 这个触发器会在一个方块消失后(比如冰或雪融化)更新tiles。(推荐)
| |
| | |
| **blockspread : 这个触发器会在一个方块传播(岩浆或水的流动)时更新tiles。
| |
| | |
| **chunkgenerated : 这个触发器会在新的地图生成新的区块时更新tiles。(推荐)
| |
| | |
| **pistonmoved : 这个触发器会在活塞伸出或收回时更新tiles。(推荐)
| |
| | |
| **explosion : 这个触发器会在方块被爆炸摧毁后更新tiles。(推荐)
| |
| | |
| **blockfromto : 这个触发器会在方块流入新的方块(水、岩浆)更新tiles。(推荐)
| |
| | |
| **blockphysics : 这个触发器会在方块进行物理移动(掉落的沙砾、水、岩浆、沙子)时更新tiles。(推荐)
| |
| | |
| **structuregrow : 这个触发器会在树枝长成树或者蘑菇长成巨型蘑菇时更新tiles。
| |
| | |
| **blockgrow : 这个触发器会在方块生长(作物和蘑菇)时更新tiles。
| |
| | |
| **blockredstone : 这个触发器会在红石电流更新了一个方块时更新tiles。(在你有高频的红石机械运作时小心使用)
| |
| | |
| *webpage-title : 这个设定为一个字符串,用于指定Dynmap网页的标题。如果没有设定,将会尝试使用 server.properties 中的 'server-name',如果没有设置或者为 'Unknown Server',那么将自动设置为 'Minecraft Dynamic Map'。
| |
| | |
| *tilespath : 这个设定为一个字符串,用于指定地图tiles生成的路径(可以是Dynmap插件目录相对路径或者绝对路径),(并且是内部服务器使用的路径)。 | |
| | |
| *webpath : 这个设定为一个字符串,用于指定内部服务器的根目录。所有内部服务器使用的文件(除了地图tiles)都会基于这个路径。可以是Dynmap插件目录相对路径或者绝对路径。
| |
| | |
| *webserver-bindaddress : 这个设定为一个IP地址,控制内部服务器的网络接口绑定的地址。默认为 0.0.0.0,将会让服务器绑定在所有的接口(应该对绝大部分的配置都是正确的)。设置为 127.0.0.1 会让其只绑定在本地网络(如果一个外部的Web服务器在同一台机器使用时可以这样做)。其他的值必须与网络地址匹配(不是防火墙外的公共地址或者代理)。
| |
| | |
| *webserver-port : 这个设定为一个整数,指定了内部的Web服务器绑定的端口。默认为 8123。注意大多数的操作系统需要使用root权限运行程序才能将端口绑定至 1024 以下的端口。
| |
| | |
| *max-sessions : 这个设定为一个整数,设置Web服务器活跃的最大的异步会话数量(限制会话使用的资源和线程)。默认的值为 30。
| |
| | |
| *http-response-headers : 这个设置为一串属性/值对,提供了在所有的HTTP相应中添加自定义的header值。这个属相下的值为header的值。见下示例:
| |
| <pre>
| |
| http-response-headers:
| |
| Access-Control-Allow-Origin: "http://mydomain.com"
| |
| X-Another-Header: "Another Header Value"
| |
| </pre>
| |
| *disable-webserver : 如果设置为 true ,内部的Web服务器将会关闭(这需要使用外部Web服务器,和JSONFileClientUpdateComponent部件),其他的配置选项需要将其设置为 false 。
| |
| | |
| *allow-symlinks : 如果设置为 true , webpath 或 tilespath 目录下的目录允许含有符号链接(symbolic link)。如果设置为 false ,内部Web服务器将不会使用符号链接(推荐实验一下,因为几乎所有的外部Web服务器都会使用)。
| |
| | |
| *timesliceinterval : 此设置为以秒为单位的小数,指定处理 /dynmap fullrender 时tile处理的最小时间段。默认的值为 0.0 (无延迟)。非 0 的值可以在全部渲染时减少服务器的负载,但是会显著增长处理的时间。
| |
| | |
| *maxchunkspertick : 此设置为一个整数,限制一个服务器tick中地图区块加载的数量。因为加载地图区块是Bukkit服务器主线程的主要负载源,这可以用来限制可能由于地图处理导致的卡顿。
| |
| | |
| *progressloginterval : 此设置为一个整数,是全部渲染请求是记录进度的间隔。默认(并且最小)的值为 100。
| |
| | |
| *parallelrendercnt : 此设置是可选的,为一个整数,用于在全部渲染时使用多于一条线程进行处理。这个设定表明了异步线程的数量,应该限制为服务器处理器的数量(或者少于)。设置此将会增加CPU的使用,可能会使用更多的内存。在设置为等于或者超过系统的处理器数量时应该保持注意。
| |
| | |
| *updaterate : 此设置为以毫秒为单位的整数,指定Web客户端应该多长时间查询服务器的更新(无论是tiles更新 聊天信息或者玩家的位置更新)。设置更高的值会减少Web服务器的流量负载。
| |
| | |
| *fullrenderplayerlimit : 此设置是可选的,设定了当玩家登陆的数量超过多少后停止处理全部渲染/范围渲染的值。默认为 0(停用),设置为 1 会在任何玩家登陆时停止处理全部渲染/范围渲染。
| |
| | |
| *showplayerfacesinmenu : 这个设定为 true或者false,用于控制在网页托盘中是否显示在线玩家。默认显示(true)。
| |
| | |
| *sidebaropened : 此设置为一个字符串,用于控制侧边栏菜单开启(true),固定(pinned)或者默认关闭(false)。默认为 false。
| |
| | |
| *joinmessage : 此设置为一个字符串,用来控制玩家加入服务器时网页显示的消息。%playername% 用来表示玩家的名称。
| |
| | |
| *quitmessage : 此设置为一个字符串,用来控制玩家退出服务器时网页显示的消息。%playername% 用来表示玩家的名称。
| |
| | |
| *spammessage : 此设置为一个字符串,当网页聊天用户试图发送过多的信息时显示。
| |
| | |
| *webprefix : 此设置为一个字符串,用于给接收到的网页聊天添加前缀。'&color;' 可以用来代替Bukkit颜色代码。
| |
| | |
| *websuffix : 此设置为一个字符串,用于给接收到的网页聊天添加后缀。'&color;' 可以用来代替Bukkit颜色代码。
| |
| | |
| *showlayercontrol : 此设置可为 true 或 false,用于控制覆盖层是否显示(设置为 false 会造成覆盖层的不显示,即使定义了记号层)。默认为 true。
| |
| | |
| *check-banned-ips : 此设置可为 true 或 false,用于控制内部Web服务器是否检查 banned-ips.txt 来阻塞已经被禁止的IP连接到网页。
| |
| | |
| *persist-ids-by-ip : 如果为 true,玩家的IP地址和联系的玩家ID是持久的,将会在服务器关闭或重启后被保存()if true, player IP addresses and the associated player IDs are persistent, and will be saved on server shutdown and reloaded on server startup (允许累加玩家的已知IP)。默认为 true。(0.29及之后的版本)
| |
| | |
| *defaultzoom : 此设置为一个整数,指定了网页被第一次加载时默认的缩放的大小。
| |
| | |
| *defaultworld : 此设置为一个字符串,指定了网页被第一次加载时默认显示的世界。
| |
| | |
| *defaultmap : 此设置为一个字符串,指定了网页被第一次加载时默认显示的地图。
| |
| | |
| *followzoom : 此设置为可选的设置,为一个整数,指定了当网页选择了要跟随的玩家时,默认的缩放等级。
| |
| | |
| *followmap : 此设置为可选的设置,为一个字符串,指定了当网页选择了要跟随的玩家时,默认显示的地图。
| |
| | |
| *verbose : 此设置可为 true 或 false,控制Dynmap插件启动时的信息的详细程度。设置为 false 将会明显减少显示的信息和细节。
| |
| | |
| *hideores : 此设置可为 true 或 false,控制是否隐藏所有的矿物方块,让他们变得和普通的石块(防止利用地图寻找裸露的矿物)。默认为 false。
| |
| | |
| *better-grass : 此设置可为 true 或 false,控制是否渲染草地和雪地的侧面,就像 BetterGrass Mod 一样。默认为 false。
| |
| | |
| *smooth-lighting : 此设置可为 true 或 false,提供所有地图都支持的平滑光照的设定。设置为 true 可以在使用的所有地图上开启平滑光照,此选项也是每个着色器的基础设定,可以在单独的地图上开启这个特性。开启此特性将会增加 10% 的渲染成本。
| |
| | |
| *use-generated-textures: 此设置如果设置为 true,那么将导致基于材质包的高解析度地图使用Minecraft客户端相同的纹理来渲染水、岩浆和火焰。如果设置为 false,老的材质 texture.png 和 misc/water.png 将会使用。(0.29之前的结果)设置之后需要进行一次全地图的渲染才能得到正确的结果。
| |
| | |
| *correct-water-lighting: 此设置如果设置为 true,将会导致基于材质包的高解析度地图渲染器像Minecraft客户端一样处理水的光照。如果设置为 false,那么将会使用老的水 - 也就会更暗。(0.29之前的结果)设置之后需要进行一次全地图的渲染才能得到正确的结果。
| |
| | |
| *fetchskins : 此设置可为 true 或 false,控制服务器在玩家登陆时是否尝试获取玩家的皮肤。如果设置为 false,默认的皮肤将会显示在所有玩家身上。默认为 true。
| |
| | |
| *refreshskins : 此设置可为 true 或 false,控制每次玩家登陆时刷新皮肤数据。如果设置为 false,已有的文件将永远不会刷新(如果是管理员手动上传皮肤数据那么很有用)。默认为 true。
| |
| | |
| 网页接口的用户登陆安全设定
| |
| | |
| 网页支持的基于用户登陆的安全系统可以在这里设置:
| |
| | |
| *login-enabled : 此设置可为 true 或 false,启用登陆安全支持(如果设置为 true)。
| |
| | |
| *login-required : 此设置可为 true 或 false,强迫所有的用户登陆才能进入网页。(如果设置为 true)
| |
| ===部件设定===
| |
| Dynmap的接口通过一些部件构成。不是所有的部件都可以被开启,并且有些必须开启。冠以这些部件和他们的属性可以下接下来的章节找到。
| |
| | |
| 核心客户端部件
| |
| | |
| 接下来的部件指定了网页的核心接口。客户端配置部件,和至少一个的客户端更新部件都是必须添加的。
| |
| | |
| 客户端配置部件
| |
| | |
| 这个部件在 components 章节如下定义:
| |
| <pre>
| |
| - class: org.dynmap.ClientConfigurationComponent
| |
| </pre>
| |
| 此部件是必须的,并且没有任何设置。
| |
| | |
| 内部客户端更新部件
| |
| | |
| 这个部件定义了Dynmap内部服务器的Web网页的主接口(这是部件运行必须开启的)。这个部件设置了用户使用的在 http://地址:端口/up/ 路径下的URL,包括了获取配置数据和地图更新,玩家信息和聊天信息。这个部件在 components 章节这样配置:
| |
| <pre>
| |
| - class: org.dynmap.InternalClientUpdateComponent
| |
| sendhealth: true
| |
| sendposition: true
| |
| allowwebchat: true
| |
| webchat-interval: 5
| |
| hidewebchatip: false
| |
| trustclientname: false
| |
| use-player-login-ip: true
| |
| require-player-login-ip: false
| |
| block-banned-player-chat: true
| |
| webchat-requires-login: false
| |
| webchat-permissions: false
| |
| includehiddenplayers: false
| |
| hideifshadow: 15
| |
| hideifundercover: 15
| |
| hideifsneaking: false
| |
| protected-player-info: false
| |
| </pre>
| |
| 设置如下:
| |
| | |
| *sendhealth : 此选项控制了网页是否发送玩家的生命信息。如果关闭,其他反馈玩家生命信息的部件将不会使用此数据,玩家的生命信息也不会受到检查,如果启用,生命信息仍然可以通过在世界设定的 sendhealth: false 选项来关闭。
| |
| | |
| *sendpostiion : 此选项控制了是否向网页发送玩家的位置信息。如果关闭,其他反馈玩家位置信息的部件将不会使用此数据,玩家的位置信息也不会受到检查,如果启用,位置信息仍然可以通过在世界设定的 sendhealth: false 选项来关闭。
| |
| | |
| *allowwebchat : 此选项控制了网页是否被允许向服务器发送网页聊天消息。如果停用,用户将不会发送任何网页聊天消息。
| |
| | |
| *webchat-interval : 此选项控制来自同一个网页的聊天信息的最小间隔,以秒为单位。
| |
| | |
| *hidewebchatip : 如果设置为 true,网页聊天将会显示为和游戏内IP地址相同的玩家的名称显示。
| |
| | |
| *trustclientname : 如果设置为 true,服务器将会使用网页使用者上传的IP地址(可能被伪造)而不是服务器获取的IP地址。
| |
| | |
| *use-player-login-ip : 如果设置为 true,网页聊天将会匹配当前或以前登陆的玩家的相同的IP地址 - 如果找到了匹配,将会以该玩家的ID作为身份标识。默认为 true(0.29或之后)。
| |
| | |
| *require-player-login-ip : 如果 use-player-login-ip 为 true 且此选项设置为 true,网页聊天没有匹配到当前或以前登陆的玩家的消息将会被忽略。默认为 false。(0.29或之后)
| |
| | |
| *block-banned-player-chat : 如果 use-player-login-ip h设置为 true 且此选项设置为 true,网页聊天匹配到已经被ban的玩家将被忽略。默认为 true(0.29或之后)。注意将不会对实现了自身的禁止系统的插件支持。
| |
| | |
| *webchat-requires-login : 如果 login-enabled 设置为 true 且此选项设置为 true,网页聊天信息只能由已经登录的用户发送。
| |
| | |
| *webchat-permissions : 如果设置为 true,绑定玩家的(通过登录或者IP)网页聊天将会检查 dynmap.webchat 权限,如果没有权限将被禁止发送。这需要一个支持读取离线玩家的权限的权限系统 - 比如 PermissionsEx 和 LuckPerms - 来让不用使用Minecraft客户端登录的玩家也能被检查权限。
| |
| | |
| *includehiddenplayers : 如果设置为 true,隐藏的玩家(使用 /dynmap hide 命令)也会显示在网页UI上,但是他们的位置、生命和信息仍然会隐藏,他们只出现在玩家列表里。
| |
| | |
| *hideifshadow : 如果设置为小于 15 的值,每个玩家的位置信息和生命信息都将在一定的光照亮度下被隐藏。(0=完全黑暗,4=晚上露天,15=完全的白天)
| |
| | |
| *hideifundercover : 如果设置为小于 15 的值,每个玩家的位置信息和生命信息都将在他被覆盖时隐藏。由于当前的Bukkit的限制(我们已经发出了 pull request),我们将将此设置改为基于阴影等级的判定(白天的该坐标的阴影等级)。
| |
| | |
| *hideifsneaking : 如果设置为 true,潜行的玩家将被隐藏。
| |
| | |
| *protected-player-info : 如果设置为 true,玩家的位置信息和生命信息将受到保护,没有 dynmap.playermarkers.seeall 权限的玩家(OP默认拥有)将只会看见此玩家的标记,而拥有此权限的用户将看见完整的玩家信息。如果此设定没有被设置或者设置为 false,那么所有的生命信息和位置信息都对所有人可见。
| |
| | |
| JSON 文件客户端更新部件
| |
| | |
| 使用内部Web服务器的另一种方法是将Dynmap和Web客户端的通信全部由一个外部Web服务器完成。这个文件的格式为 JSON(JavaScript Object Notation),操作的模式为"JSON 文件模式"。此模式允许内部Web服务器被关闭,转而使用内部客户端更新部件(它们之中一次只能启用一个)。此部件在 components 部分这样设置:
| |
| <pre>
| |
| - class: org.dynmap.JsonFileClientUpdateComponent
| |
| writeinterval: 1
| |
| sendhealth: true
| |
| sendposition: true
| |
| allowwebchat: false
| |
| webchat-interval: 5
| |
| hidewebchatip: false
| |
| trustclientname: false
| |
| use-player-login-ip: true
| |
| require-player-login-ip: false
| |
| block-banned-player-chat: true
| |
| webchat-requires-login: false
| |
| webchat-permissions: false
| |
| includehiddenplayers: false
| |
| hideifshadow: 15
| |
| hideifundercover: 15
| |
| hideifsneaking: false
| |
| protected-player-info: false
| |
| </pre>
| |
| 定义的属性与内部客户端更新部件相同,附加的属性如下:
| |
| | |
| *writeinterval : 此选项单位为秒,控制写入到 webpath/standalone 目录的间隔时间,这些文件为网页用户通过外部Web服务器加载地图配置使用的文件,也用于更新地图、玩家信息和生命值和聊天信息。 | |
| | |
| 标记部件
| |
| | |
| 此部件添加于 v0.22,提供了地图记号标记的内置支持,可以通过 /dmarker 命令或者API来使用。部件在 components 部分如下设置:
| |
| <pre>
| |
| - class: org.dynmap.MarkersComponent
| |
| type: markers
| |
| showlabel: false
| |
| enablesigns: false
| |
| showspawn: false
| |
| spawnicon: world
| |
| spawnlabel: "Spawn"
| |
| showofflineplayers: false
| |
| offlinelabel: "Offline"
| |
| offlineicon: offlineuser
| |
| offlinehidebydefault: true
| |
| offlineminzoom: 0
| |
| maxofflinetime: 30
| |
| showspawnbeds: false
| |
| spawnbedlabel: "Spawn Beds"
| |
| spawnbedicon: "bed"
| |
| spawnbedhidebydefault: true
| |
| spawnbedminzoom: 0
| |
| spawnbedformat: "%name%'s bed"
| |
| </pre>
| |
| 部件包含的设置如下:
| |
| | |
| *showlabel : 如果定义并设置为 true,这将导致地图标记的标签始终显示,而不是当用户将鼠标放在上面才显示。
| |
| | |
| *enablesigns : 如果定义并设置为 true,这将开启对牌子的标记支持。如果启用并且玩家拥有 dynmap.marker.sign 权限,玩家可以通过创建一个第一行为 '[dynmap]' 的牌子,来启用一个以第二行开始的标记。图标将会是 'sign' 图标,除非牌子上有一行是 'icon:'。标记组将会是默认的 'markers' 集合,除非牌子上有一行是 'set:'。一旦通过检查,'[dynmap]' 行和任何的设置行将会是空白的,留下标签行和任何剩余的行,破坏牌子将会删除对应的标记。
| |
| | |
| *showspawn : 如果定义并设置为 true,这将让每个世界的出生点显示为一个合适的标记(默认为 'world' 标记)和标签(默认为字符串 'Spawn')。
| |
| | |
| *spawnicon : 如果定义,提供出生点使用的标记(如果 showspawn 设置为 true)。默认为 'world'。
| |
| | |
| *spawnlabel : 如果定义,提供出生点使用的标签(如果 showspawn 设置为 true)。默认为 'Spawn'。
| |
| | |
| *showofflineplayers : 如果定义并设置为 true,将会添加一个显示离线玩家的标记层。(当玩家离线时会添加标记)
| |
| | |
| *offlinelabel : 如果定义,提供离线玩家使用的标签。默认为 'Offline'。
| |
| | |
| *offlineicon : 如果定义,提供离线玩家使用的标记。默认为 'offlineuser'。
| |
| | |
| *offlinehidebydefault : 如果定义并设置为 true,离线玩家标记层将默认隐藏。默认为 true。
| |
| | |
| *offlineminzoom : 如果设置不会 0,浙江制定显示离线玩家标记前的最小缩放等级。
| |
| | |
| *maxofflinetime : 如果设置为大于0,这将指定玩家离线后的几分钟内标记应该被移除(小于等于0位从不)。所有的离线玩家的标记都将在服务器重启后被重置,独立于此设定。
| |
| | |
| *showspawnbeds : 如果定义并设置为 true,将会显示在线玩家的出生点床的位置的标记层。(标记将在玩家离线后被移除)
| |
| | |
| *spawnbedlabel : 在线玩家出生点床使用的标签。默认为 'Spawn Beds'。
| |
| | |
| *spawnbedicon : 在线玩家出生点床使用的标记。默认为 'bed'。
| |
| | |
| *spawnbedhidebydefault : 如果为 true,出生点床标记层将会被隐藏,默认隐藏。
| |
| | |
| *spawnbedminzoom : 如果设置不为0,这将指定出生点床标记显示前最小的缩放等级。
| |
| | |
| 服务器聊天部件
| |
| | |
| 这些部件控制了服务器端实现的聊天功能,包括了从服务器发送至客户端聊天消息,和客户端到服务器的玩家聊天的显示。这些部件一次只能设置一个。
| |
| | |
| 基础聊天部件
| |
| | |
| 此部件实现了标准Bukkit/Minecraft服务端聊天通道,当激活时,所有的聊天消息都会被共享给网页用户,所有从网页接收到的聊天消息也将发送给服务器上的玩家(当然也有其他的网页用户)。此部件在 components 中如下配置:
| |
| <pre>
| |
| - class: org.dynmap.SimpleWebChatComponent
| |
| allowchat: true
| |
| </pre>
| |
| 部件包含以下设置:
| |
| | |
| *allowchat : 如果启用,将会决定服务器上的聊天是否发送给网页,如果设置为 false,将不会给网页发送聊天消息。 | |
| | |
| HeroChat 聊天部件 (弃用 - 不兼容 HeroChat 5)
| |
| | |
| HeroChat 插件实现了特殊的聊天通道。此部件允许选择HeroChat的特定聊天通道发送给网页客户端,网页聊天显示于哪一条通道。此部件在 components 中如下配置:
| |
| <pre>
| |
| - class: org.dynmap.herochat.HeroWebChatComponent
| |
| herochatwebchannel: Global
| |
| herochatchannels:
| |
| - Global
| |
| </pre>
| |
| 此部件包含如下选项:
| |
| | |
| *herochatwebchannel : 从网页接收到的聊天信息显示于 HeroChat 的聊天通道的名称。默认为 'Global'。
| |
| | |
| *herochatchannels : 此为HeroChat聊天通道需要监视的名称,将会共享给网页用户。0或者多个通道可能被列出,默认只有 Global。
| |
| | |
| 客户端聊天部件
| |
| | |
| 这些部件控制了网页是否启用并支持发送和接受聊天消息。这些部件基于对应的服务端部件才能接受请求的功能。部件可以被单独定义也可以结合。
| |
| | |
| 聊天客户端部件
| |
| | |
| 此部件启用了聊天信息的输入部分,允许用户进入并从网页向服务器发送聊天信息。此部件如下配置:
| |
| <pre>
| |
| - class: org.dynmap.ClientComponent
| |
| type: chat
| |
| allowurlname: false
| |
| </pre>
| |
| 此部件包含如下选项:
| |
| | |
| *allowurlname : 如果设置为 true (并且 trustclientname 在对应的客户端更新部件),用户可以通过 chatname URL 参数应用自己的聊天名称。
| |
| | |
| 聊天气泡客户端插件
| |
| | |
| 此部件实现了可弹出的气泡信息,气泡可以在地图上玩家的位置出现。此部件在 components 中如下配置:
| |
| <pre>
| |
| - class: org.dynmap.ClientComponent
| |
| type: chatballoon
| |
| focuschatballoons: false
| |
| </pre>
| |
| 此部件包含如下选项:
| |
| | |
| *focuschatballoons : 如果启用,这将导致气泡如果不在地图上显示,地图将会平移至气泡的位置。
| |
| | |
| 注意放置气泡需要先知道说话的玩家的位置信息,如果 sendposition: false 设置于玩家的当前的世界,或者通过激活的客户端更新部件来全局设置会失效。
| |
| | |
| 聊天栏客户端部件
| |
| | |
| 此部件实现了从服务器和其他网页接受消息并显示在聊天栏的功能。此部件在 components 中如下配置:
| |
| <pre>
| |
| - class: org.dynmap.ClientComponent
| |
| type: chatbox
| |
| showplayerfaces: true
| |
| messagettl: 5
| |
| scrollback: 100
| |
| sendbutton: false
| |
| </pre>
| |
| 此部件包含如下选项:
| |
| | |
| *showplayerfaces : 如果启用,玩家的头像将会在消息前显示。
| |
| | |
| *messagettl : 这控制了显示的消息几秒钟后消失。如果 scrollback 设置,此设置将被忽略。
| |
| | |
| *scrollback : 如果定义,这指定了最多在可滚动的信息列表里保存多少条消息。如果指定,消息将不会淡出(messagettl被忽略)并只会将超过 scrollback 的数量的聊天信息移除。
| |
| | |
| *sendbutton : 如果定义并设置为 true,这将在WebUI上显示一个发送按钮,允许按按钮而不是使用回车键发送消息。
| |
| | |
| 地图控制部件
| |
| | |
| 这些部件定义了附加的地图数据,例如玩家记号、时间、日志等。任何部件都可以被定义。
| |
| | |
| 玩家图标部件
| |
| | |
| 此部件用于在地图上以图标显示玩家的位置和名称。玩家的位置信息只能在可用时(查看 sendposition 上方的设置)才会显示。此部件在 components 中如下配置:
| |
| <pre>
| |
| - class: org.dynmap.ClientComponent
| |
| type: playermarkers
| |
| showplayerfaces: true
| |
| showplayerhealth: true
| |
| showplayerbody: false
| |
| smallplayerfaces: false
| |
| hidebydefault: false
| |
| layerprio: 0
| |
| label: "Players"
| |
| </pre>
| |
| | |
| 此部件包含如下选项:
| |
| | |
| *showplayerfaces : 如果启用,这将让网页试图加载玩家的自定义的皮肤作为头像的图标。否则将会加载一个通用的小图标作为标记。
| |
| | |
| *showplayerhealth : 如果启用,客户端将会尝试显示在图标下方以两行显示玩家的生命和护甲值。这要求玩家的生命信息必须可用(查看上方的 sendhealth)。
| |
| | |
| *smallplayerfaces : 如果启用,玩家的头像将会以 1/2 显示(与 showplayerfaces 开启有关)(如果 showplayerfaces 关闭将会显示默认图标的 1/2 大小)。
| |
| | |
| *showplayerbody : 如果启用,将会显示整个身体的图标而不仅是头像,只有在 showplayerfaces 设置为 true 并且 smallplayerfaces 设置为 false 才可用。
| |
| | |
| *hidebydefault : 此选项是可选的,如果定义并设置为 true,将会更改地图上玩家的图标的默认可见性设定。该图标层仍然可被WebUI控制设置为可见。
| |
| | |
| *layerprio : 此选项是可选的,提供了图层选择的权重排序,从最低排到最高的 layerprio,(相同权重以字母顺序排序)。默认为 0。
| |
| | |
| *label : 此选项是可选的,提供了用于选择控制图层的标签。默认为 'Players'。
| |
| | |
| 数字钟部件
| |
| | |
| 此部件用于显示一个简单的数字钟,显示显示的世界对应的时间。此部件在 components 中如下配置:
| |
| <pre>
| |
| - class: org.dynmap.ClientComponent
| |
| type: digitalclock
| |
| </pre>
| |
| 一次只能开启一个数字钟部件。
| |
| | |
| 日月时钟部件
| |
| | |
| 这是一个更加复杂的时钟部件,通过太阳和月亮图标的升起降下来对应当前世界的时间。此部件在 components 中如下配置:
| |
| <pre>
| |
| - class: org.dynmap.ClientComponent
| |
| type: timeofdayclock
| |
| showdigitalclock: true
| |
| showweather: true
| |
| </pre>
| |
| 此部件包含如下选项:
| |
| | |
| *showdigitalclock : 如果启用,数字时钟将会显示(附加于日月的显示)。
| |
| | |
| *showweather :
| |
| | |
| 坐标部件
| |
| | |
| 此部件用于显示鼠标所指的地方对应的世界的坐标。此部件在 components 中如下配置:
| |
| <pre>
| |
| - class: org.dynmap.ClientComponent
| |
| type: coord
| |
| label: "Location"
| |
| hidey: false
| |
| show-mcr: false
| |
| </pre>
| |
| 此部件包含如下选项:
| |
| | |
| *label : 允许控制用于显示坐标的标签,默认为 'x,y,z'。
| |
| | |
| *hidey : 此选项如果定义并设置为 true,会只显示 X,Z 坐标。
| |
| | |
| *show-mcr : 此选项如果定义并设置为 true,会显示当前位置的Minecraft区域文件ID。
| |
| | |
| Logo 部件
| |
| | |
| 此部件允许在地图上显示一个可选的图标和链接。此部件在 components 中如下配置:
| |
| <pre>
| |
| - class: org.dynmap.ClientComponent
| |
| type: logo
| |
| text: "Dynmap"
| |
| linkurl: "http://forums.bukkit.org/threads/dynmap.489/"
| |
| </pre>
| |
| 此部件包含如下选项:
| |
| | |
| *text : logo的标签
| |
| | |
| *linkurl : 显示的标签链接到的 URL。
| |
| | |
| 链接部件
| |
| | |
| 此部件可以在WebUI显示一个 '链接到' 按钮。这个按钮点击后会链接到另一个页面,但是会保留世界的地图、缩放和当前的视图的位置信息 - 允许将视图分享,作为标签或者其他的链接。此部件在 components 中如下配置:
| |
| <pre>
| |
| - class: org.dynmap.ClientComponent
| |
| type: link
| |
| </pre>
| |
| 现在没有任何设置。
| |
| ===世界&模板设定===
| |