อัปเดตไปเซิร์ฟเวอร์เกม

ให้เซิร์ฟเวอร์ Minecraft มี mod ตรงกับ Instance ด้วยสคริปต์ตัวเล็กที่รันก่อนเปิดเซิร์ฟเวอร์ เลือกไฟล์แล้วกดยืนยัน

อัปเดตไปเซิร์ฟเวอร์คืออะไร

ผู้เล่นได้ไฟล์ของ Instance ผ่าน launcher อยู่แล้ว แต่เซิร์ฟเวอร์เกม Minecraft ของคุณต้องมี mod ชุดเดียวกัน (เฉพาะฝั่งเซิร์ฟเวอร์) ระบบนี้ช่วยให้เซิร์ฟเวอร์ มีไฟล์ตรงกับ Instance โดยไม่ต้องอัปโหลดซ้ำเอง มันทำงานแบบง่ายๆ ดังนี้

  • ในหน้า ไฟล์ กดปุ่ม อัปเดตไปเซิร์ฟเวอร์ จะเห็นว่ามีไฟล์ใหม่ ไฟล์ที่อัปเดต และไฟล์ที่ถูกลบ แล้วคุณเลือกและกดยืนยัน
  • เซิร์ฟเวอร์เกมมีสคริปต์ตัวเล็ก (dms-sync.sh) ที่รันก่อนเปิดเซิร์ฟเวอร์ สคริปต์ถามระบบว่าต้องมีไฟล์อะไร แล้วดาวน์โหลดหรือลบให้ตรง
  • เซิร์ฟเวอร์เปลี่ยนก็ต่อเมื่อคุณกดยืนยันเท่านั้น การอัปโหลดหรือลบไฟล์ใน Instance จะไม่แตะเซิร์ฟเวอร์เอง
เป็นตัวเลือก

ถ้าไม่ได้ตั้งค่าสคริปต์ ไม่มีอะไรเปลี่ยน Instance และ launcher ใช้งานได้ตามปกติ

ตั้งค่าครั้งแรก

  1. 1

    สร้าง key

    ในหน้า ไฟล์ กดปุ่ม อัปเดตไปเซิร์ฟเวอร์ (รูปเซิร์ฟเวอร์ที่มีฟันเฟือง) แล้วกด ตั้งค่าสคริปต์ และ สร้าง key key แสดงครั้งเดียวเก็บไว้เป็นความลับ ใช้ได้เฉพาะอ่านรายการไฟล์ของ Instance นี้และรายงานกลับ ไม่มีสิทธิ์อื่น ถ้าหาย สร้างใหม่ได้ (key เดิมจะใช้ไม่ได้ทันที)

  2. 2

    ติดตั้งสคริปต์บนเซิร์ฟเวอร์เกม

    เปิดโฟลเดอร์ของเซิร์ฟเวอร์เกม (ต้องมี bash และ curl ซึ่งเครื่อง Linux ส่วนใหญ่มีอยู่แล้ว) แล้วรันคำสั่งที่หน้าต่างให้ไว้ ซึ่งจะดาวน์โหลดสคริปต์และเก็บ key ไว้ในไฟล์ dms-sync.env ข้างๆ

  3. 3

    เรียกสคริปต์ก่อนเปิดเซิร์ฟเวอร์

    ใส่บรรทัดเรียกสคริปต์ไว้ในไฟล์ที่เปิดเซิร์ฟเวอร์ ก่อนคำสั่ง java:

    bash
    ./dms-sync.sh || echo "ซิงก์ไม่สำเร็จ เปิดด้วยไฟล์เดิม"
    java -jar server.jar nogui

    ถ้าสคริปต์ล้มเหลว (เช่น ไม่มีอินเทอร์เน็ต) เซิร์ฟเวอร์ยังเปิดต่อด้วยไฟล์ที่มีอยู่ ไม่ถูกขวาง

อยากลองก่อนโดยไม่เปลี่ยนอะไร ให้รัน DMS_DRY_RUN=1 ./dms-sync.sh สคริปต์จะบอกว่าจะทำอะไรแต่ไม่ทำจริง

เลือกไฟล์และยืนยัน

เมื่อกด อัปเดตไปเซิร์ฟเวอร์ ไฟล์ทุกไฟล์ของ Instance จะถูกจัดเป็นกลุ่ม ปุ่มจะมีตัวเลขบอกจำนวนรายการที่ยังรอตัดสินใจ

