वोट रिवॉर्ड्स कैसे सेट करें (Votifier, VotingPlugin और अन्य)

साथी प्लगइन इंस्टॉल करें, तुरंत डिलीवरी के लिए Votifier सेट करें, या इसके बजाय VotingPlugin, SuperVotes या SuperbVote को इस साइट से जोड़ें - बिल्कुल उन्हीं वैल्यू के साथ जिनकी यह साइट वाकई अपेक्षा करती है।

हर रिवॉर्ड प्लगइन को आपसे दो चीज़ें चाहिए होती हैं: यह जानने का एक तरीका कि वोट हुआ है, और कुछ ऐसा जो तब चले जब ऐसा हो। यह लेख दोनों को कवर करता है - इस साइट का पब्लिश किया साथी प्लगइन, तुरंत डिलीवरी के लिए Votifier, और अगर आप पहले से ही VotingPlugin, SuperVotes या कोई अन्य रिवॉर्ड प्लगइन चला रहे हैं तो क्या करें।

विकल्प A: VoxelRank प्लगइन (अनुशंसित)

साथी प्लगइन सीधे इस साइट के API से बात करता है। Votifier की ज़रूरत नहीं है - यह एक निश्चित अंतराल पर अनक्लेम्ड वोट्स को पोल करके काम करता है, इसलिए यह NAT के पीछे भी काम करता है और सर्वर के डाउन रहने के दौरान छूटी हुई हर चीज़ को बाद में पकड़ लेता है। Votifier भी उपलब्ध है, तुरंत डिलीवरी के लिए एक वैकल्पिक ऐड-ऑन के तौर पर (विकल्प B देखें)।

  1. अपने डैशबोर्ड से jar डाउनलोड करें (एक बार बिल्ड मौजूद होने पर आपके सर्वर के कार्ड पर Download बटन आ जाता है), या सीधे /download/plugin से।
  2. इसे plugins/ में डालें और एक बार सर्वर स्टार्ट करें। इससे plugins/VotingSite/config.yml बन जाएगी।
  3. अपने सर्वर का संपादित करें पेज → पुरस्कार और मतदान टैब खोलें और वहां दिखाई गई API कुंजी कॉपी करें।
  4. इसे config.yml में site.api-key में पेस्ट करें (यह भी जांच लें कि site.url इसी साइट की ओर इशारा करता है), फिर /votingsite reload चलाएं।
  5. config.yml में mode सेट करके तय करें कि वोट आप तक कैसे पहुंचें:
    • poll (डिफ़ॉल्ट) - प्लगइन खुद ही अनक्लेम्ड वोट्स को खींच लेता है। और कुछ इंस्टॉल करने की ज़रूरत नहीं।
    • votifier - जैसे ही वोट डाला जाता है, साइट उसे तुरंत भेज देती है। इसके लिए NuVotifier या किसी अन्य Votifier लिसनर की ज़रूरत होती है (नीचे विकल्प B)।
    • both - Votifier पुश के साथ पोलिंग एक सेफ्टी नेट की तरह, वोट id की वजह से कोई डुप्लिकेट नहीं।
  6. rewards.commands (और चाहें तो milestones और vote-party) में वे कंसोल कमांड भरें जो वोट पड़ने पर चलनी चाहिए।
  7. इसे टेस्ट करें: /votingsite testvote <player> असली वोट का इंतज़ार किए बिना एक वोट सिमुलेट करता है। /votingsite status मोड, API कुंजी स्वीकार हो रही है या नहीं, और अब तक कितने वोट डिलीवर हो चुके हैं - यह सब दिखाता है।

खिलाड़ियों को अपना वोट लिंक और गिनती /voxelrank vote से मिलती है - /vote से नहीं, जिसे यह प्लगइन जानबूझकर कभी क्लेम नहीं करता (एक ही कमांड के लिए लड़ते दो प्लगइन ही वह वजह होते हैं जिससे कोई रिवॉर्ड चुपचाप काम करना बंद कर देता है - इस बारे में config.yml का अपना नोट देखें)।

विकल्प B: NuVotifier के साथ तुरंत डिलीवरी

अगर poll मोड आपके लिए पहले से ही काफी अच्छी तरह काम कर रहा है, तो इसे छोड़ दें - यह ज़रूरी नहीं है। इसे तब जोड़ें जब पोलिंग की चंद मिनटों की देरी मायने रखती हो, या जब आप इस साइट के अपने प्लगइन के बजाय कोई डेडिकेटेड रिवॉर्ड प्लगइन चलाना चाहते हों।

