📚Dispenser Plus

Advanced Tool Interaction System with Custom Durability and Protection Integration Version: 2.0 | Author: HoHighMa | API Version: 1.2


🎯 ภาพรวมปลั๊กอิน

DispenserPlus คือปลั๊กอินที่ขยายความสามารถของ Dispenser ใน Minecraft ให้สามารถใช้เครื่องมือต่างๆ เพื่อทำงานอัตโนมัติได้ เหมือนกับผู้เล่นใช้เครื่องมือด้วยตนเอง พร้อมระบบป้องกันเขตที่ครอบคลุม

✨ ฟีเจอร์เด่น

  • ระบบเครื่องมือครบครัน: Pickaxe, Axe, Hoe ทำงานได้ตามหลัก Vanilla

  • ระบบตัดไม้แบบ SmoothTimber: ตัดไม้ทั้งต้นด้วยขวานเพียงครั้งเดียว

  • ระบบป้องกันเขต: รองรับ Lands, Towny, WorldGuard

  • ระบบความทนทาน: จัดการ Durability แบบกำหนดเอง (ปิดการใช้งาน Unbreaking)

  • ระบบ Hotbar: เครื่องมือทำงานได้ทุกช่องใน Hotbar

  • ปลูกพืชอัตโนมัติ: Dispenser ปลูกพืชบน Farmland ได้

  • ระบบ Reload: โหลดค่าตั้งค่าใหม่โดยไม่ต้อง Restart Server


🛠️ ระบบหลักทั้งหมด

1️⃣ ระบบเครื่องมือ (Tool System)

Dispenser สามารถใช้เครื่องมือได้ 3 ประเภทหลัก:

🪓 Axe (ขวาน) Iron/Diamond/Netherite

  • ใช้งานได้:

    • ✅ ตัดไม้ (ตาม Tag.LOGS ของ Minecraft)

    • ✅ ตัดไม้ทั้งต้น (เมื่อเปิด Tree Chopping)

    • ✅ ทำงานจาก Hotbar ทุกช่อง

  • ใช้งานไม่ได้:

    • ❌ Strip Wood (ลอกเปลือกไม้)

    • ❌ เก็บเกี่ยว Wheat

    • ❌ ขุดหิน

Diamond Axe

⛏️ Pickaxe (อีเต้อ) Iron/Diamond/Netherite

  • ใช้งานได้:

    • ✅ ขุดหิน (ตามกฎ Vanilla)

    • ✅ ขุดดิน (ตามกฎ Vanilla)

    • ✅ ทำงานจาก Hotbar ทุกช่อง

  • ใช้งานไม่ได้:

    • ❌ เก็บเกี่ยว Wheat

    • ❌ ตัดไม้

    • ❌ Strip Wood

Diamond Pickaxe

🪴 Hoe (จอบ) Iron/Diamond/Netherite

  • ใช้งานได้:

    • ✅ ไถดิน (Till Dirt → Farmland)

    • ✅ เก็บเกี่ยว Wheat (เฉพาะ Hoe เท่านั้น)

    • ✅ ทำงานจาก Hotbar ทุกช่อง

  • ใช้งานไม่ได้:

    • ❌ ขุดบลอกอื่นๆ

    • ❌ ตัดไม้

Diamond Hoe

2️⃣ ระบบปลูกพืช (Planting System)

  • Dispenser + Farmland: วาง Dispenser เหนือ Farmland 1 บลอก → ปลูกพืชอัตโนมัติ

  • สูตร: Dispenser Height = Farmland + 1 block

  • รองรับ: Seeds (เมล็ดพืช), Saplings (ต้นไม้)

⚙️ CobbleStone Generator

Diamond Pickaxe

🌲 ระบบตัดไม้ (Tree Chopping System)

ระบบนี้เลียนแบบ SmoothTimber โดยใช้ Algorithm BFS เพื่อค้นหาบลอกไม้ที่เชื่อมต่อกัน:

⚙️ การตั้งค่า

🎯 การใช้งาน

  1. ใส่ Axe ใดๆ ใน Dispenser (ทุกช่อง Hotbar)

  2. ให้ Dispenser หันหน้าไปที่ Log (ไม้)

  3. ส่งสัญญาณ Redstone → Dispenser ตัดไม้ทั้งต้น

  4. ไม้ทั้งหมดดรอป + Axe ลด Durability

🚧 ข้อจำกัด

  • จำกัดบลอก: ป้องกันไม่ให้ตัดไม้ต้นใหญ่เกิน maxTreeBlocks (ป้องกัน Lag)

  • จำกัด Durability: ถ้า Axe มี Durability เหลือน้อย จะตัดได้เท่าที่ Durability เหลือ


🛡️ ระบบป้องกันเขต (Protection Integration)

🔐 ปลั๊กอินที่รองรับ

ปลั๊กอิน
API
คุณสมบัติ

Lands

LandsAPI 6.28.11

เปรียบเทียบ Land ID

Towny

TownyAPI 0.100.3.0

เปรียบเทียบ Town UUID

WorldGuard

WorldGuard 7.0.9

ตรวจสอบ Overlapping Regions

📋 หลักการทำงาน