กลุ่มความหมายค่าเริ่มต้น
ไฟล์ใหม่ยังไม่เคยตัดสินใจ เซิร์ฟเวอร์เกมไม่ต้องการ mod ฝั่งผู้เล่นอย่าง shader หรือ minimap จึงต้องให้คุณเลือกไม่ติ๊ก
มีการอัปเดตmod ที่อยู่บนเซิร์ฟเวอร์แล้ว แต่ไฟล์ใน Instance เปลี่ยน (เช่น อัปเวอร์ชัน) ของเก่าถูกแทนที่ด้วยของใหม่ติ๊ก
จะถูกลบออกจากเซิร์ฟเวอร์เคยอยู่บนเซิร์ฟเวอร์ แต่ถูกลบจาก Instance แล้วติ๊ก
ตรงกันแล้วไฟล์ที่อยู่บนเซิร์ฟเวอร์และเป็นเวอร์ชันล่าสุดแล้ว (พับไว้) ติ๊กออกถ้าไม่ต้องการแล้วติ๊กไว้
ไม่เอาไว้บนเซิร์ฟเวอร์ไฟล์ที่เคยเลือกว่าใช้ฝั่งผู้เล่นอย่างเดียว (พับไว้) ติ๊กถ้าเปลี่ยนใจไม่ติ๊ก
  • สิ่งที่ตัดสินใจแล้วถูกจำไว้ ไฟล์ใหม่ที่คุณไม่ติ๊กถือว่าเป็นของฝั่งผู้เล่น และจะไม่ถามอีก ครั้งต่อไปจะถามเฉพาะสิ่งที่ใหม่หรือเปลี่ยนไป
  • ไฟล์ที่ผูกสิทธิ์ให้ผู้เล่นบางกลุ่ม (ดู สิทธิ์) ไม่ถูกส่งไปเซิร์ฟเวอร์
  • อัปเดตหรือลบที่ไม่ติ๊ก = รอไว้ก่อน ยังไม่เปลี่ยนอะไร และจะถามอีกครั้งหน้า
  • ไฟล์ที่มาจาก Modrinth จะมีป้าย เซิร์ฟเวอร์: ต้องมี / ใส่หรือไม่ก็ได้ / ไม่รองรับ เป็นคำแนะนำจาก Modrinth ว่า mod นี้ใช้ฝั่งเซิร์ฟเวอร์ได้ไหม ระบบไม่ติ๊กให้ คุณเป็นคนตัดสินใจเสมอ (ไฟล์ที่เพิ่มก่อนมีฟีเจอร์นี้อาจไม่มีป้าย)

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

เซิร์ฟเวอร์ที่มีไฟล์อยู่แล้ว (Initialize)

ถ้าเซิร์ฟเวอร์เกมมี mod อยู่ก่อนใช้ระบบนี้ ไม่ต้องติ๊กทีละไฟล์ ทุกครั้งที่สคริปต์ทำงาน มันจะอ่านอย่างเดียวว่าที่ path ของไฟล์ใน Instance (ที่ยังไม่เคยตัดสินใจ) มีไฟล์อะไรอยู่บนเซิร์ฟเวอร์ แล้วส่ง SHA-1 มาพร้อมรายงานปกติ ไม่ต้องขออะไรเพิ่ม ไม่ดาวน์โหลด ไม่แก้ ไม่ลบ ไฟล์ที่เคยอ่านแล้วและไม่เปลี่ยน (ขนาดและเวลาเท่าเดิม) ไม่ถูกคำนวณซ้ำ

  • ไฟล์ใหม่ที่เซิร์ฟเวอร์มีอยู่แล้วและ hash ตรงกัน จะถูกติ๊กให้อัตโนมัติ (เอาไว้บนเซิร์ฟเวอร์) ตั้งแต่เปิดหน้าต่าง
  • ไฟล์ที่ไม่มีบนเซิร์ฟเวอร์ หรือมีแต่เป็นอีกเวอร์ชัน จะไม่ถูกติ๊ก (ไม่เอาไว้บนเซิร์ฟเวอร์) แต่ละแถวบอกสถานะ: อยู่บนเซิร์ฟเวอร์แล้ว / เป็นเวอร์ชันอื่น / ยังไม่มี
  • ปุ่ม Initialize ติ๊กใหม่ตามไฟล์ที่เซิร์ฟเวอร์ส่งมาล่าสุด (ไฟล์ใหม่ที่ตรงกันติ๊ก ที่เหลือไม่ติ๊ก) หลังจากนั้นปรับได้ แล้วกด ยืนยัน ตามปกติ
  • ต้องใช้สคริปต์เวอร์ชัน 3 ขึ้นไป (ดาวน์โหลด dms-sync.sh ใหม่จากคำสั่งติดตั้ง) และเปิดเซิร์ฟเวอร์อย่างน้อยหนึ่งครั้งหลังอัปสคริปต์ สคริปต์เก่าส่งข้อมูลนี้ไม่ได้ ปุ่มจะกดไม่ได้จนกว่าจะมีข้อมูล
