我的世界天骐新手生存中的AGE是什么?新手求解答

:更新 EULA 事件&br&&br&承蒙大家的厚爱,小弟的编年史上日报啦! 实在感谢所有人的支持!&br&&br&最后的部分已经在更新啦,我的语文功底不好,每次下笔都要斟酌,文笔也不是很通顺.. 所以还请各位原谅~&br&&br&=========================&br&&br&这个问题太想自问自答了,因为这段血泪史完全可以写成精彩纷呈的长篇小说!作为在 Minecraft 业界打滚多年的人,必须得给大家侃侃背后的故事!&br&&br&&figure&&img src=&https://pic3.zhimg.com/d0ddf03d6e86aefeb290f_b.jpg& data-rawwidth=&288& data-rawheight=&356& class=&content_image& width=&288&&&/figure&&br&&br&&br&&b&// Survival Multiplayer 时代(2010)&/b&&br&&br&&br&&br&让时光回溯到五年前的 8 月 9 日的凌晨。我们的故事主角兼 Minecraft 创始人,Markus 'Notch' Persson,正二十四个小时宅在家里,撑着双眼死瞪电脑屏幕,双手则 迅速地敲着键盘,废寝忘食地调试着程序。再过一个小时就是 8 月 10 日了,Minecraft 生存多人游戏(Survival Multiplayer,SMP)正式发布的日子。&br&&br&&figure&&img src=&https://pic1.zhimg.com/ea732d9333eaaeb01edc_b.jpg& data-rawwidth=&184& data-rawheight=&184& class=&content_image& width=&184&&&/figure&&i&你看 Notch 这妖魅的小眼神&/i&&br&&br&Minecraft SMP 的名字听上去很高大上,但其实就是一个叫做 minecraft_server.jar 的文件罢了,小巧绿色又便携。使用方法也非常简单,双击打开,它就会自动在默认端口上设置好一个 Minecraft 的服务器,别人只需凭你的 IP 即可进入。理所当然地,一些基本的命令也包含在其中:/kick 用来踢人,/gamemode 用来从生存转创造... &br&&br&现在看来,第一个版本的 SMP 相当简陋,但玩家们正沉醉于和朋友一起玩生存的乐趣里,再简陋也赞不绝口。&br&&br&&figure&&img src=&https://pic4.zhimg.com/03ba1fddacea00dd3d8584f_b.jpg& data-rawwidth=&120& data-rawheight=&92& class=&content_image& width=&120&&&/figure&&br&&b&SMP 的发布,正是迎合 Minecraft 迅猛上升的用户注册量。&/b&截至 2010 年 5 月,Minecraft 的付费用户已经达到两万,YouTube 上以 Minecraft 作为关键字的视频日益增长,而此时,这个游戏还只是在 Alpha 阶段!&br&&br&而 SMP 的出现,更让 Minecraft 的知名度登上又一巅峰:什么!?可以和好基友在开放式的 LEGO 世界里生存、探险、搞基(?);还可以开创造起个斗兽场战个痛或者堆满 TNT 然后炸地图;最给力的是神似编程的红石系统,直接令 Minecraft 一跃成为游戏开发工具!&b&哪个 AAA 级游戏有这么爽的体验?!&/b&&br&&br&&figure&&img src=&https://pic1.zhimg.com/d678a8532ebbbb0f_b.jpg& data-rawwidth=&1301& data-rawheight=&597& class=&origin_image zh-lightbox-thumb& width=&1301& data-original=&https://pic1.zhimg.com/d678a8532ebbbb0f_r.jpg&&&/figure&&i&即使从五年后看来,&/i&&i&SMP 的&/i&&i&第一个版本也有相当高的游戏性&/i&&br&&br&在 SMP 发布仅仅两个月后,Minecraft 的付费用户就翻了个 1.5 倍,两个月就赚了一百多万!SMP 的巨大成功并没有让 Notch 怠慢,没过多久就向玩家们宣布了 Beta 版本的到来。而 Notch 也正式注册了 Mojang AB 的商标,为之后发行游戏铺路。&br&&br&&br&&br&&b&// hMod 时代(2010 ~ 2011)&/b&&br&&br&&br&&br&SMP 好玩归好玩,可是不能在上面装 mod 这一点让不少玩家很苦恼。当然了,可以通过反编译 minecraft_server.jar 修改里面的代码,比如调整一下玩家的默认速度什么的,然后每个玩家一走起路来就跑十公里远,上天入海不是梦。毕竟 Mojang 也没有做什么签名验证,也没什么坑爹的全程联网验证(育碧:...),要修改几个变量然后重新编译,理论上来讲不难啊。&br&&br&&figure&&img src=&https://pic3.zhimg.com/666e271cc9c55ebc89f76e145d230e3a_b.jpg& data-rawwidth=&55& data-rawheight=&52& class=&content_image& width=&55&&&/figure&&br&可行归可行,问题是修改起来太麻烦:&b&代码全部被混淆(obfuscated)了!&/b&&br&&br&什么叫代码混淆呢?举个栗子,比如说原本的代码是这样的:&br&&br&&div class=&highlight&&&pre&&code class=&language-text&&private String playerName = &你爸爸&; // 定义玩家名称
private double health = 20.0D; // 定义玩家血量
private float walkSpeed = 1.2F; // 定义玩家速度
public void chat(String message) { // 定义一个说话的函数
Server.broadcastMessage(this, message); // 向服务器里的函数传递参数
&/code&&/pre&&/div&&br&没学过 Java 是不是也很清晰明了?这修改起来还不容易,简直就是填空嘛,小学生都会。&br&&br&&figure&&img src=&https://pic2.zhimg.com/084acc86bfd1a172aa3cc1_b.jpg& data-rawwidth=&110& data-rawheight=&110& class=&content_image& width=&110&&&/figure&&br&&b&问题是在编译的时候,代码被 Mojang 事先混淆了&/b&,可能到你手里的时候就变成这样了:&br&&br&&div class=&highlight&&&pre&&code class=&language-text&&String a = Base64.decodeFromBase64(&5L2g54i454i4&);
double b = 20.0D;
float c = 1.2F;
public void d(String a) {
bl.aE(this, a);
&/code&&/pre&&/div&&br&尼玛这叫一个狠哪,若是没有原本的代码,你看得懂吗?&br&&br&&figure&&img src=&https://pic3.zhimg.com/cfaabafa9e0da2ccb4e9f2_b.jpg& data-rawwidth=&126& data-rawheight=&118& class=&content_image& width=&126&&&/figure&&br&你或许说,上面这几行,我也能猜出个大概吧?嗯,b 是血量,因为玩家血量最高就是 20,然后 c 是... bl 是... aE 是...&br&&br&&figure&&img src=&https://pic1.zhimg.com/ffe11ceac2ad754e2fa98_b.jpg& data-rawwidth=&99& data-rawheight=&71& class=&content_image& width=&99&&&/figure&&br&别忙着翻桌,我们再来看看真实个例,下面是 Minecraft 1.8 里面的 aap 类:&br&&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&kd&&public&/span& &span class=&kd&&class&/span& &span class=&nc&&aap&/span& &span class=&kd&&extends&/span& &span class=&n&&um&/span& &span class=&o&&{&/span&
&span class=&kd&&private&/span& &span class=&kd&&static&/span& &span class=&kd&&final&/span& &span class=&n&&Logger&/span& &span class=&n&&b&/span& &span class=&o&&=&/span& &span class=&o&&;&/span&
&span class=&kd&&public&/span& &span class=&kt&&float&/span& &span class=&n&&a&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&kt&&float&/span&&span class=&o&&)&/span& &span class=&o&&(&/span&&span class=&n&&Math&/span&&span class=&o&&.&/span&&span class=&na&&random&/span&&span class=&o&&()&/span& &span class=&o&&*&/span& &span class=&mf&&3.793&/span&&span class=&n&&D&/span& &span class=&o&&*&/span& &span class=&mf&&2.0&/span&&span class=&n&&D&/span&&span class=&o&&);&/span&
&span class=&kd&&private&/span& &span class=&kt&&int&/span& &span class=&n&&c&/span&&span class=&o&&;&/span&
&span class=&kd&&private&/span& &span class=&kt&&int&/span& &span class=&n&&d&/span&&span class=&o&&;&/span&
&span class=&kd&&private&/span& &span class=&kt&&int&/span& &span class=&n&&e&/span& &span class=&o&&=&/span& &span class=&mi&&5&/span&&span class=&o&&;&/span&
&span class=&kd&&private&/span& &span class=&n&&String&/span& &span class=&n&&f&/span&&span class=&o&&;&/span&
&span class=&kd&&private&/span& &span class=&n&&String&/span& &span class=&n&&g&/span&&span class=&o&&;&/span&
&span class=&kd&&public&/span& &span class=&nf&&aap&/span&&span class=&o&&(&/span&&span class=&n&&amp&/span& &span class=&n&&paramamp&/span&&span class=&o&&,&/span& &span class=&kt&&double&/span& &span class=&n&&paramDouble1&/span&&span class=&o&&,&/span& &span class=&kt&&double&/span& &span class=&n&&paramDouble2&/span&&span class=&o&&,&/span& &span class=&kt&&double&/span& &span class=&n&&paramDouble3&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&kd&&super&/span&&span class=&o&&(&/span&&span class=&n&&paramamp&/span&&span class=&o&&);&/span&
&span class=&n&&a&/span&&span class=&o&&(&/span&&span class=&mf&&0.25&/span&&span class=&n&&F&/span&&span class=&o&&,&/span& &span class=&mf&&0.25&/span&&span class=&n&&F&/span&&span class=&o&&);&/span&
&span class=&n&&b&/span&&span class=&o&&(&/span&&span class=&n&&paramDouble1&/span&&span class=&o&&,&/span& &span class=&n&&paramDouble2&/span&&span class=&o&&,&/span& &span class=&n&&paramDouble3&/span&&span class=&o&&);&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&y&/span& &span class=&o&&=&/span& &span class=&o&&((&/span&&span class=&kt&&float&/span&&span class=&o&&)&/span& &span class=&o&&(&/span&&span class=&n&&Math&/span&&span class=&o&&.&/span&&span class=&na&&random&/span&&span class=&o&&()&/span& &span class=&o&&*&/span& &span class=&mf&&360.0&/span&&span class=&n&&D&/span&&span class=&o&&));&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&v&/span& &span class=&o&&=&/span& &span class=&o&&((&/span&&span class=&kt&&float&/span&&span class=&o&&)&/span& &span class=&o&&(&/span&&span class=&n&&Math&/span&&span class=&o&&.&/span&&span class=&na&&random&/span&&span class=&o&&()&/span& &span class=&o&&*&/span& &span class=&mf&&0.2322&/span&&span class=&n&&D&/span& &span class=&o&&-&/span& &span class=&mf&&0.1161&/span&&span class=&n&&D&/span&&span class=&o&&));&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&w&/span& &span class=&o&&=&/span& &span class=&mf&&0.2322&/span&&span class=&n&&D&/span&&span class=&o&&;&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&x&/span& &span class=&o&&=&/span& &span class=&o&&((&/span&&span class=&kt&&float&/span&&span class=&o&&)&/span& &span class=&o&&(&/span&&span class=&n&&Math&/span&&span class=&o&&.&/span&&span class=&na&&random&/span&&span class=&o&&()&/span& &span class=&o&&*&/span& &span class=&mf&&0.2322&/span&&span class=&n&&D&/span& &span class=&o&&-&/span& &span class=&mf&&0.1161&/span&&span class=&n&&D&/span&&span class=&o&&));&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&nf&&aap&/span&&span class=&o&&(&/span&&span class=&n&&amp&/span& &span class=&n&&paramamp&/span&&span class=&o&&,&/span& &span class=&kt&&double&/span& &span class=&n&&paramDouble1&/span&&span class=&o&&,&/span& &span class=&kt&&double&/span& &span class=&n&&paramDouble2&/span&&span class=&o&&,&/span& &span class=&kt&&double&/span& &span class=&n&&paramDouble3&/span&&span class=&o&&,&/span& &span class=&n&&aio&/span& &span class=&n&&paramaio&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&(&/span&&span class=&n&&paramamp&/span&&span class=&o&&,&/span& &span class=&n&&paramDouble1&/span&&span class=&o&&,&/span& &span class=&n&&paramDouble2&/span&&span class=&o&&,&/span& &span class=&n&&paramDouble3&/span&&span class=&o&&);&/span&
&span class=&n&&a&/span&&span class=&o&&(&/span&&span class=&n&&paramaio&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&nf&&aap&/span&&span class=&o&&(&/span&&span class=&n&&amp&/span& &span class=&n&&paramamp&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&kd&&super&/span&&span class=&o&&(&/span&&span class=&n&&paramamp&/span&&span class=&o&&);&/span&
&span class=&n&&a&/span&&span class=&o&&(&/span&&span class=&mf&&0.25&/span&&span class=&n&&F&/span&&span class=&o&&,&/span& &span class=&mf&&0.25&/span&&span class=&n&&F&/span&&span class=&o&&);&/span&
&span class=&n&&a&/span&&span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&aio&/span&&span class=&o&&(&/span&&span class=&n&&apg&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&,&/span& &span class=&mi&&0&/span&&span class=&o&&));&/span&
&span class=&o&&}&/span&
&span class=&kd&&protected&/span& &span class=&kt&&boolean&/span& &span class=&nf&&q_&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&protected&/span& &span class=&kt&&void&/span& &span class=&nf&&g&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&n&&F&/span&&span class=&o&&().&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&mi&&10&/span&&span class=&o&&,&/span& &span class=&mi&&5&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&j&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&k&/span&&span class=&o&&()&/span& &span class=&o&&==&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&H&/span&&span class=&o&&();&/span&
&span class=&k&&return&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&super&/span&&span class=&o&&.&/span&&span class=&na&&j&/span&&span class=&o&&();&/span&
&span class=&k&&if&/span& &span class=&o&&((&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&&&/span& &span class=&mi&&0&/span&&span class=&o&&)&/span& &span class=&o&&&&&/span& &span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&!=&/span& &span class=&mi&&32767&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&-=&/span& &span class=&mi&&1&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&p&/span& &span class=&o&&=&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&s&/span&&span class=&o&&;&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&q&/span& &span class=&o&&=&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&t&/span&&span class=&o&&;&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&r&/span& &span class=&o&&=&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&u&/span&&span class=&o&&;&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&w&/span& &span class=&o&&-=&/span& &span class=&mf&&0.93033&/span&&span class=&n&&D&/span&&span class=&o&&;&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&T&/span& &span class=&o&&=&/span& &span class=&n&&j&/span&&span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&s&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&n&&aL&/span&&span class=&o&&().&/span&&span class=&na&&b&/span& &span class=&o&&+&/span& &span class=&n&&aL&/span&&span class=&o&&().&/span&&span class=&na&&e&/span&&span class=&o&&)&/span& &span class=&o&&/&/span& &span class=&mf&&2.0&/span&&span class=&n&&D&/span&&span class=&o&&,&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&u&/span&&span class=&o&&);&/span&
&span class=&n&&d&/span&&span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&v&/span&&span class=&o&&,&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&w&/span&&span class=&o&&,&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&x&/span&&span class=&o&&);&/span&
&span class=&kt&&int&/span& &span class=&n&&i&/span& &span class=&o&&=&/span& &span class=&o&&((&/span&&span class=&kt&&int&/span&&span class=&o&&)&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&p&/span& &span class=&o&&!=&/span& &span class=&o&&(&/span&&span class=&kt&&int&/span&&span class=&o&&)&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&s&/span&&span class=&o&&)&/span& &span class=&o&&||&/span& &span class=&o&&((&/span&&span class=&kt&&int&/span&&span class=&o&&)&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&q&/span& &span class=&o&&!=&/span& &span class=&o&&(&/span&&span class=&kt&&int&/span&&span class=&o&&)&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&t&/span&&span class=&o&&)&/span& &span class=&o&&||&/span& &span class=&o&&((&/span&&span class=&kt&&int&/span&&span class=&o&&)&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&r&/span& &span class=&o&&!=&/span& &span class=&o&&(&/span&&span class=&kt&&int&/span&&span class=&o&&)&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&u&/span&&span class=&o&&)&/span& &span class=&o&&?&/span& &span class=&mi&&1&/span& &span class=&o&&:&/span& &span class=&mi&&0&/span&&span class=&o&&;&/span&
&span class=&k&&if&/span& &span class=&o&&((&/span&&span class=&n&&i&/span& &span class=&o&&!=&/span& &span class=&mi&&0&/span&&span class=&o&&)&/span& &span class=&o&&||&/span& &span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&W&/span& &span class=&o&&%&/span& &span class=&mi&&25&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&o&/span&&span class=&o&&.&/span&&span class=&na&&p&/span&&span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&dl&/span&&span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&)).&/span&&span class=&na&&c&/span&&span class=&o&&().&/span&&span class=&na&&r&/span&&span class=&o&&()&/span& &span class=&o&&==&/span& &span class=&n&&big&/span&&span class=&o&&.&/span&&span class=&na&&i&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&w&/span& &span class=&o&&=&/span& &span class=&mf&&0.2322&/span&&span class=&n&&D&/span&&span class=&o&&;&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&v&/span& &span class=&o&&=&/span& &span class=&o&&((&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&V&/span&&span class=&o&&.&/span&&span class=&na&&nextFloat&/span&&span class=&o&&()&/span& &span class=&o&&-&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&V&/span&&span class=&o&&.&/span&&span class=&na&&nextFloat&/span&&span class=&o&&())&/span& &span class=&o&&*&/span& &span class=&mf&&0.2&/span&&span class=&n&&F&/span&&span class=&o&&);&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&x&/span& &span class=&o&&=&/span& &span class=&o&&((&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&V&/span&&span class=&o&&.&/span&&span class=&na&&nextFloat&/span&&span class=&o&&()&/span& &span class=&o&&-&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&V&/span&&span class=&o&&.&/span&&span class=&na&&nextFloat&/span&&span class=&o&&())&/span& &span class=&o&&*&/span& &span class=&mf&&0.2&/span&&span class=&n&&F&/span&&span class=&o&&);&/span&
&span class=&n&&a&/span&&span class=&o&&(&/span&&span class=&s&&&random.fizz&&/span&&span class=&o&&,&/span& &span class=&mf&&0.4&/span&&span class=&n&&F&/span&&span class=&o&&,&/span& &span class=&mf&&2.0&/span&&span class=&n&&F&/span& &span class=&o&&+&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&V&/span&&span class=&o&&.&/span&&span class=&na&&nextFloat&/span&&span class=&o&&()&/span& &span class=&o&&*&/span& &span class=&mf&&0.4&/span&&span class=&n&&F&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(!&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&o&/span&&span class=&o&&.&/span&&span class=&na&&C&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&v&/span&&span class=&o&&();&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&kt&&float&/span& &span class=&n&&f1&/span& &span class=&o&&=&/span& &span class=&mf&&0.98&/span&&span class=&n&&F&/span&&span class=&o&&;&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&C&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&f1&/span& &span class=&o&&=&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&o&/span&&span class=&o&&.&/span&&span class=&na&&p&/span&&span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&dl&/span&&span class=&o&&(&/span&&span class=&n&&sr&/span&&span class=&o&&.&/span&&span class=&na&&c&/span&&span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&s&/span&&span class=&o&&),&/span& &span class=&n&&sr&/span&&span class=&o&&.&/span&&span class=&na&&c&/span&&span class=&o&&(&/span&&span class=&n&&aL&/span&&span class=&o&&().&/span&&span class=&na&&b&/span&&span class=&o&&)&/span& &span class=&o&&-&/span& &span class=&mi&&1&/span&&span class=&o&&,&/span& &span class=&n&&sr&/span&&span class=&o&&.&/span&&span class=&na&&c&/span&&span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&u&/span&&span class=&o&&))).&/span&&span class=&na&&c&/span&&span class=&o&&().&/span&&span class=&na&&K&/span& &span class=&o&&*&/span& &span class=&mf&&0.98&/span&&span class=&n&&F&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&v&/span& &span class=&o&&*=&/span& &span class=&n&&f1&/span&&span class=&o&&;&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&w&/span& &span class=&o&&*=&/span& &span class=&mf&&0.4863&/span&&span class=&n&&D&/span&&span class=&o&&;&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&x&/span& &span class=&o&&*=&/span& &span class=&n&&f1&/span&&span class=&o&&;&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&C&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&w&/span& &span class=&o&&*=&/span& &span class=&o&&-&/span&&span class=&mf&&0.5&/span&&span class=&n&&D&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&c&/span& &span class=&o&&!=&/span& &span class=&o&&-&/span&&span class=&mi&&32768&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&c&/span& &span class=&o&&+=&/span& &span class=&mi&&1&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&((!&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&o&/span&&span class=&o&&.&/span&&span class=&na&&C&/span&&span class=&o&&)&/span& &span class=&o&&&&&/span& &span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&c&/span& &span class=&o&&&=&/span& &span class=&mi&&6000&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&n&&H&/span&&span class=&o&&();&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&kd&&private&/span& &span class=&kt&&void&/span& &span class=&nf&&v&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&for&/span& &span class=&o&&(&/span&&span class=&n&&aap&/span& &span class=&n&&localaap&/span& &span class=&o&&:&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&o&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&n&&aap&/span&&span class=&o&&.&/span&&span class=&na&&class&/span&&span class=&o&&,&/span& &span class=&n&&aL&/span&&span class=&o&&().&/span&&span class=&na&&b&/span&&span class=&o&&(&/span&&span class=&mf&&0.5&/span&&span class=&n&&D&/span&&span class=&o&&,&/span& &span class=&mf&&0.0&/span&&span class=&n&&D&/span&&span class=&o&&,&/span& &span class=&mf&&0.5&/span&&span class=&n&&D&/span&&span class=&o&&)))&/span& &span class=&o&&{&/span&
&span class=&n&&a&/span&&span class=&o&&(&/span&&span class=&n&&localaap&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&kd&&private&/span& &span class=&kt&&boolean&/span& &span class=&nf&&a&/span&&span class=&o&&(&/span&&span class=&n&&aap&/span& &span class=&n&&paramaap&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&paramaap&/span& &span class=&o&&==&/span& &span class=&k&&this&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&((!&/span&&span class=&n&&paramaap&/span&&span class=&o&&.&/span&&span class=&na&&ad&/span&&span class=&o&&())&/span& &span class=&o&&||&/span& &span class=&o&&(!&/span&&span class=&n&&ad&/span&&span class=&o&&()))&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&n&&aio&/span& &span class=&n&&localaio1&/span& &span class=&o&&=&/span& &span class=&n&&k&/span&&span class=&o&&();&/span&
&span class=&n&&aio&/span& &span class=&n&&localaio2&/span& &span class=&o&&=&/span& &span class=&n&&paramaap&/span&&span class=&o&&.&/span&&span class=&na&&k&/span&&span class=&o&&();&/span&
&span class=&k&&if&/span& &span class=&o&&((&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&==&/span& &span class=&mi&&32767&/span&&span class=&o&&)&/span& &span class=&o&&||&/span& &span class=&o&&(&/span&&span class=&n&&paramaap&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&==&/span& &span class=&mi&&32767&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&((&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&c&/span& &span class=&o&&==&/span& &span class=&o&&-&/span&&span class=&mi&&32768&/span&&span class=&o&&)&/span& &span class=&o&&||&/span& &span class=&o&&(&/span&&span class=&n&&paramaap&/span&&span class=&o&&.&/span&&span class=&na&&c&/span& &span class=&o&&==&/span& &span class=&o&&-&/span&&span class=&mi&&32768&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&localaio2&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&()&/span& &span class=&o&&!=&/span& &span class=&n&&localaio1&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&())&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&((&/span&&span class=&n&&localaio2&/span&&span class=&o&&.&/span&&span class=&na&&n&/span&&span class=&o&&()&/span& &span class=&o&&^&/span& &span class=&n&&localaio1&/span&&span class=&o&&.&/span&&span class=&na&&n&/span&&span class=&o&&()))&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&((&/span&&span class=&n&&localaio2&/span&&span class=&o&&.&/span&&span class=&na&&n&/span&&span class=&o&&())&/span& &span class=&o&&&&&/span& &span class=&o&&(!&/span&&span class=&n&&localaio2&/span&&span class=&o&&.&/span&&span class=&na&&o&/span&&span class=&o&&().&/span&&span class=&na&&equals&/span&&span class=&o&&(&/span&&span class=&n&&localaio1&/span&&span class=&o&&.&/span&&span class=&na&&o&/span&&span class=&o&&())))&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&localaio2&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&()&/span& &span class=&o&&==&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&((&/span&&span class=&n&&localaio2&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&().&/span&&span class=&na&&k&/span&&span class=&o&&())&/span& &span class=&o&&&&&/span& &span class=&o&&(&/span&&span class=&n&&localaio2&/span&&span class=&o&&.&/span&&span class=&na&&i&/span&&span class=&o&&()&/span& &span class=&o&&!=&/span& &span class=&n&&localaio1&/span&&span class=&o&&.&/span&&span class=&na&&i&/span&&span class=&o&&()))&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&localaio2&/span&&span class=&o&&.&/span&&span class=&na&&b&/span& &span class=&o&&&&/span& &span class=&n&&localaio1&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&n&&paramaap&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&localaio2&/span&&span class=&o&&.&/span&&span class=&na&&b&/span& &span class=&o&&+&/span& &span class=&n&&localaio1&/span&&span class=&o&&.&/span&&span class=&na&&b&/span& &span class=&o&&&&/span& &span class=&n&&localaio2&/span&&span class=&o&&.&/span&&span class=&na&&c&/span&&span class=&o&&())&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&n&&localaio2&/span&&span class=&o&&.&/span&&span class=&na&&b&/span& &span class=&o&&+=&/span& &span class=&n&&localaio1&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&;&/span&
&span class=&n&&paramaap&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&=&/span& &span class=&n&&Math&/span&&span class=&o&&.&/span&&span class=&na&&max&/span&&span class=&o&&(&/span&&span class=&n&&paramaap&/span&&span class=&o&&.&/span&&span class=&na&&d&/span&&span class=&o&&,&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span&&span class=&o&&);&/span&
&span class=&n&&paramaap&/span&&span class=&o&&.&/span&&span class=&na&&c&/span& &span class=&o&&=&/span& &span class=&n&&Math&/span&&span class=&o&&.&/span&&span class=&na&&min&/span&&span class=&o&&(&/span&&span class=&n&&paramaap&/span&&span class=&o&&.&/span&&span class=&na&&c&/span&&span class=&o&&,&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&c&/span&&span class=&o&&);&/span&
&span class=&n&&paramaap&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&n&&localaio2&/span&&span class=&o&&);&/span&
&span class=&n&&H&/span&&span class=&o&&();&/span&
&span class=&k&&return&/span& &span class=&kc&&true&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&i&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&c&/span& &span class=&o&&=&/span& &span class=&mi&&4800&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&boolean&/span& &span class=&nf&&T&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&o&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&n&&aL&/span&&span class=&o&&(),&/span& &span class=&n&&big&/span&&span class=&o&&.&/span&&span class=&na&&h&/span&&span class=&o&&,&/span& &span class=&k&&this&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&kd&&protected&/span& &span class=&kt&&void&/span& &span class=&nf&&f&/span&&span class=&o&&(&/span&&span class=&kt&&int&/span& &span class=&n&&paramInt&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&a&/span&&span class=&o&&(&/span&&span class=&n&&ua&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&,&/span& &span class=&n&&paramInt&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&boolean&/span& &span class=&nf&&a&/span&&span class=&o&&(&/span&&span class=&n&&ua&/span& &span class=&n&&paramua&/span&&span class=&o&&,&/span& &span class=&kt&&float&/span& &span class=&n&&paramFloat&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&b&/span&&span class=&o&&(&/span&&span class=&n&&paramua&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&((&/span&&span class=&n&&k&/span&&span class=&o&&()&/span& &span class=&o&&!=&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&o&&&&&/span& &span class=&o&&(&/span&&span class=&n&&k&/span&&span class=&o&&().&/span&&span class=&na&&b&/span&&span class=&o&&()&/span& &span class=&o&&==&/span& &span class=&n&&aip&/span&&span class=&o&&.&/span&&span class=&na&&bU&/span&&span class=&o&&)&/span& &span class=&o&&&&&/span& &span class=&o&&(&/span&&span class=&n&&paramua&/span&&span class=&o&&.&/span&&span class=&na&&c&/span&&span class=&o&&()))&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&n&&X&/span&&span class=&o&&();&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&e&/span& &span class=&o&&=&/span& &span class=&o&&((&/span&&span class=&kt&&int&/span&&span class=&o&&)&/span& &span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&e&/span& &span class=&o&&-&/span& &span class=&n&&paramFloat&/span&&span class=&o&&));&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&e&/span& &span class=&o&&&=&/span& &span class=&mi&&0&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&H&/span&&span class=&o&&();&/span&
&span class=&o&&}&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&b&/span&&span class=&o&&(&/span&&span class=&n&&eu&/span& &span class=&n&&parameu&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&s&&&Health&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&kt&&short&/span&&span class=&o&&)&/span& &span class=&o&&(&/span&&span class=&kt&&byte&/span&&span class=&o&&)&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&e&/span&&span class=&o&&);&/span&
&span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&s&&&Age&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&kt&&short&/span&&span class=&o&&)&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&c&/span&&span class=&o&&);&/span&
&span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&s&&&PickupDelay&&/span&&span class=&o&&,&/span& &span class=&o&&(&/span&&span class=&kt&&short&/span&&span class=&o&&)&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span&&span class=&o&&);&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&m&/span&&span class=&o&&()&/span& &span class=&o&&!=&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&s&&&Thrower&&/span&&span class=&o&&,&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&f&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&l&/span&&span class=&o&&()&/span& &span class=&o&&!=&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&s&&&Owner&&/span&&span class=&o&&,&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&g&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&k&/span&&span class=&o&&()&/span& &span class=&o&&!=&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&s&&&Item&&/span&&span class=&o&&,&/span& &span class=&n&&k&/span&&span class=&o&&().&/span&&span class=&na&&b&/span&&span class=&o&&(&/span&&span class=&k&&new&/span& &span class=&n&&eu&/span&&span class=&o&&()));&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&a&/span&&span class=&o&&(&/span&&span class=&n&&eu&/span& &span class=&n&&parameu&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&e&/span& &span class=&o&&=&/span& &span class=&o&&(&/span&&span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&e&/span&&span class=&o&&(&/span&&span class=&s&&&Health&&/span&&span class=&o&&)&/span& &span class=&o&&&&/span& &span class=&mh&&0xFF&/span&&span class=&o&&);&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&c&/span& &span class=&o&&=&/span& &span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&e&/span&&span class=&o&&(&/span&&span class=&s&&&Age&&/span&&span class=&o&&);&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&c&/span&&span class=&o&&(&/span&&span class=&s&&&PickupDelay&&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&=&/span& &span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&e&/span&&span class=&o&&(&/span&&span class=&s&&&PickupDelay&&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&c&/span&&span class=&o&&(&/span&&span class=&s&&&Owner&&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&g&/span& &span class=&o&&=&/span& &span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&j&/span&&span class=&o&&(&/span&&span class=&s&&&Owner&&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&c&/span&&span class=&o&&(&/span&&span class=&s&&&Thrower&&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&f&/span& &span class=&o&&=&/span& &span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&j&/span&&span class=&o&&(&/span&&span class=&s&&&Thrower&&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&n&&eu&/span& &span class=&n&&localeu&/span& &span class=&o&&=&/span& &span class=&n&&parameu&/span&&span class=&o&&.&/span&&span class=&na&&m&/span&&span class=&o&&(&/span&&span class=&s&&&Item&&/span&&span class=&o&&);&/span&
&span class=&n&&a&/span&&span class=&o&&(&/span&&span class=&n&&aio&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&n&&localeu&/span&&span class=&o&&));&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&k&/span&&span class=&o&&()&/span& &span class=&o&&==&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&H&/span&&span class=&o&&();&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&d&/span&&span class=&o&&(&/span&&span class=&n&&adq&/span& &span class=&n&&paramadq&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&o&/span&&span class=&o&&.&/span&&span class=&na&&C&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&n&&aio&/span& &span class=&n&&localaio&/span& &span class=&o&&=&/span& &span class=&n&&k&/span&&span class=&o&&();&/span&
&span class=&kt&&int&/span& &span class=&n&&i&/span& &span class=&o&&=&/span& &span class=&n&&localaio&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&;&/span&
&span class=&k&&if&/span& &span class=&o&&((&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&==&/span& &span class=&mi&&0&/span&&span class=&o&&)&/span& &span class=&o&&&&&/span& &span class=&o&&((&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&g&/span& &span class=&o&&==&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&o&&||&/span& &span class=&o&&(&/span&&span class=&mi&&6000&/span& &span class=&o&&-&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&c&/span& &span class=&o&&&=&/span& &span class=&mi&&200&/span&&span class=&o&&)&/span& &span class=&o&&||&/span& &span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&g&/span&&span class=&o&&.&/span&&span class=&na&&equals&/span&&span class=&o&&(&/span&&span class=&n&&paramadq&/span&&span class=&o&&.&/span&&span class=&na&&b_&/span&&span class=&o&&())))&/span& &span class=&o&&&&&/span& &span class=&o&&(&/span&&span class=&n&&paramadq&/span&&span class=&o&&.&/span&&span class=&na&&bg&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&n&&localaio&/span&&span class=&o&&)))&/span& &span class=&o&&{&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&localaio&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&()&/span& &span class=&o&&==&/span& &span class=&n&&ahw&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&n&&apg&/span&&span class=&o&&.&/span&&span class=&na&&r&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&n&&paramadq&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&(&/span&&span class=&n&&rl&/span&&span class=&o&&.&/span&&span class=&na&&g&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&localaio&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&()&/span& &span class=&o&&==&/span& &span class=&n&&ahw&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&n&&apg&/span&&span class=&o&&.&/span&&span class=&na&&s&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&n&&paramadq&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&(&/span&&span class=&n&&rl&/span&&span class=&o&&.&/span&&span class=&na&&g&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&localaio&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&()&/span& &span class=&o&&==&/span& &span class=&n&&aip&/span&&span class=&o&&.&/span&&span class=&na&&aA&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&paramadq&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&(&/span&&span class=&n&&rl&/span&&span class=&o&&.&/span&&span class=&na&&t&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&localaio&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&()&/span& &span class=&o&&==&/span& &span class=&n&&aip&/span&&span class=&o&&.&/span&&span class=&na&&i&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&paramadq&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&(&/span&&span class=&n&&rl&/span&&span class=&o&&.&/span&&span class=&na&&w&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&localaio&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&()&/span& &span class=&o&&==&/span& &span class=&n&&aip&/span&&span class=&o&&.&/span&&span class=&na&&bq&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&paramadq&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&(&/span&&span class=&n&&rl&/span&&span class=&o&&.&/span&&span class=&na&&A&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&if&/span& &span class=&o&&((&/span&&span class=&n&&localaio&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&()&/span& &span class=&o&&==&/span& &span class=&n&&aip&/span&&span class=&o&&.&/span&&span class=&na&&i&/span&&span class=&o&&)&/span& &span class=&o&&&&&/span& &span class=&o&&(&/span&&span class=&n&&m&/span&&span class=&o&&()&/span& &span class=&o&&!=&/span& &span class=&kc&&null&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&n&&adq&/span& &span class=&n&&localadq&/span& &span class=&o&&=&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&o&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&n&&m&/span&&span class=&o&&());&/span&
&span class=&k&&if&/span& &span class=&o&&((&/span&&span class=&n&&localadq&/span& &span class=&o&&!=&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&o&&&&&/span& &span class=&o&&(&/span&&span class=&n&&localadq&/span& &span class=&o&&!=&/span& &span class=&n&&paramadq&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&n&&localadq&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&(&/span&&span class=&n&&rl&/span&&span class=&o&&.&/span&&span class=&na&&x&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&o&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&n&&paramadq&/span&&span class=&o&&,&/span& &span class=&s&&&random.pop&&/span&&span class=&o&&,&/span& &span class=&mf&&0.2&/span&&span class=&n&&F&/span&&span class=&o&&,&/span& &span class=&o&&((&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&V&/span&&span class=&o&&.&/span&&span class=&na&&nextFloat&/span&&span class=&o&&()&/span& &span class=&o&&-&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&V&/span&&span class=&o&&.&/span&&span class=&na&&nextFloat&/span&&span class=&o&&())&/span& &span class=&o&&*&/span& &span class=&mf&&0.7&/span&&span class=&n&&F&/span& &span class=&o&&+&/span& &span class=&mf&&1.0&/span&&span class=&n&&F&/span&&span class=&o&&)&/span& &span class=&o&&*&/span& &span class=&mf&&2.0&/span&&span class=&n&&F&/span&&span class=&o&&);&/span&
&span class=&n&&paramadq&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&,&/span& &span class=&n&&i&/span&&span class=&o&&);&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&localaio&/span&&span class=&o&&.&/span&&span class=&na&&b&/span& &span class=&o&&&=&/span& &span class=&mi&&0&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&H&/span&&span class=&o&&();&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&n&&String&/span& &span class=&nf&&b_&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&i_&/span&&span class=&o&&())&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&n&&aG&/span&&span class=&o&&();&/span&
&span class=&o&&}&/span&
&span class=&k&&return&/span& &span class=&n&&eq&/span&&span class=&o&&.&/span&&span class=&na&&a&/span&&span class=&o&&(&/span&&span class=&s&&&item.&&/span& &span class=&o&&+&/span& &span class=&n&&k&/span&&span class=&o&&().&/span&&span class=&na&&a&/span&&span class=&o&&());&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&boolean&/span& &span class=&nf&&az&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&c&/span&&span class=&o&&(&/span&&span class=&kt&&int&/span& &span class=&n&&paramInt&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&kd&&super&/span&&span class=&o&&.&/span&&span class=&na&&c&/span&&span class=&o&&(&/span&&span class=&n&&paramInt&/span&&span class=&o&&);&/span&
&span class=&k&&if&/span& &span class=&o&&(!&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&o&/span&&span class=&o&&.&/span&&span class=&na&&C&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&v&/span&&span class=&o&&();&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&n&&aio&/span& &span class=&nf&&k&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&n&&aio&/span& &span class=&n&&localaio&/span& &span class=&o&&=&/span& &span class=&n&&F&/span&&span class=&o&&().&/span&&span class=&na&&f&/span&&span class=&o&&(&/span&&span class=&mi&&10&/span&&span class=&o&&);&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&localaio&/span& &span class=&o&&==&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&o&/span& &span class=&o&&!=&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&b&/span&&span class=&o&&.&/span&&span class=&na&&error&/span&&span class=&o&&(&/span&&span class=&s&&&Item entity &&/span& &span class=&o&&+&/span& &span class=&n&&D&/span&&span class=&o&&()&/span& &span class=&o&&+&/span& &span class=&s&&& has no item?!&&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&return&/span& &span class=&k&&new&/span& &span class=&n&&aio&/span&&span class=&o&&(&/span&&span class=&n&&apg&/span&&span class=&o&&.&/span&&span class=&na&&b&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&k&&return&/span& &span class=&n&&localaio&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&a&/span&&span class=&o&&(&/span&&span class=&n&&aio&/span& &span class=&n&&paramaio&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&F&/span&&span class=&o&&().&/span&&span class=&na&&b&/span&&span class=&o&&(&/span&&span class=&mi&&10&/span&&span class=&o&&,&/span& &span class=&n&&paramaio&/span&&span class=&o&&);&/span&
&span class=&n&&F&/span&&span class=&o&&().&/span&&span class=&na&&h&/span&&span class=&o&&(&/span&&span class=&mi&&10&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&n&&String&/span& &span class=&nf&&l&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&g&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&a&/span&&span class=&o&&(&/span&&span class=&n&&String&/span& &span class=&n&&paramString&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&g&/span& &span class=&o&&=&/span& &span class=&n&&paramString&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&n&&String&/span& &span class=&nf&&m&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&f&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&c&/span&&span class=&o&&(&/span&&span class=&n&&String&/span& &span class=&n&&paramString&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&f&/span& &span class=&o&&=&/span& &span class=&n&&paramString&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&o&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&=&/span& &span class=&mi&&10&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&p&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&q&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&=&/span& &span class=&mi&&32767&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&a&/span&&span class=&o&&(&/span&&span class=&kt&&int&/span& &span class=&n&&paramInt&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&=&/span& &span class=&n&&paramInt&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&boolean&/span& &span class=&nf&&r&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&d&/span& &span class=&o&&&&/span& &span class=&mi&&0&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&t&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&c&/span& &span class=&o&&=&/span& &span class=&o&&-&/span&&span class=&mi&&6000&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&u&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&n&&q&/span&&span class=&o&&();&/span&
&span class=&k&&this&/span&&span class=&o&&.&/span&&span class=&na&&c&/span& &span class=&o&&=&/span& &span class=&mi&&5999&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&&br&&figure&&img src=&https://pic4.zhimg.com/717edd1f188f80bcb169fbeb9b53b883_b.jpg& data-rawwidth=&48& data-rawheight=&48& class=&content_image& width=&48&&&/figure&&br&能猜得出来算你狠。&br&&br&于是,&b&虽然 SMP 的第三方修改成为可能,但基本没有服主会闲的蛋疼去玩这个。&/b&除了代码被混淆之外,由于 Minecraft 长期都是 Notch 一个人开发,所以&b&内部的业务逻辑也写得很乱&/b&,或者说实在太有 Notch 特立独行的代码风格了,窝们实在猜不粗来呀!&br&&br&&figure&&img src=&https://pic1.zhimg.com/f03a0c95d0ff5c1dc0dc38_b.jpg& data-rawwidth=&137& data-rawheight=&87& class=&content_image& width=&137&&&/figure&&i&Notch 表示:“你丫反编译我的代码还瞎逼逼”(设计对白)&/i&&br&&br&不过就是有些人点错天赋了,就在 SMP 发布后没多久的 2010 年年底,一位叫 hey0 的大神在自己的个人网站上发布了 hMod。&b&hMod 一出,激起千层浪,众人纷纷惊呼:民间奇才!&/b&&br&&br&hMod 是个什么玩意儿?我尽量简单地解释一下。以往的 SMP modding 模式(也就是上面提到的,直接修改源代码),我们画个流程图出来:&br&&br&&figure&&img src=&https://pic4.zhimg.com/de999b48b51faf02cc3c1b86f5fef37b_b.jpg& data-rawwidth=&499& data-rawheight=&634& class=&origin_image zh-lightbox-thumb& width=&499& data-original=&https://pic4.zhimg.com/de999b48b51faf02cc3c1b86f5fef37b_r.jpg&&&/figure&&br&hMod 的原理,就是将那些不可读的代码,通过 hey0 君敏锐的观察能力,&b&“翻译”成可读而清晰明了的东西。&/b&&br&&br&&figure&&img src=&https://pic2.zhimg.com/593a80f5f7ece7f6f2e1_b.jpg& data-rawwidth=&512& data-rawheight=&984& class=&origin_image zh-lightbox-thumb& width=&512& data-original=&https://pic2.zhimg.com/593a80f5f7ece7f6f2e1_r.jpg&&&/figure&&br&还记得刚才那堆乱七八糟的代码吗?有兴趣的同学可以自行阅读“翻译”过后的&a href=&//link.zhihu.com/?target=https%3A//github.com/traitor/Minecraft-Server-Mod/blob/master/src/Item.java& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&代码&/a&。&br&&br&&i&(“翻译”这词实际上并不准确,实际上 hMod 是对 SMP 的半封装,详细的技术细节在此略过。)&/i&&br&&br&&figure&&img src=&https://pic3.zhimg.com/72f4b584b268eeba41cc296b33bcf226_b.jpg& data-rawwidth=&72& data-rawheight=&68& class=&content_image& width=&72&&&/figure&&br&这实在太伟大了!要在服务器上加入自己原创的内容,顿时简单了起来。&br&&br&&figure&&img src=&https://pic2.zhimg.com/d1e64baeb63dfa580f10c29_b.jpg& data-rawwidth=&198& data-rawheight=&190& class=&content_image& width=&198&&&/figure&&br&不过如此伟大的 hMod 更新了几个月,原作者就突然潜水,小道消息是说回老家结婚去了,然后由另一位现已就职 Mojang 的大神 Dinnerbone 继续填坑。还没填到一半 Dinnerbone 就不干了:靠,代码真乱!于是拉上几个志同道合的同志一起推翻重做,扛起“翻译”的任务,&b&Bukkit 计划就这么诞生了。&/b&&br&&br&&br&&br&&b&// Bukkit 时代(2011 ~ 2014)&/b&&br&&br&&br&&br&Bukkit 计划实际上分为两部分:Bukkit API 和 CraftBukkit。废话不多说,我们再画个流程图:&br&&br&&figure&&img src=&https://pic3.zhimg.com/3bfe9cb5bbe1bb0190872_b.jpg& data-rawwidth=&512& data-rawheight=&914& class=&origin_image zh-lightbox-thumb& width=&512& data-original=&https://pic3.zhimg.com/3bfe9cb5bbe1bb0190872_r.jpg&&&/figure&&br&原理和 hMod 是一样的,但 Bukkit API 写得更好之余,最重要的成就就是加入了&b&事件系统&/b&,不过这个话题说下去完全可以另起炉灶了,所以咱们暂且跳过。&br&&br&&figure&&img src=&https://pic2.zhimg.com/abf128b5d9ed510b45f9_b.jpg& data-rawwidth=&59& data-rawheight=&57& class=&content_image& width=&59&&&/figure&&br&好了我知道你们都在吐槽上面的魔法是什么鬼,那么我尽量简单讲一讲,没有面向对象编程基础的同学可以跳过下面这几段。&br&&br&&blockquote&Bukkit API 里全部都是抽象的类与方法,打个比方有个方法叫 getOnlinePlayers(),返回当前玩家数量。&br&&br&为什么要抽象?为什么我们不直接整合实现(implementation)?比如我发现下面这行代码就可以返回当前玩家数量,这不搞定了吗,分两步干嘛。&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&n&&aJ&/span&&span class=&o&&.&/span&&span class=&na&&e&/span&&span class=&o&&();&/span&
&/code&&/pre&&/div&&br&问题是我们的这行代码的基础,是通过破解 Minecraft SMP 的源代码对吧?更准确的说,是&b&通过破解 Minecraft SMP 当前版本的源代码&/b&作为基础。而代码混淆这个过程,是每个版本都会重新进行一次的。上面那行代码或许在 Minecraft SMP 1.7 能用,但到 1.8,可能就完全报错了。因为或许在 1.8 里,要获取当前玩家数量的代码是这样的:&br&&div class=&highlight&&&pre&&code class=&language-text&&b.aX();
&/code&&/pre&&/div&&br&&b&所以,&/b&&b&在 Bukkit API 的部分里,这个方法是抽象的,留给相应版本的 CraftBukkit 去实现。&/b&并且这么一来,有了抽象的接口作为参考,新版本的 SMP 发布时,Bukkit 团队也能更方便地更新 CraftBukkit。&br&&br&在这里也顺便吐槽一下,常常见到有人说用 Bukkit 开服,其实是错的 —— Bukkit 里全是抽象的接口而已,开个鬼啊。&b&正确的说法是用 CraftBukkit 开服(其他服务器端另计)。&/b&所以下次你见到谁跟你炫耀说“我会用 Bukkit 开服务器你造吗”,记得高大上的回他一句:“乖,那个叫 CraftBukkit。跟我读,科阿哇夫特巴可以特。”&br&&br&&figure&&img src=&https://pic2.zhimg.com/9e4c6bb1d092fbaa4675_b.jpg& data-rawwidth=&377& data-rawheight=&247& class=&content_image& width=&377&&&/figure&&/blockquote&&br&好了话题扯远了,那么有了 Bukkit 能做些什么呢?能做的事太多了!比如用 Bukkit API 的自定义命令功能,加个叫 /launch 的命令,然后输入 /launch &谁谁谁& 就将目标玩家喷上天,&b&这无论在原生 Minecraft 里或者 SMP 里都是做不到的!&/b&&br&&br&&figure&&img src=&https://pic2.zhimg.com/20a0cfdefa8eb9cd3af2d_b.jpg& data-rawwidth=&1200& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&1200& data-original=&https://pic2.zhimg.com/20a0cfdefa8eb9cd3af2d_r.jpg&&&/figure&&i&效果请参见左下角~ 这些基于 Bukkit API 的小程序被统称为插件(plugin)&/i&&br&&br&好了,我知道你们又要吐槽了。&br&&br&&figure&&img src=&https://pic4.zhimg.com/dc3dfa2d92d9dd73f7f53f_b.jpg& data-rawwidth=&360& data-rawheight=&215& class=&content_image& width=&360&&&/figure&&br&当然不是!这种插件实在太肤浅了,&b&Bukkit API 真正最广泛的应用是用来开发小游戏(minigame)。&/b&你没听错,&b&在游戏里开发游戏!&/b&只要有足够的人力物力,依靠着 Bukkit API,要弄出个 Minecraft 版《无主之地》或者《使命召唤》是绝对可行的!&br&&br&&figure&&img src=&https://pic1.zhimg.com/abd16ed6fb040e_b.jpg& data-rawwidth=&1919& data-rawheight=&1009& class=&origin_image zh-lightbox-thumb& width=&1919& data-original=&https://pic1.zhimg.com/abd16ed6fb040e_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/510dee33aae70b97df6e0c_b.jpg& data-rawwidth=&1919& data-rawheight=&1000& class=&origin_image zh-lightbox-thumb& width=&1919& data-original=&https://pic1.zhimg.com/510dee33aae70b97df6e0c_r.jpg&&&/figure&&i&国外知名服务器 Hypixel 近日推出的新游戏 Warlords,武器到装备的模型都是完全自制的。Warlords 的核心玩法其实就是抢旗,但又加入了武器收集,附魔系统和角色系统等等,目前平均在线玩家 2000+,称其为小型 PvP 网游也绝不为过&/i&&br&&br&&figure&&img src=&https://pic4.zhimg.com/3c4df0e14d9b7ef64b97_b.jpg& data-rawwidth=&1896& data-rawheight=&1006& class=&origin_image zh-lightbox-thumb& width=&1896& data-original=&https://pic4.zhimg.com/3c4df0e14d9b7ef64b97_r.jpg&&&/figure&&i&&figure&&img src=&https://pic3.zhimg.com/dcd51caa4ddfa_b.jpg& data-rawwidth=&1918& data-rawheight=&1019& class=&origin_image zh-lightbox-thumb& width=&1918& data-original=&https://pic3.zhimg.com/dcd51caa4ddfa_r.jpg&&&/figure&毫不夸张地说,Warlords 甚至要比 Steam 上不少免费的 FPS 好玩;光是收集要素就足够吸引了!&/i&&br&&br&&figure&&img src=&https://pic1.zhimg.com/5ef5eacc5630_b.jpg& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic1.zhimg.com/5ef5eacc5630_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/a84f80c93b4f0d40caa88_b.jpg& data-rawwidth=&1920& data-rawheight=&1030& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic1.zhimg.com/a84f80c93b4f0d40caa88_r.jpg&&&/figure&&i&另一知名大服 Wynncraft,则主打 RPG 玩法,照搬了当今网络上 MMORPG 的很多元素:饶有趣味的任务,&/i&&i&广阔宏伟的地图,&/i&&i&专门刷经验升级的地城... 倒也弄得趣味横生&/i&&br&&br&我们还是先回到 2011 年,回到 Bukkit 刚刚发展起来的时候吧:那时大众对 Minecraft 多人游戏的概念,还只是停留在与好基友一起玩生存的程度。&b&真正将 Bukkit 计划推向大众视野的,当属在 2011 年发展起来的 MCSG(Minecraft Survival Games)服务器。&/b&听过《饥饿游戏》吧?熟悉里面的设定吧?而 MCSG,就是饥饿游戏在 Minecraft 的翻版:24 个玩家在开放式的地图里生存,到处开箱寻找物资,谁生存到最后就赢。SMP 可能也弄得出来,但是想做复杂一点,将箱子的物品完全随机化,或者将玩家数据保存在 mySQL 数据库里,又或者加入一堆炫目的技能,那是 SMP 绝不可及的。&b&而以上这一切,利用 Bukkit API,小 case 啦。&/b&&br&&br&&figure&&img src=&https://pic2.zhimg.com/7e949a2f14dc_b.jpg& data-rawwidth=&47& data-rawheight=&47& class=&content_image& width=&47&&&/figure&&br&当然 Survival Games 远远没有如今的 Warlords 吸引,但是在当年却可谓掀起了一阵 Minecraft 潮。在 YouTube 上实况大型服务器里游戏的实况主越来越多,&b&即使是如今已经超过千万订阅的 SkyDoesMinecraft&/b& —— 就是那个玩了 Flappy Bird 的小伙 —— &b&也是玩 Minecraft 发家的&/b&(好吧,这个看名字就知道)&b&。&/b&&br&&br&&br&&br&&br&&br&&br&&br&好了,我知道你看到这里有点无聊了。&b&所以下面重点来了!!&/b&&b&v(??ω??)????&/b&&br&&br&&br&&br&&br&&br&&br&&br&因为也是在 2011 年,一个名为 Buycraft 的东东进入了服主们的视野。Buycraft 是一个 CMS 系统,&b&服务器的玩家可以通过在前端用 Paypal 或者信用卡购买东西,来获得服务器上的增值服务。用 Minecraft 赚钱不再是梦!&/b&&br&&br&真是爆炸性的大新闻。&br&&br&&br&&br&&br&......&br&&br&&br&&br&&br&(超燃 BGM 响起)&br&&br&这岂止是爆炸性,简直是历史性!!!这不正是现在手游最喜欢加入的&b&课金系统&/b&吗?!!&br&&br&你嫌你的装备太差吗??&br&&br&你觉得打怪升级太慢吗???&br&&br&你羡慕那些满身神装的高富帅吗????&br&&br&&b&快来买 VIP 会员吧!!!!!!&/b&&br&&br&&figure&&img src=&https://pic1.zhimg.com/33b213c445d8c7f7b526eafc0f4eb398_b.jpg& data-rawwidth=&50& data-rawheight=&50& class=&content_image& width=&50&&&/figure&&br&&b&一个月只需 10 美刀,即可让你得到最尊贵的享受!!!!!!!!!!!&/b&&br&&br&&figure&&img src=&https://pic3.zhimg.com/6b9da54c8d6f5820a68de_b.jpg& data-rawwidth=&740& data-rawhei}

我要回帖

更多关于 我的世界新手 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信