🌍 WorldGuard - ระบบ Overlapping Regions

⚙️ การตั้งค่า

📌 ตัวอย่างการใช้งาน

✅ อนุญาต (Allowed)

❌ ไม่อนุญาต (Blocked)

✅ อนุญาต (Wilderness)


⚡ ระบบความทนทาน (Durability System)

🔧 กฎการทำงาน

⚙️ การตั้งค่า

📊 ตัวอย่างการคำนวณ

กรณี: ตัดไม้ 50 บลอก ด้วย Diamond Axe

กรณี: ตัดไม้ 150 บลอก ด้วย Stone Axe

กรณี: Axe ใกล้หมดอายุ


💻 คำสั่งและการใช้งาน

🎮 คำสั่งหลัก

🔑 Permissions

📋 ข้อมูลที่แสดงเมื่อ Reload


⚙️ การตั้งค่า (Configuration)

📄 ไฟล์ config.yml ฉบับเต็ม

🔄 การโหลดค่าใหม่


🏗️ ข้อมูลทางเทคนิค

📦 Dependencies

Maven Repositories

Dependencies List

📂 โครงสร้างโปรเจค

🔌 Plugin Metadata

🔨 Build Configuration


🧑‍💻 API สำหรับนักพัฒนา

🔧 ProtectionManager API

🌲 TreeLocator API

🛠️ DispenseEventHelpers API

🎯 Event Listener Examples


📊 ตารางสรุปคุณสมบัติ

เครื่องมือ vs การใช้งาน

เครื่องมือ
ขุดหิน
ขุดดิน
ตัดไม้
ตัดไม้ทั้งต้น
ไถดิน
เก็บ Wheat
Strip Wood

Pickaxe

Axe

Hoe

ปลั๊กอิน Protection vs API

ปลั๊กอิน
API Version
วิธีตรวจสอบ
Overlapping Regions

Lands

6.28.11

getLand().getId()

Towny

0.100.3.0

getTownOrNull().getUUID()

WorldGuard

7.0.9

ApplicableRegionSet

ระบบ vs สถานะ

ระบบ
สถานะ
ตั้งค่าได้
หมายเหตุ

Tree Chopping

✅ Enabled

BFS Algorithm

Protection Integration

✅ Enabled

3 ปลั๊กอิน

Durability System

✅ Enabled

Unbreaking = IGNORED

Hotbar System

✅ Enabled

ทำงานทุกช่อง

Reload Command

✅ Enabled

Permission: OP


🎓 คำแนะนำการใช้งาน

🌲 การตั้งค่าฟาร์มไม้อัตโนมัติ

🌾 การตั้งค่าฟาร์มข้าวอัตโนมัติ

🛡️ การตั้งค่าระบบป้องกันเขต


⚠️ ข้อควรระวัง

🚫 ข้อจำกัดที่สำคัญ

  1. Unbreaking Enchantment: ถูกปิดการใช้งานทั้งหมด → ทุกเครื่องมือลด Durability 1 ต่อครั้ง

  2. Cross-Region Interaction: ห้าม Dispenser ทำงานข้ามเขต (Edge Protection)

  3. Tree Block Limit: จำกัดด้วย maxTreeBlocks เพื่อป้องกัน Server Lag

  4. Tool Validation: เครื่องมือทำงานได้ตามกฎ Vanilla เท่านั้น (ไม่สามารถแก้ไขได้)

  5. Soft Dependencies: ปลั๊กอิน Protection เป็น Optional (ติดตั้งหรือไม่ก็ได้)

🔧 การแก้ปัญหา

ปัญหา
สาเหตุ
วิธีแก้

Dispenser ไม่ตัดไม้

enableTreeChopping: false

ตั้งเป็น true ใน config.yml

Dispenser ทำงานข้ามเขต

Protection ปิด

ตั้ง enableProtectionIntegration: true

เครื่องมือหายเร็ว

Durability ปกติ

Unbreaking ถูก IGNORE (ตามออกแบบ)

ตัดไม้ไม่ครบ

Tree > maxTreeBlocks

เพิ่มค่า maxTreeBlocks

Permission Denied

ไม่มีสิทธิ์ OP

ใช้ /op <player>


📞 ข้อมูลติดต่อ

ผู้พัฒนา: HoHighMa Version: 2.0 Minecraft Version: 1.21.8 API Version: 1.21 Build System: Maven JAR Size: 44.1 KB


📄 License & Credits

เครดิต

  • SmoothTimber: แรงบันดาลใจของระบบตัดไม้ (BFS Algorithm)

  • Spigot API: Minecraft Server API

  • Lands API: Land Protection System

  • Towny API: Town Management System

  • WorldGuard/WorldEdit: Region Protection System

ใบอนุญาต

ปลั๊กอินนี้พัฒนาขึ้นเพื่อการศึกษาและใช้งานส่วนตัว กรุณาตรวจสอบเงื่อนไขการใช้งานของแต่ละ Dependency API ที่ใช้งาน


🎉 ขอบคุณที่ใช้งาน DispenserPlus!

"Make Minecraft Automation Great Again with DispenserPlus"


Last Updated: November 20, 2025 Documentation Version: 1.0 Plugin Version: 2.0

Last updated