เปลี่ยนไฟล์แล้วยังไม่ได้กดยืนยันใหม่

ถ้าคุณกดยืนยันไปแล้ว แต่ก่อนเปิดเซิร์ฟเวอร์ไปเปลี่ยนหรือลบไฟล์นั้นใน Instance (ไฟล์เดิมใน Storage ถูกลบไปแล้ว) สคริปต์จะไม่มีไฟล์เวอร์ชันที่ยืนยันไว้ให้โหลด จึงบอกว่า waiting: ... is not confirmed again yet และไม่นับเป็นความล้มเหลว เซิร์ฟเวอร์เปิดต่อได้ตามปกติ ไฟล์ที่เซิร์ฟเวอร์มีอยู่แล้วยังอยู่ ไม่ถูกลบ แล้วเวอร์ชันใหม่จะเข้ามาหลังคุณกด ยืนยัน ใหม่ในหน้าต่าง "อัปเดตไปเซิร์ฟเวอร์" (ข้อความ "ซิงก์ไม่สำเร็จ เปิดด้วยไฟล์เดิม" จะขึ้นเฉพาะเมื่อสคริปต์จบด้วยรหัส 1 หรือ 2 จริงๆ เช่น key ผิด ไม่มีอินเทอร์เน็ต หรือไฟล์ที่โหลดมา SHA-1 ไม่ตรง)

สคริปต์ทำอะไรกับไฟล์ของเซิร์ฟเวอร์

  • ดาวน์โหลดเป็นไฟล์ชั่วคราว ตรวจ SHA-1 ให้ตรงก่อนจึงย้ายเข้าที่ ถ้าไม่ตรง ไฟล์เดิมยังอยู่ และสคริปต์บอกว่าล้มเหลว
  • ลบเฉพาะไฟล์ที่สคริปต์วางเอง (จดไว้ใน .dms-sync/managed) ที่ตอนนี้ไม่อยู่ในรายการแล้ว ไฟล์อื่นของคุณ โฟลเดอร์ world และ config ของเซิร์ฟเวอร์ไม่ถูกแตะ
  • ถ้ารายการที่ได้รับว่างเปล่า สคริปต์จะไม่ลบอะไรเลย (กันกรณีผิดพลาด)
  • path ที่พยายามออกนอกโฟลเดอร์ของเซิร์ฟเวอร์ถูกปฏิเสธ
  • ไฟล์ที่มีอยู่แล้วและตรงกับรายการ ถือเป็นของที่ถูกต้อง ไม่ดาวน์โหลดซ้ำ

ตัวแปรของสคริปต์

ตัวแปรความหมาย
DMS_APIที่อยู่ของระบบนี้ (ใส่ให้อัตโนมัติใน dms-sync.env)
DMS_KEYkey ของเซิร์ฟเวอร์ (เก็บเป็นความลับ)
DMS_DIRโฟลเดอร์ของเซิร์ฟเวอร์เกม (ค่าเริ่มต้นคือโฟลเดอร์ปัจจุบัน)
DMS_DRY_RUNตั้งเป็น 1 เพื่อดูว่าจะทำอะไรโดยไม่เปลี่ยนอะไร

รหัสที่สคริปต์ส่งกลับ: 0 สำเร็จ, 2 บางไฟล์อัปเดตไม่ได้ (ไฟล์อื่นเรียบร้อย), 1 ทำอะไรไม่ได้เลย (เช่น key ผิดหรือไม่มีอินเทอร์เน็ต)

เปลี่ยนหรือลบ key

เปิด ตั้งค่าสคริปต์ ในหน้าต่างเดิม สร้าง key ใหม่ ทำให้ key เดิมใช้ไม่ได้ทันที (ต้องเอา key ใหม่ไปใส่ใน dms-sync.env) ลบ key ทำให้สคริปต์ดึงรายการไม่ได้อีก ไฟล์ที่อยู่บนเซิร์ฟเวอร์ไม่ถูกลบ ใครก็ตามที่จัดการ Instance ได้สร้างและลบ key ได้

เอกสารต่างๆ

Term of servicePrivacy Policy

Dimension Studio

ไดแมนชั่น สตูดิโอ

ดิสคอร์ด :

Dimension Studio

เว็บไซต์ :

Dimension Studio

ยูทูป :

Dimension Studio

Copyright © 2024-2026 บริษัท เน็กชันนารี จำกัด (NEXIONARY Company Limited). All rights reserved.

ทะเบียนเลขที่ 50105568159679

Dimension Launcher ไม่มีส่วนเกี่ยวข้องกับ Mojang AB หรือ Microsoft Corporation