NuVotifier ओरिजिनल Votifier का सक्रिय रूप से मेंटेन किया जाने वाला फोर्क है - ओरिजिनल प्रोजेक्ट आज लगभग बिना मेंटेनेंस के ही है, इसलिए व्यवहार में "Votifier इंस्टॉल करने" का मतलब है NuVotifier (या VotifierPlus जैसा कोई कम्पैटिबल फोर्क) इंस्टॉल करना।

  1. NuVotifier का jar plugins/ में डालें और सर्वर रीस्टार्ट करें। Bukkit/Spigot/Paper सर्वर पर यह बैकवर्ड कम्पैटिबिलिटी के लिए क्लासिक फोल्डर नाम plugins/Votifier/ बनाए रखता है - यह NuVotifier का अपना ही फोल्डर है, पुराने प्लगइन का बचा हुआ हिस्सा नहीं - और पहली बार स्टार्ट होने पर इसके अंदर एक config.yml और rsa/ फोल्डर में एक की-पेयर बना देता है।
  2. अपनी क्रेडेंशियल्स plugins/Votifier/config.yml से लें: v2 टोकन (अनुशंसित) tokens: सेक्शन में default की के तहत अपने आप जनरेट हो जाता है - इसे जैसा है वैसा ही कॉपी करें। अगर आप पुराना तरीका इस्तेमाल करना चाहें, तो v1 पब्लिक की plugins/Votifier/rsa/public.key में है; इससे मिलती-जुलती private.key को सर्वर पर उसी फोल्डर में रखें और कभी शेयर न करें।
  3. वह port चेक करें जिस पर NuVotifier सुन रहा है (डिफ़ॉल्ट 8192) और सुनिश्चित करें कि यह आपके फायरवॉल या होस्टिंग पैनल में खुला है - यह सामान्य Minecraft पोर्ट से अलग पोर्ट है, और ज़्यादातर होस्ट इसे अपने आप नहीं खोलते।
  4. अपने सर्वर के संपादित करें पेज → पुरस्कार और मतदान टैब में Votifier होस्ट (आपके सर्वर का पता) और वह पोर्ट भरें, फिर स्टेप 2 वाला v2 टोकन या v1 की पेस्ट करें। अगर दोनों भरे हों, तो केवल एक ही इस्तेमाल होता है - v2 को प्राथमिकता मिलती है।
  5. उसी टैब पर सीधे परीक्षण वोट भेजें पर क्लिक करें। इससे फॉर्म में उस समय मौजूद होस्ट/पोर्ट/की/टोकन पर एक असली Votifier पैकेट भेजा जाता है - पहले कुछ भी सेव करने की ज़रूरत नहीं - और यह तुरंत बता देता है कि NuVotifier ने इसे स्वीकार किया या नहीं। अगर यह विफल हो, तो NuVotifier का अपना कंसोल लॉग (डिफ़ॉल्ट रूप से debug: true) दिखाता है कि कनेक्शन प्लगइन तक पहुंचा भी या नहीं, जिससे "गलत की" और "ब्लॉक्ड पोर्ट" के बीच जल्दी फर्क पता चल जाता है।
  6. सेव करें, फिर एक असली वोट डालें और पक्का करें कि रिवॉर्ड अगली पोलिंग का इंतज़ार करने के बजाय तुरंत मिल जाए।

अंदर ही अंदर, जब v2 टोकन सेट होता है तो यह साइट एक स्टैंडर्ड VOTIFIER 2 हैंडशेक भेजती है जिसमें HMAC से साइन किया गया JSON पेलोड होता है, और नहीं तो यह एक क्लासिक, RSA-एन्क्रिप्टेड v1 ब्लॉक पर वापस चली जाती है - यही वह प्रोटोकॉल है जिसे कोई भी Votifier-कम्पैटिबल लिसनर पहले से ही बोलता है, इसमें साइट-विशिष्ट कुछ भी नहीं है।

क्या आप पहले से VotingPlugin इस्तेमाल कर रहे हैं?

अगर आपके सर्वर पर पहले से ही VotingPlugin चल रहा है, तो आपको हमारा वाला इंस्टॉल करने की ज़रूरत नहीं - और आपको इस साइट को हाथ से भी जोड़ने की ज़रूरत नहीं, क्योंकि VotingPlugin में इसके लिए एक मेंटेन किया गया प्रीसेट पहले से मौजूद है।

गेम में ऑपरेटर के तौर पर (या VotingPlugin.Commands.AdminVote.VotePresets परमिशन के साथ) यह चलाएं:

