Mods สำหรับเซิร์ฟเวอร์ Minecraft - มันทำงานอย่างไร?


9

เซิร์ฟเวอร์ Minecraft มาเป็นขวดเดียว mods พัฒนาขึ้นอย่างไร? พวกมันมีปฏิสัมพันธ์อย่างไรกับขวดดั้งเดิม? ภายใต้ประทุนมีอะไรบ้าง?

มีเทคโนโลยีใดบ้างที่เกี่ยวข้อง ฉันส่วนใหญ่เป็นคน C ++ / Python แต่ฉันต้องการเรียนรู้บางอย่างเกี่ยวกับการพัฒนา mods

คำตอบ:


11

JAR เป็นเพียงไฟล์ ZIP ที่มีไฟล์คลาสที่หลากหลายและข้อมูลเมตาอื่น ๆ ที่ใช้ซึ่งเป็นรูปแบบมาตรฐานที่สมบูรณ์

สามารถแตกไฟล์ ZIP และไฟล์คลาสสามารถแก้ไขได้ตามความจำเป็นสำหรับการแก้ไข จากนั้นไฟล์ที่ถูกแก้ไขจะถูกเพิ่มกลับเข้าไปในไฟล์เก็บถาวรซึ่งทำให้เซิร์ฟเวอร์ใช้ไฟล์ที่ถูกแก้ไขแทนที่จะเป็นไฟล์ดั้งเดิม

ในทางเทคนิคแล้ว Minecraft mods เป็นเวอร์ชั่นดั้งเดิมของการแฮ็กรหัสดั้งเดิมไฟล์คลาสไบนารีจริงจะต้องได้รับการแก้ไขเพื่อให้เกมรู้เกี่ยวกับสิ่งใหม่ ๆ ยังไม่มีการสนับสนุน mod อย่างเป็นทางการ (แม้ว่า Notch ระบุว่าจะใช้งานได้ในช่วงเบต้า)

แน่นอนว่านั่นไม่ใช่วิธีที่ดีในการทำสิ่งต่าง ๆ ถ้าคุณออกแบบ mods อย่างจริงจัง แต่คุณจะออกแบบสถาปัตยกรรมปลั๊กอินบางประเภทซึ่งอนุญาตให้โค้ดที่กำหนดเองทำงานตามความเหมาะสม วิธีที่คุณจะทำเกี่ยวกับสิ่งนี้ขึ้นอยู่กับสิ่งที่คุณต้องการให้ mods ของคุณสามารถทำได้ - เช่นถ้าความปลอดภัยเป็นเรื่องที่น่ากังวลคุณอาจต้องการออกแบบ mod interface ให้ใช้สคริปต์บางอย่างเพื่อให้คุณสามารถ จำกัด mod ได้ ทุกสิ่งในคอมพิวเตอร์ของผู้ใช้


นี่ไม่ใช่ความจริงทั้งหมด - ตัวอย่างเช่น McAdmin เขียนใน C #
BlueRaja - Danny Pflughoeft

@BlueRaja: MCAdmin ไม่ได้เป็น mod ในความคิดของฉัน - เป็นเซิร์ฟเวอร์แบบสแตนด์อะโลนที่กำหนดเอง แม้ว่ามันจะทำให้ลูกค้าสามารถทำสิ่งใหม่ ๆ ผ่านคำสั่งได้ แต่ฉันคิดว่าทั้งสองสิ่งนั้นแตกต่างกัน
Michael Madsen

ฮะ? ไม่มันเป็น mod อย่างแน่นอน มันเป็นเสื้อคลุมรอบ ๆ เซิร์ฟเวอร์ Minecraft มันต้องการเซิร์ฟเวอร์ minecraft เพื่อให้ทำงานได้ดังนั้นจึงไม่ใช่แบบสแตนด์อโลน ฉันดูที่แหล่งข้อมูลในเวลาสั้น ๆ และดูเหมือนว่าจะสกัดกั้นข้อความเครือข่ายและปรับเปลี่ยนให้เข้า / ออก
BlueRaja - Danny Pflughoeft

3
@ BlueRaja: Huh - ได้สาบานว่ามันเป็นเซิร์ฟเวอร์แบบสแตนด์อะโลน แต่แล้วอีกครั้งฉันยอมรับว่าฉันไม่เคยใช้มัน เป็นกรณีพิเศษเนื่องจากดูเหมือนว่าจะทำงานโดยทำหน้าที่เป็นพร็อกซีเซิร์ฟเวอร์ระหว่างผู้เล่นและเซิร์ฟเวอร์ ฉันยังคงไม่เรียกมันว่า mod แต่มันอาจเป็นฉัน
Michael Madsen

6

ผู้เล่นเดี่ยว mods ถูกแฮ็กของรหัสต้นฉบับ ตอนนี้ผู้เล่นหลายคนแตกต่างกัน พวกเขาเกือบทั้งหมดใช้ตัวห่อหุ้มเซิร์ฟเวอร์ของ hey0 ซึ่งลิงก์ใน minecraft_server.jar (หรือคำใดก็ตามที่อยู่ใน Java land) แต่กำหนดคลาสฟังก์ชั่นของตัวเองโอเวอร์โหลดบางส่วนของฟังก์ชั่นหลักและรัน main ()

Hey0 ให้พอควรAPI ดู


1

สำหรับข้อมูลของคุณ Mojang จะเปิดตัว "Mod API" ในอนาคตอันใกล้ (ในช่วงเบต้าดังนั้นก่อนที่จะมีการเปิดตัวอย่างเป็นทางการซึ่งจะประมาณเดือนพฤศจิกายน 2554)

ในความเป็นจริงมันจะเป็นซอร์สโค้ดแบบเต็มตามที่ระบุไว้ในบล็อกของ Notch

http://notch.tumblr.com/post/4955141617/the-plan-for-mods

แต่ตอนนี้คุณต้อง "decompile" jars เพื่อดูโค้ดที่ obfuscated บางส่วนและทำการคอมไพล์ใหม่เพื่อการใช้งาน / การดีบักในภายหลัง

ในการทำเช่นนี้ฉันขอแนะนำ Minecraft Coder's Pack http://mcp.ocean-labs.de/index.php/MCP_Releases

มีบทเรียนการ modding สองสามตัวในฟอรัมด้วยเช่นนี้: http://www.minecraftforum.net/topic/96862-creating-mods-modding-tutorials-21511/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.