นี่คือการใช้งาน Minestom ของเกม Hypixel-SkyBlock ที่โฮสต์บนเซิร์ฟเวอร์ของฉันที่ discord.gg/theatlas การใช้งานนี้ยังใกล้จะเสร็จสมบูรณ์และยังไม่พร้อมสำหรับการผลิต ยังมีบางส่วนของโค้ดเบสที่ยุ่งเหยิงและไม่เป็นไปตามแนวปฏิบัติมาตรฐานของ Minestom ที่เหมาะสม
ไฮพิกเซล สกายบล็อค
การสร้าง HypixelSkyBlock ขึ้นมาใหม่ตั้งแต่ 1.8 ถึง 1.21 โดยใช้ Minestom โดยมีจุดประสงค์เพื่อให้มีโค้ดเบสที่เป็นนามธรรมและปรับขนาดได้อย่างเหมาะสม
ข่าวประชาสัมพันธ์
การเผยแพร่จะถูกปรับใช้อัตโนมัติเมื่อพุชไปยังหน้าการเผยแพร่ GitHub ซึ่งสามารถพบได้ที่นี่ การอัปเดตจะถูกส่งเป็นระยะภายในเซิร์ฟเวอร์ Discord ของฉันซึ่งอยู่ที่ discord.gg/theatlas
Javadocs
Javadocs สามารถพบได้ที่นี่
ข้อมูลจำเพาะของอุปกรณ์ที่แนะนำ
โปรเจ็กต์นี้ไม่ได้มีไว้สำหรับเซิร์ฟเวอร์ขนาดเล็ก และด้วยเหตุนี้ จึงต้องใช้ทรัพยากรในปริมาณที่เหมาะสมในการรัน ต่อไปนี้เป็นข้อกำหนดขั้นต่ำสำหรับการรันเซิร์ฟเวอร์นี้:
- RAM 16GB (4GB สำหรับ MongoDB, 12GB สำหรับเซิร์ฟเวอร์และบริการต่างๆ)
- 6 คอร์ (สำหรับมัลติเธรดที่เพียงพอ)
- พื้นที่เก็บข้อมูล 15GB
คู่มือการตั้งค่า
คุณสามารถดูวิดีโอของฉันเกี่ยวกับคำแนะนำได้ที่นี่
- ตรวจสอบให้แน่ใจว่าคุณมีคุณสมบัติตรงตามข้อกำหนดอุปกรณ์ที่แนะนำข้างต้น
- เริ่มบริการ MongoDB ทั้งภายในเครื่องหรือระยะไกล ดูคำแนะนำในการติดตั้งได้ที่นี่
- ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง
Java 21
SDK แล้ว - เริ่มเซิร์ฟเวอร์ Redis หากคุณใช้ Windows คุณสามารถเรียกใช้โปรแกรมติดตั้งได้ที่นี่
- ปฏิบัติตาม 'คู่มือการตั้งค่าพร็อกซี' ด้านล่าง (หมายเหตุ หากคุณต้องการใช้งานเซิร์ฟเวอร์ที่แคร็ก คุณต้องตั้งค่า "require-authentication" เป็น true ในการกำหนดค่าของคุณ)
- ปฏิบัติตาม 'คู่มือการตั้งค่าเซิร์ฟเวอร์เกม' ด้านล่าง (หมายเหตุ หากคุณต้องการใช้งานเซิร์ฟเวอร์ที่แคร็ก คุณต้องตั้งค่า "require-authentication" เป็น true ในการกำหนดค่าของคุณ)
- ปฏิบัติตาม 'คู่มือการตั้งค่าบริการ' ด้านล่าง
- ปฏิบัติตาม 'คู่มือการตั้งค่าชุดทรัพยากร' ด้านล่าง
- เพื่อให้ตัวเองเป็นผู้ดูแลระบบ ให้เข้าสู่ระบบและออกจากเซิร์ฟเวอร์ ไปที่เข็มทิศ MongoDB ของคุณ คลิกที่ Minestom -> ข้อมูล ค้นหาโปรไฟล์ของคุณและตั้งค่าอันดับของคุณเป็น "ผู้ดูแลระบบ" เข้าสู่ระบบอีกครั้งแล้วคุณจะได้รับมัน
คู่มือการตั้งค่าพร็อกซี
- ดาวน์โหลด 'SkyBlockProxy.jar' จากหน้าเผยแพร่ที่นี่
- ดาวน์โหลดพร็อกซี Velocity จากที่นี่
- ดาวน์โหลด
velocity.toml
จากที่นี่ และย้ายไปยังตำแหน่งที่คุณต้องการให้พร็อกซีเซิร์ฟเวอร์ของคุณทำงาน - ย้าย JAR พร็อกซี Velocity ของคุณไปยังโฟลเดอร์นั้นด้วย และรันพร็อกซีโดยใช้
java -jar velocity-3.3.0-SNAPSHOT-400.jar
เป็นคำสั่งในไดเร็กทอรีนั้น - ปิดพร็อกซีนี้เมื่อสร้าง
plugins
แล้ว เพียงกด CTRL + C
หรือปิด CMD Prompt - ย้าย
SkyBlockProxy.jar
จากก่อนหน้านี้ไปยังโฟลเดอร์ปลั๊กอิน - สร้างโฟลเดอร์ใหม่โดยที่
velocity.toml
ของคุณอยู่ และเรียกมันว่า configuration
- ดาวน์โหลด
resources.json
จากที่นี่ - ย้ายไฟล์นี้ไปยังโฟลเดอร์
configuration
ที่คุณเพิ่งสร้างขึ้น - เริ่มพร็อกซีอีกครั้งโดยใช้
java -jar velocity-3.3.0-SNAPSHOT-400.jar
จะต้องเปิดไว้เพื่อให้เซิร์ฟเวอร์เกมของคุณทำงานได้
คู่มือการตั้งค่าเซิร์ฟเวอร์เกม
- ดาวน์โหลด 'SkyBlockCore.jar' จากหน้าเผยแพร่ที่นี่
- สร้างโฟลเดอร์ชื่อ
configuration
ในไดเร็กทอรีเดียวกันกับไฟล์ JAR (โปรดทราบว่าควรวางสิ่งนี้ให้แตกต่างกับที่ที่พร็อกซีของคุณอยู่) - ดาวน์โหลด
resources.json
จากที่นี่ - ย้ายไฟล์นี้ไปยังโฟลเดอร์
configuration
ที่คุณเพิ่งสร้างขึ้น - ดาวน์โหลดไฟล์โลกสำหรับโลก Hub และ Island
- รับฮับ Hypixel SkyBlock จากการดาวน์โหลดด้านบนและวางไว้ในโฟลเดอร์การกำหนดค่าที่คุณสร้างภายใต้ชื่อ
hypixel_hub
- รับเทมเพลตเริ่มต้นของ Hypixel Island จากการดาวน์โหลดด้านบน และวางไว้ในโฟลเดอร์การกำหนดค่าที่คุณสร้างไว้ภายใต้ชื่อ
hypixel_island_template
- ควรมีไฟล์
forwarding.secret
ที่มี Velocity JAR ของคุณ นำไฟล์นี้ไปใส่ไว้ใน resources.json
ของคุณภายใต้ velocity-secret
- รัน jar โดยใช้
java -jar {Insert the JAR file} ISLAND
ซึ่งจะสร้างเซิร์ฟเวอร์ Island ที่จะเชื่อมโยงกับพร็อกซีที่ทำงานอยู่ของคุณ - หากต้องการสร้างเซิร์ฟเวอร์เกมอื่นๆ สำหรับเกาะอื่นๆ เพียงรันคำสั่งด้านบนอีกครั้ง แต่สำหรับประเภทเกาะที่แตกต่างกัน คุณสามารถดูประเภทที่เป็นไปได้ทั้งหมดได้ที่นี่
- ดาวน์โหลด
NanoLimbo-1.7-all.jar
จากที่นี่ และดาวน์โหลดไฟล์การกำหนดค่าจากที่เดียวกัน เริ่มต้นในพื้นหลังโดยใช้ java -jar NanoLimbo-1.7-all.jar
- ดาวน์โหลด
Minestom.regions.csv
จากที่นี่ และอัปโหลดไปยังคอลเลกชัน regions
ที่สร้างขึ้นใน Mongo ของคุณหลังจากเริ่มต้นเซิร์ฟเวอร์ เมื่อคุณทำสิ่งนี้แล้วให้รีสตาร์ทเซิร์ฟเวอร์ของคุณ - (ไม่บังคับ) หากคุณต้องการมีวิญญาณแห่งนางฟ้า ให้ดาวน์โหลด
Minestom.fairysouls.csv
จากที่นี่ และอัปโหลดไปยังคอลเลกชัน fairysouls
ที่สร้างใน Mongo ของคุณหลังจากเปิดเซิร์ฟเวอร์ เมื่อคุณทำสิ่งนี้แล้วให้รีสตาร์ทเซิร์ฟเวอร์ของคุณ - (ไม่บังคับ) หากคุณต้องการที่จะมี Hub crystals (คุณสามารถทำได้เพียงแค่
/addcrystal
) ให้ดาวน์โหลด Minestom.crystals.csv
จากที่นี่ และอัปโหลดไปยังคอลเลคชัน crystals
ที่สร้างขึ้นใน Mongo ของคุณหลังจากสตาร์ทเซิร์ฟเวอร์ เมื่อคุณทำสิ่งนี้แล้วให้รีสตาร์ทเซิร์ฟเวอร์ของคุณ - (ไม่บังคับ) หากคุณต้องการให้มีเพลงบนเซิร์ฟเวอร์ของคุณ ให้คัดลอกโฟลเดอร์
songs
จากที่นี่ และวางไว้ในโฟลเดอร์กำหนดค่าของคุณ
คู่มือการตั้งค่าบริการ
- เนื่องจากลักษณะของ SkyBlock อาจมีบริการที่หลากหลายที่จำเป็นต้องดำเนินการ ไปที่หน้าเผยแพร่ที่นี่ และดาวน์โหลดไฟล์ .JAR ใดๆ ที่ขึ้นต้นด้วย
Service
- ย้ายไฟล์ JAR เหล่านี้ไปยังไดเร็กทอรีเดียวกันกับเซิร์ฟเวอร์เกมของคุณ โดยจะแชร์การกำหนดค่า JSON กับบริการต่างๆ
- รันโดยใช้
java -jar {Insert the JAR file}
คู่มือการตั้งค่าชุดทรัพยากร
- ในการเตรียมการสำหรับ SkyBlock เวอร์ชัน 1 เรามีการตั้งค่าระบบแพ็คทรัพยากรอยู่แล้ว ในการเริ่มต้น ให้ดาวน์โหลด
SkyBlockPacker.jar
จากหน้าเผยแพร่ที่นี่ - ดาวน์โหลดโฟลเดอร์ pack_textures และ SkyBlockPack และย้ายไปยังตำแหน่งที่บรรจุหีบห่อ JAR อยู่
- รันแพ็คเกอร์ JAR โดยใช้
java -jar SkyBlockPacker.jar -v (Location of SkyBlockPack) -o (Output Directory) -t (Location of Pack Textures)
- เมื่อดำเนินการเสร็จสิ้น คุณควรมีชุดทรัพยากรในไดเร็กทอรีเอาต์พุตที่คุณระบุ เพียงใช้สิ่งนี้กับ Minecraft แล้วคุณก็พร้อมที่จะไป
ปัญหาทั่วไป
redis.clients.jedis.exceptions.JedisConnectionException: Failed to connect to any host resolved for DNS name.
=> Memurai ของคุณไม่ทำงาน
Preview features are not enabled for... Try running with '--enable-preview'
=> ลอง java --enable-preview -jar SkyBlockCore.jar {ServerType}
เครดิต
ขอขอบคุณ:
- ผู้คนที่น่ารักทุกคนใน Minestom ไม่ลงรอยกันที่นำความรู้ทั้งหมดของฉันเกี่ยวกับ API นี้มาด้วยตัวคนเดียว
- ตัวฉันและผู้มีส่วนร่วมคนอื่นๆ ซึ่งสามารถดูได้ในหน้า Git นี้