Cách thiết lập phần thưởng bình chọn (Votifier, VotingPlugin và hơn thế)
Cài đặt plugin đi kèm, thiết lập Votifier để nhận thưởng tức thì, hoặc kết nối VotingPlugin, SuperVotes hay SuperbVote với trang này - với đúng những giá trị mà trang này thực sự cần.

Mọi plugin phần thưởng đều cần bạn cung cấp hai thứ: một cách để biết rằng có người vừa bình chọn, và một thứ để chạy khi điều đó xảy ra. Bài viết này sẽ đi qua cả hai - plugin đi kèm mà trang này cung cấp, Votifier để nhận thưởng tức thì, và cách xử lý nếu bạn đã dùng VotingPlugin, SuperVotes hoặc plugin phần thưởng khác.
Phương án A: plugin VoxelRank (khuyến nghị)
Plugin đi kèm giao tiếp trực tiếp với API của trang này. Không cần Votifier - plugin hoạt động bằng cách định kỳ truy vấn các lượt bình chọn chưa nhận, nên vẫn hoạt động phía sau NAT và tự động bù lại mọi thứ bị bỏ lỡ trong lúc máy chủ ngừng hoạt động. Votifier vẫn có sẵn như một tùy chọn bổ sung để nhận thưởng tức thì (xem Phương án B).
- Tải file jar từ Trang tổng quan của bạn (thẻ máy chủ của bạn sẽ có nút Tải xuống ngay khi có bản build), hoặc tải trực tiếp từ /download/plugin.
- Đặt file vào
plugins/và khởi động máy chủ một lần. Thao tác này sẽ tạo raplugins/VotingSite/config.yml. - Mở trang Chỉnh sửa máy chủ của bạn → tab Phần thưởng & bình chọn và sao chép Khóa API hiển thị ở đó.
- Dán khóa vào
site.api-keytrongconfig.yml(đồng thời kiểm trasite.urlcó trỏ đến trang này không), sau đó chạy/votingsite reload. - Quyết định cách các lượt bình chọn sẽ đến với bạn bằng cách thiết lập
modetrongconfig.yml:poll(mặc định) - plugin tự lấy các lượt bình chọn chưa nhận. Không cần cài thêm gì khác.votifier- trang này gửi từng lượt bình chọn ngay khi được thực hiện. Cần NuVotifier hoặc một listener Votifier khác (Phương án B bên dưới).both- đẩy dữ liệu qua Votifier kèm truy vấn làm lưới an toàn, không trùng lặp nhờ id của lượt bình chọn.
- Điền
rewards.commands(và nếu muốn, cảmilestonesvàvote-party) bằng các lệnh console cần chạy khi có lượt bình chọn. - Kiểm tra thử:
/votingsite testvote <player>mô phỏng một lượt bình chọn mà không cần chờ lượt bình chọn thật./votingsite statushiển thị chế độ đang dùng, khóa API có được chấp nhận không, và số lượt bình chọn đã được xử lý cho đến nay.
Người chơi lấy liên kết bình chọn và số lượt bình chọn của mình bằng /voxelrank vote - không phải /vote, lệnh mà plugin này cố tình không bao giờ chiếm dụng (hai plugin tranh nhau cùng một lệnh chính là cách khiến một phần thưởng âm thầm ngừng hoạt động - xem ghi chú riêng về việc này trong config.yml).
Phương án B: nhận thưởng tức thì với NuVotifier
Bỏ qua phần này nếu chế độ poll đã hoạt động đủ tốt với bạn - đây không phải điều bắt buộc. Hãy thêm vào khi vài phút độ trễ của việc truy vấn thực sự gây ảnh hưởng, hoặc khi bạn muốn chạy một plugin phần thưởng chuyên dụng thay vì plugin riêng của trang này.
NuVotifier là bản fork của Votifier gốc vẫn đang được bảo trì tích cực - dự án gốc ngày nay gần như không còn được bảo trì, nên trên thực tế "cài Votifier" có nghĩa là cài NuVotifier (hoặc một bản fork tương thích như VotifierPlus).
- Đặt file jar của NuVotifier vào
plugins/và khởi động lại máy chủ. Trên máy chủ Bukkit/Spigot/Paper, nó vẫn giữ tên thư mục cổ điểnplugins/Votifier/để tương thích ngược - đây là thư mục riêng của NuVotifier, không phải phần còn sót lại của plugin cũ - và khi khởi động lần đầu sẽ tạo bên trong mộtconfig.ymlcùng một cặp khóa trongrsa/. - Lấy thông tin xác thực từ
plugins/Votifier/config.yml: token v2 (khuyến nghị) được tự động tạo dưới khóadefaulttrong mụctokens:- sao chép nguyên trạng. Nếu bạn muốn dùng phương pháp cũ hơn, khóa công khai v1 nằm trongplugins/Votifier/rsa/public.key; hãy giữprivate.keytương ứng trong cùng thư mục trên máy chủ và không bao giờ chia sẻ nó. - Kiểm tra
portmà NuVotifier đang lắng nghe (mặc định là8192) và đảm bảo cổng này đã mở trên tường lửa hoặc bảng điều khiển hosting của bạn - đây là một cổng riêng biệt với cổng Minecraft thông thường, và hầu hết các nhà cung cấp hosting không tự động mở cổng này. - Trên trang Chỉnh sửa máy chủ của bạn → tab Phần thưởng & bình chọn, điền host của Votifier (địa chỉ máy chủ của bạn) và cổng đó, sau đó dán token v2 hoặc khóa v1 từ bước 2. Nếu điền cả hai, chỉ một cái được dùng - token v2 sẽ được ưu tiên.
- Nhấp vào Gửi phiếu kiểm tra ngay trên tab đó. Thao tác này gửi một gói Votifier thật đến host/cổng/khóa/token hiện có trong biểu mẫu - không cần lưu trước - và báo lại ngay liệu NuVotifier có chấp nhận hay không. Nếu thất bại, nhật ký console riêng của NuVotifier (mặc định
debug: true) sẽ cho biết kết nối có đến được plugin hay không, giúp phân biệt nhanh giữa "sai khóa" và "cổng bị chặn". - Lưu lại, sau đó thực hiện một lượt bình chọn thật và xác nhận phần thưởng đến ngay lập tức thay vì phải chờ lượt truy vấn tiếp theo.
Bên dưới, trang này gửi một cú bắt tay VOTIFIER 2 tiêu chuẩn kèm payload JSON được ký bằng HMAC khi có thiết lập token v2, và sẽ chuyển về dùng khối v1 cổ điển mã hóa bằng RSA nếu không - cùng một giao thức mà bất kỳ listener tương thích Votifier nào cũng đã hiểu, không có gì đặc thù riêng cho trang này.
Bạn đã dùng VotingPlugin rồi phải không?
Nếu máy chủ của bạn đã chạy VotingPlugin, bạn không cần cài plugin của chúng tôi - và cũng không cần thêm trang này vào bằng tay, vì VotingPlugin đã có sẵn preset được duy trì cho trang này.
Chạy lệnh sau trong game với tư cách operator (hoặc có quyền VotingPlugin.Commands.AdminVote.VotePresets):
/av VotePresets
VotingPlugin sẽ tải danh sách preset hiện tại từ kho VotingPlugin-Presets của chính nó, cho bạn chọn một preset - VoxelRank cũng nằm trong đó - rồi hỏi các giá trị mà preset đó cần: tên hiển thị, URL bình chọn của tin đăng, độ trễ giữa các lượt bình chọn, và những thứ tương tự. Hoặc bỏ qua bước chọn và dùng luôn liên kết bình chọn của riêng bạn:
/av VotePresets https://voxelrank.com/server/your-slug/vote
Hãy bao gồm cả https://; VotingPlugin sẽ tự động khớp tên host với preset phù hợp thay vì bắt bạn phải tìm trong danh sách.
Dù theo cách nào, nó cũng sẽ ghi hoặc cập nhật mục tương ứng dưới VoteSites: trong VoteSites.yml - ServiceSite, VoteURL, các giá trị độ trễ mặc định hợp lý, và một vật phẩm hiển thị hoặc lời cảm ơn tạm thời nếu trang chưa có sẵn - sau đó tự tải lại các trang bình chọn giúp bạn. Mọi thứ khác đã có sẵn trong file sẽ được giữ nguyên. Hãy sao lưu VoteSites.yml trước nếu bạn đang thay đổi một cấu hình đã thiết lập từ trước thay vì thêm mới, và kiểm tra lại những gì được ghi vào - đặc biệt là phần thưởng, vì preset chỉ là điểm khởi đầu, không phải một cấu hình hoàn chỉnh - trước khi quảng bá cho người chơi.
VotingPlugin vẫn cần kết nối Votifier riêng để thực sự nhận được lượt bình chọn - hãy trỏ nó đến cùng thiết lập NuVotifier ở Phương án B bên trên. Nó cũng cần máy chủ có thể truy cập GitHub (raw.githubusercontent.com) để tải preset; nếu /av VotePresets báo không có preset khả dụng, đó là vấn đề mạng hoặc tường lửa trên máy chủ, không phải do thiếu preset. /av gui, hoặc chỉnh sửa trực tiếp VoteSites.yml, vẫn hoạt động như phương án dự phòng - ServiceSite phải khớp chính xác với VoxelRank.com, điều bạn có thể xác nhận bằng /av servicesites sau một lượt bình chọn thật hoặc lượt kiểm tra của quản trị viên.
Các plugin phần thưởng khác
Bạn đang dùng thứ gì đó nhẹ hơn VotingPlugin? SuperVotes và SuperbVote đều là các listener Votifier nhẹ, có hệ thống vote-party và lệnh phần thưởng riêng. Cả hai đều không theo dõi preset theo từng trang như VotingPlugin - hãy trỏ một trong hai đến cùng host, cổng và token v2 (hoặc khóa v1) Votifier ở tab Phần thưởng & bình chọn bên trên, rồi cấu hình phần thưởng của nó giống như với bất kỳ lượt bình chọn nào khác.
Khắc phục sự cố
- Không có gì xảy ra khi chạy
/votingsite testvote. Trước tiên hãy kiểm tra/votingsite status- nếu khóa API không được chấp nhận, các lượt bình chọn (thật hoặc thử nghiệm) sẽ không có nơi để đến. Sao chép lại khóa từ trang Chỉnh sửa và đảm bảo không có khoảng trắng thừa ở cuối. - Việc đẩy dữ liệu qua Votifier không bao giờ đến nơi nhưng truy vấn vẫn hoạt động. Thường thì cổng Votifier bị chặn chứ không phải API - hầu hết các nhà cung cấp hosting mở lưu lượng HTTP đi ra theo mặc định nhưng không mở thêm một cổng đến tùy ý.
mode: both(hoặc chạy riêng listener của một plugin phần thưởng khác) là một phương án dự phòng lâu dài hợp lý thay vì phải chiến đấu với tường lửa. - Phần thưởng được kích hoạt nhưng không thấy gì xuất hiện trong game. Lệnh phần thưởng chạy trên console, nên một lệnh chỉ hoạt động khi được người chơi tự gõ (không có quyền, không
op) sẽ âm thầm thất bại. Hãy thử lệnh chính xác từ console trước. - VotingPlugin ghi log "invalid service site" hoặc không bao giờ khớp được lượt bình chọn. Giá trị
ServiceSitephải khớp từng ký tự, ngoại trừ chữ hoa/thường. Kiểm tra bằng/av servicesitesthay vì đoán dựa trên tên miền của trang này. /av VotePresetsbáo không có preset khả dụng, hoặc một URL không khớp với gì cả. Nó tải danh sách preset từ GitHub ngay tại thời điểm chạy, nên gần như luôn là do chính mạng của máy chủ - tường lửa, proxy, DNS, hoặc GitHub gặp sự cố - đang chặnraw.githubusercontent.com, chứ không phải dấu hiệu VoxelRank bị loại khỏi danh sách. Việc khớp theo URL cũng cần địa chỉ đầy đủ bao gồmhttps://; chỉ riêng tên host sẽ không được nhận diện.- Các thiết lập trên tab Phần thưởng & bình chọn có vẻ như không được lưu. Chúng chỉ áp dụng cho tin đăng đã xác nhận quyền sở hữu - xem bộ lọc Đã xác nhận quyền sở hữu trong danh sách máy chủ. Một mục được nhập vào nhưng chưa được xác nhận quyền sở hữu thì chưa có chủ sở hữu để cấu hình phần thưởng; hãy xác nhận quyền sở hữu trước.
Trả lời nhanh
Tôi có thực sự cần Votifier không?
Không. Chế độ poll (mặc định của plugin VoxelRank) hoạt động mà không cần cài thêm gì khác - Votifier chỉ rút ngắn độ trễ giữa lượt bình chọn và phần thưởng, và đây là con đường duy nhất nếu bạn muốn chạy VotingPlugin, SuperVotes hoặc SuperbVote thay vào đó.
Tôi có thể dùng plugin của chúng tôi và VotingPlugin cùng lúc không?
Không được với cùng một phần thưởng - hãy chọn một plugin để thực sự chạy các lệnh phần thưởng, nếu không một lượt bình chọn có thể được trả thưởng hai lần. Bản thân Votifier có thể thông báo cho nhiều hơn một listener, nên đây là quy tắc "đừng cấu hình cùng một phần thưởng hai lần", không phải giới hạn kỹ thuật.
Nhà cung cấp hosting của tôi không cho phép mở thêm cổng cho Votifier.
Hãy dùng chế độ poll với plugin VoxelRank. Nó chỉ thực hiện các yêu cầu đi ra, nên không có gì cần mở cả. VotingPlugin và các plugin phần thưởng tương tự không có chế độ tương đương với truy vấn - chúng cần một cổng Votifier đến.
Cần trợ giúp?
Bạn đang bị vướng ở một bước nào đó bên trên, hoặc có gì đó không khớp với những gì máy chủ của bạn thực sự gửi đi? Liên hệ với chúng tôi - những cách nhanh nhất để hỏi về vấn đề bình chọn/phần thưởng đều được liệt kê ngay tại đó.