Name Hướng dẫn phát triển phần bổ sung máy phục vụ đầy đủ

Tên: Loại: : phút đọc

Mọi thứ bạn cần để bắt đầu xây dựng bổ sung máy chủ Hytale. Sách hướng dẫn này bao gồm thiết lập Java 25, Xe đạp phụ phí, hệ thống sự kiện đôi (AttaBus + ECS), đăng ký lệnh, thực thể, định dạng.json, và triển khai tới địa chỉ nguyền rủa.

Hệ thống bổ sung của máy chủ Holly cho phép các nhà phát triển kiểm soát sâu sắc mọi khía cạnh của trò chơi. Nếu bạn đã viết Bukkit hoặc Spigot bổ sung cho Minecraft, sự chuyển tiếp rất đơn giản - nhưng kiến trúc của Hytale về cơ bản thì khác nhau về cơ bản theo những cách quan trọng. Người hướng dẫn này hướng dẫn anh mọi thứ từ lần đầu tiên cho đến lúc triển khai. Dịch bởi Vũ Hạnh, Mai Linh Toàn cảnh. Trước khi viết bất kỳ mật mã, hãy hiểu cách Hytale di chuyển: Bồi Khách hàng là người biểu diễn. Khách hàng của Hytale's C# xử lý đồ họa, đầu vào và âm thanh — nhưng không có logic trò chơi. Tất cả các mô phỏng chạy trên máy chủ Java, ngay cả trong một người chơi đơn. Mọi thứ đều ở bên cạnh máy chủ. Khi người chơi tham gia vào một máy chủ nhúng, tài sản tùy chỉnh và hành vi luồng tự động. Không cần chỉnh sửa khách hàng. [li> 4 loại chuyển hóa tồn tại: Tài sản dữ liệu (JSON), Tài sản nghệ thuật (kiểu Blockbench), phần bổ sung máy phục vụ (Java), và Văn lệnh hiển thị (đến sớm). Bổ sung phục vụ là loại mạnh nhất — nó cho bạn quyền truy cập Java đầy đủ vào thời gian máy chủ chạy, bao gồm hệ thống thành phần Entity, ống dẫn sự kiện, khuôn khổ chỉ huy và thao túng thế giới. [H2] Thiết lập môi trường phát triển. Prequisites. [Tiếng Tây Ban Nha] Công cụ. Version. Nots {\cH00C1E5EC}Java mạnh mẽ. {\cH00C1E5EC}25 + Hytale sử dụng tính năng hiện đại bao gồm các chỉ ảo (Project Loom) {\cH00C1E5EC}[ttr> Recommive IDE — Ấn bản cộng đồng tự do hoạt động tốt. < t> < t\i>Gradle. Gradle. Gradle. 9.2.0+ Hệ thống cấu trúc (trong mẫu bổ sung) [Tiếng bản xứ] [Tiếng bản xứ] Có phiên bản nào gần đây. Để nhân bản mẫu chính thức Cloone các mẫu chính thức. Hys Studios cung cấp một mẫu bổ sung chính thức trên GitHub: < code>git nhân bản https://githib.com/HytaleMopping/pain-tlate.git. Comment Cd My FirstPlugin Mở dự án ở IntelliJ IESA và để Gradle đồng bộ. Mẫu chứa cấu trúc thư mục, xây dựng cấu hình và quan hệ phụ thuộc của máy phục vụ API. org An toàn, HytaleIO Máy phát điện dự án tại hytaleio.com/projector có thể tạo ra phần bổ sung, Mod, hoặc toàn bộ dự án với mạng UI. Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương Mỗi bổ sung Hytale theo bố trí thư mục này: < code> truy cập của bạn/ sc/main/java/com/tên của bạn/ Phần bổ sung của bạn/ [TIẾNG TIẾNG] Điểm mục nhập chính tôm... tôm... json # Siêu dữ liệu bổ sung (đã yêu cầu) # Tài sản chung/ # Tài sản chia sẻ (người mẫu, kết cấu) Tài sản dữ liệu bên máy chủ _... xây dựng. _...: thiết lập.gradle.kts Trước khi [H3]manest.json. Mỗi bổ sung đòi hỏi một < code>manifest.json ở gốc của JAR biên dịch. Đây là Hytale tương đương với Bukkit < code.yml < code>{ "Craft" : "com. Tên của bạn", " Name" : "Em yêu" "Main" : "com. tên của bạn. Phần bổ sung của bạn. YourPlugin", "Version" : "1.0". "Description" : "Những gì bổ sung của bạn làm", "Authrs": [{" Name: "Xin Người" "ServerViersion" "Sự thật" : "Các đặc vụ" : "Load before": "Disable ByDefault" sai, "Incudes assetPack": sai Trước đó. Bộ nhận diện bổ sung được hình thành như là < code> Nhóm: Name Mã "Main" trường chỉ vào lớp học của bạn — nhận được điều này sai và bổ sung sẽ không tải. [H2]Plugin Lifecycle] Lớp học chính của bạn mở rộng < code>JavaPlugin và có bốn giai đoạn vòng đời: Lớp học công cộng. Bổ sung mở rộng JavaPluginComment{ Comment Super(init); getLogger().info("Plugin" đã được xây dựng!") Không! @ override thiết lập trống công cộng (){ / // Giai đoạn 2: sự kiện đăng ký, lệnh, hệ thống ECS / // Đây là nơi hầu hết các mã đăng ký của bạn được đưa đến Không! @ override khởi chạy khoảng trống chung (){ / // Giai đoạn 3: Máy phục vụ đã sẵn sàng cho người chơi / // Chạy tác vụ đã định, mở kết nối Không! @ override tắt máy công cộng (){ / // Giai đoạn 4: Làm sạch trước khi máy phục vụ dừng / // Lưu dữ liệu, kết nối gần, hủy tác vụ Không! Trước đó. {\cH00C1E5EC}Phase. {\cH00FFFF}Method. Method. Phải làm gì đây. Xây dựng. Khởi tạo cơ bản, khai thác gỗ. [Ttr> 2. Thiết lập. < code> std() std> Sự kiện đăng ký, lệnh, thành phần và hệ thống ECS 3. Bắt đầu. bắt đầu kích hoạt () Mã < ttd> Bắt đầu công việc, máy chủ đang chấp nhận người chơi < t\ t>4. đóng cửa. shutdown()) Lưu dữ liệu, làm sạch tài nguyên [H2] Hệ thống Sự kiện Dual] Đây là khái niệm quan trọng nhất để hiểu. Hytale có hai hệ thống sự kiện riêng biệt mạnh mẽ, và sử dụng sai một là một sai lầm phổ biến. Chào buổi tối Xe buýt — Sự kiện máy phục vụ toàn cầu. The < code> Meat Bus xử lý các sự kiện trên toàn máy chủ như kết nối người chơi, chat, và tải thế giới. Bộ quản lý đăng ký thông qua < code> Sự kiện Regisry cung cấp cho bổ sung của bạn: < p dụng> < code> Ghi đè thiết lập trống công cộng (){ Comment nhận được eventRegisry ().registerGlobal ( Người chơi đã sẵn sàng. sự kiện getLogger().info("Player tham gia: " + sự kiện.getPlayer (). getUsername (); Không! ); / Một sự kiện định kỳ (như sự kiện máy chơiChatt) nhận được eventRegisry().registerAsyncGlobal ( Người chơiChat event. class, Tương lai Tương lai. sau đóAccept (accept -> nếu (thành công. getMessage().contains("spam"){ sự kiện.set Không! Không. Không! ); Trước đó. Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương Những sự kiện xe buýt: PlayerConnt event < code>PlayerDisconnect event - kết nối xe đạp cứu sinh. [li>Player ready Chaat - Người chơi đã lên đạn và sẵn sàng Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương AdPlayer to World Alat Người chơi bước vào thế giới. {\cH00C1E5EC}Nếu không thì sao? {\cH00C1E5EC}Cô ấy sẽ không thể làm gì được. Sự kiện - Quản lý thế giới. Silence: Ưu tiên sự kiện: Dùng < code> Sự đơn giản. Trước khi những người quản lý khác thấy chúng. Dùng < code> Sự đơn giản. LATEđể xem tình trạng cuối cùng sau khi tất cả các quản lý khác đã xử lý. ECS Sự kiện — Hành động đặc biệt đặc biệt. Những sự kiện cấp độ như ngăn chặn phá vỡ, ngăn chặn và gây thiệt hại được xử lý thông qua hệ thống thành phần mạnh mẽ, chứ không phải Đại Hội. Bạn tạo một < code> Thực thể buổi tối. Lớp học công cộng Block Handler Thực thể mở rộng Sự kiện> @ override Truy vấn công chúngQuery{ / Các thực thể đích có thành phần cụ thể nhà xây dựng; Không! @ override Hạng < công cộng; BORBlock Hait > nhận được AlatType (){ trở lại Chào buổi tối BreakBlock. Không! @ override Bộ xử lý khoảng cách công cộng Bộ đệm chỉ huyBuffer, BreakBlock Sự kiện làm việc){ / // Tiến hành phá vỡ khối / // Hủy bỏ trong giai đoạn lọc, không phải ở đây Không! Trước đó. Luật chỉ trích: Chỉ hủy bỏ các sự kiện ECS trong giai đoạn mạnh mẽ. Hủy bỏ trong giai đoạn thanh tra không có hiệu quả vì hành động đã xảy ra. Hệ thống thành phần thực tại (ECS) Hytale sử dụng kiến trúc ECS. Hiểu được điều này là thiết yếu cho bất kỳ bổ sung không liên quan. Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương [li> Sự mạnh mẽ. Chỉ là một ID độc đáo, không có dữ liệu Hoàn hảo. [Tiếng bản xứ] - logic mà xử lý các thực thể với các tổ hợp thành phần cụ thể An toàn với một thực thể (không bao giờ lưu trữ trực tiếp tham khảo) Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Huy Tô, Yuki, Ann, Phương Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương < code> Điểm số lớp học công cộng Dữ liệu thực hiện Thành phần &< Thực dụng Điểm số công cộng = 0; Nhóm chuỗi công cộng = "; Công chúng tham gia lâu năm Tại = Hệ thống. hiện thời TimeMillis (); @ override Nhân bản điểm công cộng (){ Bản sao ghi điểm = bản ghi điểm mới; Bản sao = cái này.score; Rõ. Đội = này.team; Rõ. Nhập Ở = này. Tại; trả lại bản sao; Không! Trước đó. Máy tính phải thực hiện < code>clone(). Liên kết chúng với các thực thể lưu dữ liệu cá nhân — điểm số, nhóm, điểm, điểm, các nhà phát minh, hoặc bất kỳ trạng thái trò chơi cụ thể. Bên dưới trình chơi Ref Một "a player" trong Hytale không phải là một lớp học đặc biệt — nó là một thực thể gồm các thành phần. < code>PlayerRef> thực sự là một thành phần mà chứa tên người chơi, UUID, ngôn ngữ, và bộ quản lý mạng. Nó vẫn hoạt động khi người chơi còn kết nối. [H2] Phát lệnh đăng ký. Lệnh thực hiện < code> Chỉ huy Giao diện: < code> Lớp học công cộng Spawn Lệnh thực hiện lệnh{ @ override Chuỗi công cộng nhận đượcName @ override Việc thực hiện khoảng trống công cộng (dẫn bộ gửi, chuỗi [] args]{ Nếu (kiểu trình chơi chiếu ảnh) Name / // Name Người gửi.sendMessage (Teleporting để sinh..."); Không! Không! Không! // Đăng ký trong thiết lập () lệnh Registry.register Premister (New Spawn Command (); cả 2 < code>Player và < codesender hỗ trợ < code>hasPeration() check. Hệ thống quyền hạn có sẵn hỗ trợ quyền hạn cấp người dùng, quyền thừa kế nhóm, và thẻ đại diện khớp. Xây dựng và triển khai Xây dựng {\cH00C1E5EC}Có thể nó sẽ được xây dựng. Đầu ra JAR đi đến < code> gây dựng/libs/. Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương Thư mục Mô- đun. < t\ t> < t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ t\ Máy chủLinux < code> < code>/pt >/hytale/Server/ Tải lại một phần được hỗ trợ cho các thay đổi nhỏ — sử dụng < code+F9> trong Intelli J để xây dựng lại mà không cần khởi động lại đầy đủ. Thay đổi lớn cần thiết máy phục vụ khởi chạy lại. Mã < code> Sự kiện Regisry. tự động dọn sạch bộ quản lý khi bổ sung được gỡ bỏ. Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương Bảng nguyền rủa nhận dạng ba loại mod: Packs — Tài sản/ đồng ý (dữ liệu gia đình, mô hình, kết cấu) [li> Stant>Plugins. Các tập tin Java JAR sử dụng máy chủ API. [Tiếng bản xứ] Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương Cộng đồng di cư đã xây dựng những tài liệu rộng lớn vượt ra ngoài những gì Hy chăm sóc cơ sở làm: Resource. Focus. [Tiếng bản xứ] Hướng dẫn, bác sĩ, công cụ — 8,000 + thành viên Discord Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương {\cH00C1E5EC}Hytale Docs.com {\cH00C1E5EC} [Chuyến đi truyền thông] {\cH00C1E5EC}T5EC}Có liên quan đến kênh này. Hytale- Công cụkit (GitHub) Nguồn gốc bị gián đoạn, công ty, tìm kiếm mã ngữ pháp. {\cH00C1E5EC}Patcher (GitHub) {\cH00C1E5EC}Biểu hiện mạnh mẽ. Duyệt máy chủ JAR như một dự án IntelliJ {\cH00C1E5EC}Cảm ơn. Máy phục vụ JAR không phải là không chính xác và có thể được giải mã miễn phí. Hy chăm sóc phòng thu đã cam kết để công bố mã nguồn toàn bộ mã nguồn máy chủ trong vòng 1–2 tháng phóng EA. Cái gì đang đến? Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương - dự kiến vào tháng 3 năm 2026 Dịch phụ đề: Những dự án triển khai mạnh mẽ. Đã thừa nhận là không đầy đủ, được mở rộng dựa trên phản hồi cộng đồng. Sẵn sàng triển khai bổ sung chưa? Hãy liệt kê máy chủ đã nhúng của bạn trên Hướng dẫn trò chơi nhỏ tự chọn.