/av VotePresets

VotingPlugin अपने ही VotingPlugin-Presets रिपॉज़िटरी से मौजूदा प्रीसेट लिस्ट डाउनलोड करता है, आपको उनमें से एक चुनने देता है - VoxelRank भी उसमें शामिल है - फिर उन वैल्यू के बारे में पूछता है जिनकी उस प्रीसेट को ज़रूरत है: डिस्प्ले नेम, आपकी लिस्टिंग की वोट URL, वोट डिले और इसी तरह की चीज़ें। या फिर अपनी ही वोट लिंक के साथ सीधे आगे बढ़ें:

/av VotePresets https://voxelrank.com/server/your-slug/vote

https:// शामिल करें; VotingPlugin होस्टनेम को सही प्रीसेट से अपने आप मैच कर देता है, बजाय इसके कि आपको लिस्ट में उसे ढूंढना पड़े।

चाहे जो भी तरीका हो, यह VoteSites.yml में VoteSites: के तहत मैचिंग एंट्री लिखता या अपडेट करता है - ServiceSite, VoteURL, समझदार डिफ़ॉल्ट डिले, और अगर साइट के पास पहले से नहीं है तो एक प्लेसहोल्डर डिस्प्ले आइटम या थैंक-यू मैसेज - फिर आपके लिए वोट साइट्स को रीलोड कर देता है। फाइल में पहले से मौजूद बाकी सब कुछ जस का तस रहता है। अगर आप कोई पहले से बना-बनाया सेटअप बदल रहे हैं, न कि कोई नया जोड़ रहे हैं, तो पहले VoteSites.yml का बैकअप ले लें, और खिलाड़ियों को इसका विज्ञापन करने से पहले जो लिखा गया उसे जांच लें - खासकर रिवॉर्ड्स को, क्योंकि प्रीसेट एक शुरुआती बिंदु है, कोई पूरी बनी-बनाई कॉन्फ़िगरेशन नहीं।

वोट को असल में पाने के लिए VotingPlugin को अब भी अपने खुद के Votifier कनेक्शन की ज़रूरत होती है - इसे ऊपर विकल्प B वाले उसी NuVotifier सेटअप पर पॉइंट करें। इसे यह भी चाहिए कि सर्वर GitHub (raw.githubusercontent.com) तक पहुंच सके ताकि प्रीसेट लाए जा सकें; अगर /av VotePresets कहे कि कोई प्रीसेट उपलब्ध नहीं है, तो यह सर्वर पर नेटवर्क या फायरवॉल की समस्या है, कोई गायब प्रीसेट नहीं। फॉलबैक के तौर पर /av gui, या सीधे VoteSites.yml को एडिट करना, अब भी काम करता है - ServiceSite का ठीक VoxelRank.com पढ़ना ज़रूरी है, जिसे आप किसी असली या एडमिन टेस्ट वोट के बाद /av servicesites से कन्फर्म कर सकते हैं।

अन्य रिवॉर्ड प्लगइन्स

VotingPlugin से कुछ हल्का इस्तेमाल कर रहे हैं? SuperVotes और SuperbVote दोनों ही हल्के Votifier लिसनर हैं जिनके अपने वोट-पार्टी और रिवॉर्ड-कमांड सिस्टम हैं। इनमें से कोई भी VotingPlugin की तरह per-site प्रीसेट ट्रैक नहीं करता - इनमें से किसी एक को ऊपर वाले Rewards & voting टैब से मिले उसी Votifier होस्ट, पोर्ट और v2 टोकन (या v1 की) पर पॉइंट करें और इसके रिवॉर्ड्स को उसी तरह कॉन्फ़िगर करें जैसे आप किसी भी वोट के लिए करते हैं।

