Tài liệu hướng dẫn phát triển của máy phục vụ Hytale

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

Máy chủ Hytale phát triển với tham chiếu toàn diện của chúng tôi. Học về đối tượng chơi Comment Sự kiện, lớp tin nhắn cho định dạng chat, đăng ký lệnh, và xây dựng bổ sung đầu tiên của bạn bằng cách sử dụng kiến trúc cơ chế di sản Java.

[H2] Dựa trên kiến trúc máy chủ Hytale. Máy chủ Hytale được xây dựng trên một cấu trúc dựa trên Java mạnh mẽ mà sẽ cảm thấy quen thuộc với bất cứ ai làm việc với bổ sung máy chủ Minecraft. Với sự trở lại với động cơ thừa kế, các nhà phát triển bây giờ có thể truy cập vào một cơ sở mã hóa thành thục và được kiểm tra kỹ lưỡng ưu tiên cho sự tiếp cận vượt qua sự phức tạp xuyên suốt. Tại trung tâm của máy phục vụ nằm < sty>com.hy>com.hytale. rebe\.come\.come\.come\.come > mạnh mẽ, cung cấp nền tảng cho các thao tác bên máy chủ. Điều này bao gồm quản lý người chơi, quản lý thế giới, gửi thông điệp sự kiện, và xử lý lệnh. Dịch vụ kết nối máy tính Một trong những yêu cầu phổ biến nhất cho bất kỳ bổ sung máy chủ nào là đáp ứng cho người chơi tham gia hoặc để lại. Hytale API cung cấp hai sự kiện quan trọng cho mục đích này. [h3] PlayerConnict Chaat] Đã nạp khi một người chơi kết nối thành công với máy phục vụ, sự kiện này cho bạn quyền truy cập vào tham chiếu của người chơi trước khi họ hoàn toàn sinh ra trên thế giới. Thuộc tính khóa bao gồm: - Trường hợp của người chơi Ref mạnh mẽ có tên UUID, tên người dùng và thông tin mạng. - Thực thể cầu thủ sẽ đại diện cho họ trên thế giới. - Trường hợp thế giới mà họ tham gia - Cửa hàng thực thể cho phép truy cập thành phần. Không giống như một số sự kiện khác, máy phát kết nối Sự kiện là "họ" không có khả năng tinh tế. Nếu bạn cần phải ngăn chặn một cầu thủ tham gia, bạn nên xử lý điều này tại lớp xác thực. < p dụng> < code> AltRegistry.register (Player Connct: class.java){ sự kiện -> Máy chơi va li = sự kiện. playerRef logger.info ("Player kết nối:{ người chơi. user name}") / // Gửi tin nhắn chào mừng Người chơi.sendMessage (Message.raw("Chào mừng đến với máy chủ!") Trước đó. PlayerDisconnect Ath> riggered khi một người chơi rời khỏi máy chủ, sự kiện này bao gồm bối cảnh quan trọng về tại sao họ đã ngắt kết nối: {\cH00FFFF}Người chơi mạnh mẽ {\cH00FFFF} - {\cH00C1E5EC}Người chơi xuất phát {\cH00C1E5EC} - {\cH00C1E5EC}Người tham khảo Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương - Enum chỉ ra thời gian nghỉ, nghỉ việc, hoặc tắt máy chủ. Sự kiện này cũng không thể giải quyết được vì sự ngắt kết nối đã xảy ra ở cấp mạng. Lớp tin nhắn: Chủ sở hữu máy tính tìm kiếm để tạo ra các kinh nghiệm trò chuyện bóng loáng sẽ dành thời gian đáng kể cho lớp thông điệp. Xác định được trong gói tin nhắn lõi, nó cung cấp một hệ thống AI lưu thông tin để xây dựng thông tin. Tạo ra tin nhắn cơ bản < pri> < code> /. Comment "Xin chào, thế giới!" / // Với định dạng màu val được sắp xếp = tin nhắn.raw("Important!") .color .bold (đúng) .italic (sai) .monospace (đúng) [H3] Phụ đề thực hiện bởi Động Phim Cho nội dung động, sử dụng bộ giữ chỗ tham số: Xin chào. Bạn có đồng xu{coins}.") .param(" name", player.user) .param("coins", playta.coinBaalance. toString () Liên kết có thể nhấp nháy 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 .link("htps mỡs.com") [H2] Biểu mẫu đăng ký. Hệ thống sự kiện Hytale hỗ trợ cả hai xử lý sự kiện đồng bộ lẫn asychironous, cho các nhà phát triển linh hoạt dựa trên các yêu cầu hiệu suất của họ. < h3>Synconous Đăng ký. Đối với các sự kiện cần xử lý ngay trên chỉ máy chủ:> < p dụng> < code> antRegistry.register (PlayerInteract: class.java){ sự kiện -> nếu (đồng bộ. action Type == Hành động / // Xử lý sự tương tác sự kiện.set Không! Trước đó. Asynconous Đăng ký. Đối với các sự kiện có thể được xử lý ra khỏi chủ đề chính (như trò chuyện điều độ): p> < code> antRegisry.registerAsync(PlayerChat event: class.java){ tương lai -> Tương lai. sau đó apply{ sự kiện -> / // Comment nếu (đồng bộ hoá từ điển thành ngữ){ sự kiện.set Không! sự kiện Không! Trước đó. [h2] Giao tiếp Bảng tham khảo Sự kiện [h2] Dưới đây là một tham chiếu nhanh cho các sự kiện thường sử dụng nhất trong phát triển máy chủ:> Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương Thuộc tính phím. [ttr> PlayerConnt Avot Không Người chơi Ref, người chơi, thế giới, người giữ PlayerDisconnect A phudet Không Người chơi Ref, ngắt kết nốiReason PlayerChat event Có (Asyncd] phục vụ, mục tiêu, nội dung, định dạng. Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương Kiểu, mục InHand, đích Block, mục tiêu thực nghiệm Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương Không cầu thủ. [ttr] PlayerRespawn Chaat Không cầu thủ. < t> Block Bout. Có items InHand, mục tiêu Block, blockType 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 InHand, mục tiêu Block, điện thoại, thiệt hại. Viên tấn công. Có Vật thể, vị trí Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương Có Recipe, số lượng Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương Hệ thống lệnh cho bạn khả năng đăng ký lệnh cắt mà người chơi có thể thực hiện trong trò chuyện. Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương < code> Class Chỉ huy của tôi: Name Ghi đè bộ thực hiện niềm vui (sender: CommandSender, args: Array ){ bộ gửi.endMessage (Message.raw ("Xin chào từ lệnh riêng của tôi!") Không! Không! // Đăng ký trong giai đoạn thiết lập của bổ sung lệnh Regisry.register Command (của tôi) [H3] Đang đọc bộ điều khiển. Bạn cũng có thể lập trình các lệnh thực hiện: < code> Bộ quản lý quy định = Bộ quản lý lệnh.get() Bộ quản lý lệnh. Bộ điều khiển (ngày hôm nay) Bác sĩ thú y. Mỗi trình phục vụ Hytale mở rộng lớp cơ sở JavaPlugin, cung cấp các quy trình đăng ký thiết yếu và móc kéo sống. [h3] Comment {\cH00C1E5EC}Sự kết hợp mạnh mẽ. - Lập tức cho lớp học bổ sung - Một sự khởi đầu đặc biệt trước khi máy chủ bắt đầu. - Thành phần đăng ký, sự kiện và mệnh lệnh. - Máy chủ sẵn sàng chấp nhận cầu thủ. Im đi - Dọn dẹp trước khi máy chủ dừng. [H3] Tính chất bổ sung Key] < pri> < code> /. Có sẵn trong lớp bổ sung của bạn logger: HytaleLogger / / Khả năng ghi lưu Danh sách: PluginManifest? / // Comment Comment Trình nghe sự kiện đăng ký Lệnh Regisry: CommandRegisry / / / Lệnh đăng ký dữ liệu Thư mục: Đường dẫn / đường dẫn Name nhiệm vụ regisry: TaskRegisry /// Lịch quản lý tác vụ Dịch bởi Vũ Hạnh, Mai Linh Plugins có thể dễ dàng nạp tập tin cấu hình JSON:> < pri> < code> /. Đang dùng cấu hình cấu hình mặc định.json cấu hình val: Cấu hình & lt; MyConfig Claass > = vớiConfig (MyConfigC.COEC) / Dùng tên tập tin tự chọn val cong: cấu hình < MyConfig vàgt; = vớiConfig("custom-name.json", MyConfigCass.COEC] [h2] Làm việc với người chơi Hạng máy chơi lại là giao diện chính của bạn để tương tác với người chơi kết nối. [h3] Người chơi và địa điểm. < code>Người chơi va đập: đấu thủRef = sự kiện. playerRef / danh tính val u UID: UUID = player.u UID Tên vòng: Chuỗi = người chơi.user name Ngôn ngữ va li: Chuỗi = người chơi.language // Vị trí Biến đổi va li: Biến = người chơi.transform val WorldU UID: UUID = player.worldU UID Quay đầu va đập: véc tơ 3f = player.headRotation Player Entity A Truy cập. Để tương tác sâu sắc hơn như quản lý kho, truy cập thực thể người chơi: < p dụng> < code>val player = player.entity Comment Kiểm tra va li: Sáng chế = cầu thủ Ennntry.Invenry Người chơi // Bộ quản lý giao diện người dùng Thanh nóng val = cầu thủ Entity.hotbar Management Comment val trang = cầu thủEntity.page Management val hud = playerEntity.hud Manager // Quyền hạn val có thể xây dựng: Boonlan = cầu thủ Entity.hasPeration("máy chủ. xây dựng") [h2] Quản lý vũ trụ. Vũ trụ đơn lẻ cung cấp truy cập vào tất cả các thế giới và cầu thủ kết nối. < code> Vũ trụ va li = Vũ trụ.get() / // Truy cập của người chơi Tất cả các Players: List = vũ trụ. Trình chơi val Số: Int = vũ trụ. playerCount valctPlayer: PlayRef? = vũ trụ.getPlayer (u UID) Truy cập //thế giới Thế giới va li: Bản đồ < String, World> = vũ trụ.worlds Mặc định val Thế giới: thế giới? = vũ trụ. mặc định thế giới Đặc điểm va đập Thế giới: // Quản lý thế giới val mới World: CompleableFutre< World> = vũ trụ.add World (Thế giới mới") val đã nạp: có thể hoàn thành Future< World> = vũ trụ. Nạp World(" hiện hữu thế giới") Dịch bởi Vũ Hạnh, Mai Linh, Nga, Huy Tô, Yuki, Ann, Phương Truy cập hoàn chỉnh phải xảy ra trên chỉ thế giới. Luôn luôn thao tác trong khối thực hiện: < code>world.excut{ / // Truy cập thành phần an toàn ở đây Thực thể va li = thế giới. gettities () Trước đó. Bước kế tiếp cho các nhà phát triển máy phục vụ. Với tài liệu tham khảo của ADI là nền tảng của bạn, bạn đã sẵn sàng để bắt đầu xây dựng bổ sung máy chủ Hytale. Nguồn tài nguyên quan trọng để khám phá tiếp theo: Hệ thống thành phần Entity (ECS) cho thao tác thực thể tiên tiến Các mô-đun in như NPC, Portals, và tìm kiếm hệ thống. Name [li> giao thức mạng lưới cho gói riêng xử lý. Hãy nhớ rằng khi Hytale di chuyển thông qua các truy cập sơ bộ, ADI có thể tiến hóa. Hãy kết nối với cộng đồng và các tài liệu chính thức khi nó phát triển.