首先向Anjocaido致敬。众所周知,由于Weley Wolfe的传票,我们再也无法合法地下载水桶服了。
值得庆幸的是,MCP依然存在,Forge依然存在。那么服主们只要通过MCP和Forge实现Bukkit API,并对自己喜爱的Plugin稍作修改,便可以让自己的服务器继续延续下去。这样的方法,我本人也是第一次尝试,如有纰漏,请多海涵。
首先,我们要从MCP官网下载用于反编译1.8版本minecraft的MCP,即MCP 9.10。然后从Minecraft官网下载官方Minecraft服务器。
将刚下载的 minecraft_server*.jar 复制到MCP目录下的 jars 目录中,然后回到上层,运行decompile.bat。(虽然官方提供了bash文件,但我并不建议在非Windows平台下使用MCP)稍作等待,直到MCP完成反编译工作。MCP可能会有如下的输出:
复制代码到此为止,我们完成了实现Bukkit API的第一步。你可以在MCP目录下的src目录中找到刚刚反编译的服务端。
值得庆幸的是,MCP依然存在,Forge依然存在。那么服主们只要通过MCP和Forge实现Bukkit API,并对自己喜爱的Plugin稍作修改,便可以让自己的服务器继续延续下去。这样的方法,我本人也是第一次尝试,如有纰漏,请多海涵。
首先,我们要从MCP官网下载用于反编译1.8版本minecraft的MCP,即MCP 9.10。然后从Minecraft官网下载官方Minecraft服务器。
将刚下载的 minecraft_server*.jar 复制到MCP目录下的 jars 目录中,然后回到上层,运行decompile.bat。(虽然官方提供了bash文件,但我并不建议在非Windows平台下使用MCP)稍作等待,直到MCP完成反编译工作。MCP可能会有如下的输出:
- == MCP 9.10 (data: 9.10, client: 1.8, server: 1.8) ==
- "scalac" is not found on the PATH. Scala files will not be recompiled
- # found ff, ff patches, srgs, name csvs, doc csvs, param csvs, astyle, astyle co
- nfig, rg, ss
- Looking in 河蟹 for mc installs... OK
- Copying assets... OK
- Parsing JSON file... OK
- Looking for minecraft main jar... Not found
- Copying minecraft main jar... OK
- > Checking libraries...
- Copying library jinput... OK
- Copying library lwjgl-platform... OK
- Copying library icu4j-core-mojang... OK
- Copying library twitch-external-platform... OK
- Copying library trove4j... OK
- Copying library httpcore... OK
- Copying library log4j-api... OK
- Copying library commons-lang3... OK
- Copying library libraryjavasound... OK
- Copying library jopt-simple... OK
- Copying library guava... OK
- Copying library commons-logging... OK
- Copying library commons-compress... OK
- Copying library twitch... OK
- Copying library codecjorbis... OK
- Copying library soundsystem... OK
- Copying library librarylwjglopenal... OK
- Copying library lwjgl_util... OK
- Copying library commons-codec... OK
- Copying library httpclient... OK
- Copying library lwjgl... OK
- Copying library commons-io... OK
- Copying library realms... OK
- Copying library authlib... OK
- Copying library gson... OK
- Copying library vecmath... OK
- Copying library netty-all... OK
- Copying library codecwav... OK
- Copying library twitch-platform... OK
- Copying library jinput-platform... OK
- Copying library log4j-core... OK
- Copying library jutils... OK
- > Checking Natives...
- Extracting native avutil-ttv-51.dll... OK
- Extracting native lwjgl.dll... OK
- Extracting native OpenAL32.dll... OK
- Extracting native jinput-dx8_64.dll... OK
- Extracting native jinput-wintab.dll... OK
- Extracting native twitchsdk.dll... OK
- Extracting native jinput-dx8.dll... OK
- Extracting native libmp3lame-ttv.dll... OK
- Extracting native libmfxsw32.dll... OK
- Extracting native OpenAL64.dll... OK
- Extracting native jinput-raw_64.dll... OK
- Extracting native swresample-ttv-0.dll... OK
- Extracting native jinput-raw.dll... OK
- Extracting native lwjgl64.dll... OK
- == Decompiling client using fernflower ==
- > Creating SRGs
- > Applying SpecialSource
- > Applying MCInjector
- > Creating renamed srg
- > Filtering classes
- > Decompiling
- > Unpacking jar
- > Copying sources
- > Applying fernflower fixes
- > Applying patches
- > Cleaning comments
- - Done in 226.84 seconds
- == Reformating client ==
- > Cleaning sources
- > Replacing OpenGL constants
- > Reformating sources
- - Done in 13.06 seconds
- == Updating client ==
- > Adding javadoc
- > Renaming sources
- - Done in 9.98 seconds
- == Decompiling server using fernflower ==
- > Creating SRGs
- > Applying SpecialSource
- > Applying MCInjector
- > Creating renamed srg
- > Filtering classes
- > Decompiling
- > Unpacking jar
- > Copying sources
- > Applying fernflower fixes
- > Applying patches
- > Cleaning comments
- - Done in 114.80 seconds
- == Reformating server ==
- > Cleaning sources
- > Reformating sources
- - Done in 8.57 seconds
- == Updating server ==
- > Adding javadoc
- > Renaming sources
- - Done in 7.02 seconds
- == Recompiling client ==
- > Cleaning bin
- > Recompiling
- - Done in 12.55 seconds
- > Generating client md5s
- == Recompiling server ==
- > Cleaning bin
- > Recompiling
- - Done in 10.71 seconds
- > Generating server md5s
- 请按任意键继续. . .
现在我们用NetBeans创建一个叫MineBukkit的项目,将位于[MCP root]/src/minecraft_server中的目录全部复制到MineBukkit项目的src目录中。
同时我们还需要Bukkit API,而你可以从Github上找到含有源代码的压缩包。将压缩包里Bukkit-master/src/main/java中的内容全部解压到MineBukkit项目的src目录中。
做完这些,你也许会在打开NetBeans查看项目的瞬间崩溃,因为项目中有不计其数的错误提示。而我这第二天的日记就主要着重抓虫子的过程。
项目中会出现的错误主要有缺失依赖库错误和反编译错误。缺失依赖库错误很容易解决,你只需要将.minecraft目录下的所有库导入到项目中,并根据实际情况,将相应的库升级到更高版本。
反编译错误则较为复杂,我将在下一楼中集中解释。
【参考】
[1]Bukkit API: https://github.com/Bukkit/Bukkit
同时我们还需要Bukkit API,而你可以从Github上找到含有源代码的压缩包。将压缩包里Bukkit-master/src/main/java中的内容全部解压到MineBukkit项目的src目录中。
做完这些,你也许会在打开NetBeans查看项目的瞬间崩溃,因为项目中有不计其数的错误提示。而我这第二天的日记就主要着重抓虫子的过程。
项目中会出现的错误主要有缺失依赖库错误和反编译错误。缺失依赖库错误很容易解决,你只需要将.minecraft目录下的所有库导入到项目中,并根据实际情况,将相应的库升级到更高版本。
反编译错误则较为复杂,我将在下一楼中集中解释。
【参考】
[1]Bukkit API: https://github.com/Bukkit/Bukkit
然而实现水桶服毫无意义,spigot就是针对水桶的强化版。而且buildtools亦会自动下载编译后的bukkit jar
4one_R 发表于 2015-11-2 18:36
然而实现水桶服毫无意义,spigot就是针对水桶的强化版。而且buildtools亦会自动下载编译后的bukkit jar ...
Spigot官方也因为DMCA不提供Spigot下载服务了。另外,你指的buildtools是什么?