समस्या निवारण

  • /votingsite testvote पर कुछ नहीं होता। पहले /votingsite status चेक करें - अगर API कुंजी स्वीकार नहीं हो रही है, तो वोट्स (असली हों या टेस्ट) के पास जाने के लिए कोई जगह नहीं है। इसे संपादित करें पेज से दोबारा कॉपी करें और सुनिश्चित करें कि आखिर में कोई खाली स्पेस न हो।
  • Votifier पुश कभी नहीं पहुंचता लेकिन पोलिंग काम करती है। आमतौर पर API नहीं बल्कि Votifier पोर्ट ही ब्लॉक होता है - ज़्यादातर होस्ट डिफ़ॉल्ट रूप से आउटबाउंड HTTP खोलते हैं लेकिन कोई मनमाना एक्स्ट्रा इनबाउंड पोर्ट नहीं। फायरवॉल से लड़ने के बजाय mode: both (या किसी दूसरे रिवॉर्ड प्लगइन के लिसनर को अलग से चलाना) एक समझदार, स्थायी फॉलबैक है।
  • रिवॉर्ड ट्रिगर होता है लेकिन गेम में कुछ नहीं दिखता। रिवॉर्ड कमांड कंसोल पर चलते हैं, इसलिए ऐसा कमांड जो सिर्फ तभी काम करता है जब कोई खिलाड़ी उसे टाइप करे (कोई परमिशन नहीं, कोई op नहीं) चुपचाप फेल हो जाएगा। पहले कंसोल से सटीक कमांड टेस्ट करें।
  • VotingPlugin "invalid service site" लॉग करता है या वोट कभी मैच नहीं करता। ServiceSite की वैल्यू को कैरेक्टर-बाय-कैरेक्टर मैच होना चाहिए, कैपिटलाइज़ेशन को छोड़कर। इस साइट के डोमेन नेम से अंदाज़ा लगाने के बजाय /av servicesites से इसे चेक करें।
  • /av VotePresets कहता है कि कोई प्रीसेट उपलब्ध नहीं, या कोई URL किसी से मैच नहीं करता। यह रनटाइम पर GitHub से प्रीसेट लिस्ट डाउनलोड करता है, इसलिए यह लगभग हमेशा सर्वर के अपने ही नेटवर्क - फायरवॉल, प्रॉक्सी, DNS, या GitHub का आउटेज - की वजह से होता है जो raw.githubusercontent.com को ब्लॉक कर रहा होता है, यह इस बात का संकेत नहीं कि VoxelRank को लिस्ट से हटा दिया गया। URL मैच के लिए https:// समेत पूरा एड्रेस भी चाहिए होता है; सिर्फ होस्टनेम पहचाना नहीं जाता।
  • Rewards & voting टैब की सेटिंग्स सेव होती नहीं दिखतीं। ये सिर्फ क्लेम की गई लिस्टिंग पर लागू होती हैं - सर्वर लिस्ट में Claimed फ़िल्टर देखें। इम्पोर्ट की गई, अनक्लेम्ड एंट्री का अभी कोई ओनर नहीं होता जिसके लिए रिवॉर्ड्स कॉन्फ़िगर किए जा सकें; पहले इसे क्लेम करें।

झटपट जवाब

क्या मुझे वाकई Votifier चाहिए?

नहीं। poll मोड (VoxelRank प्लगइन के लिए डिफ़ॉल्ट) बिना कुछ और इंस्टॉल किए काम करता है - Votifier सिर्फ वोट और रिवॉर्ड के बीच की देरी कम करता है, और यह अंदर आने का एकमात्र रास्ता है अगर आप इसकी जगह VotingPlugin, SuperVotes या SuperbVote चलाना चाहें।

क्या मैं हमारा प्लगइन और VotingPlugin एक साथ इस्तेमाल कर सकता हूं?

एक ही रिवॉर्ड के लिए नहीं - एक चुनें जो असल में रिवॉर्ड कमांड चलाए, वरना किसी वोट का पेमेंट दो बार हो सकता है। Votifier खुद एक से ज़्यादा लिसनर को नोटिफाई कर सकता है, इसलिए यह "एक ही रिवॉर्ड को दो बार कॉन्फ़िगर मत करो" वाला नियम है, कोई तकनीकी सीमा नहीं।

मेरी होस्टिंग मुझे Votifier के लिए एक्स्ट्रा पोर्ट खोलने नहीं देती।

VoxelRank प्लगइन के साथ poll मोड इस्तेमाल करें। यह सिर्फ आउटबाउंड रिक्वेस्ट करता है, इसलिए कुछ भी खोलने की ज़रूरत नहीं। VotingPlugin और इसी तरह के रिवॉर्ड प्लगइन्स के पास पोलिंग मोड जैसा कोई विकल्प नहीं होता - उन्हें एक इनबाउंड Votifier पोर्ट चाहिए होता है।

मदद चाहिए?

ऊपर दिए किसी स्टेप पर अटक गए हैं, या कुछ ऐसा है जो आपके सर्वर के असल में भेजे जाने वाले डेटा से मेल नहीं खाता? हमसे संपर्क करें - वोट/रिवॉर्ड्स से जुड़े सवाल के लिए सबसे तेज़ तरीके वहीं लिस्ट किए गए हैं।