Troubleshooting VaultListener
Topmost Configuration Problem
Unless your logs contain a VaultListener specific error such as those explained in When Troubles Are Brewing below, there is a 99% chance that the problem is because you mis-configured Votifier. Please refer to Votifier's Troubleshooting page first. This is not passing the buck, but a statistical reality. 99% of purported VaultListener problems reported since December 2011 were Votifier issues due to mis-configurations. Once you've performed your due diligence with Votifier, or its developers tell you directly that it a problem with VaultListener, then we will gladly handle the other 1%. However, rather than leaving you hanging without any help, listed below is a set of common configuration issues encountered.
#1 Issue
Minestatus's Test Votifier reports a successful notification, but actual players do not get paid.
Problem Source #1
Make sure that your economy plugin is enabled. If Vault cannot find a compatible economy plugin, then VaultListener will not issue payments.
Problem Source #2
Port conflict:
- Make sure Votifier's port is open and not blocked by the server's firewall.
- Make sure that another plugin is not competing for the same port. This could be one of your own plugins; or, if you are on a hosting service, it may be another plugin (or even Votifier) running on another Minecraft server on the same machine. Seriously, check with your hosting provider's FAQs or support about configuring plugins that require other network connections.
Problem Source #3
This one is the least likely, but if you happen to be tweaking Votifier for multiple servers, make sure that the host: configuration item in Votifier's config.yml is set to your server's IP address or hostname. If you enter a hostname, make sure that it resolves to the server's IP address.
A Simple Test
After you have checked all your configurations and believe them to be correct, you can perform a simple test to determine if this is a Votifier or VaultListener issue. Download Votifier's FlatfileListener, which is a simple listener for logging votes to a file. Place it in the listener folder and restart your server. Issue a test vote. If neither VaultListener or FlatFileListener record the vote, you have a Votifier configuration problem. If by chance, FlatFileListener records a vote and VaultListener doesn't, then please submit a Ticket.
When Troubles Are Brewing
VaultListener is a fairly simple Java class and equally performs fairly simple tasks. However, that doesn't mean that things can't go awry. It depends on Vault, which in turn looks for a suitable economy plugin. Furthermore, there are the other dozen or so plugins that all try to play nicely together, but that don't necessarily do so. Suffice it to say that not all weekend coders - despite their best intentions - make good programmers or software engineers.
Vault has been around since June 2011. In terms of plugins that come and go, that's old. The code is well-written and makes sure to never assume that everything will work or everything that it needs is found. When things don't go right, it traps exceptions and degrades its functionality civilly or in the worst case exits gracefully. Likewise, many of the well-known economy plugins have been around longer and exhibit similar stability.
Compared to these plugins, VaultListener is extremely simple. Even so, it takes care to check everything that can be checked and makes no assumptions that things will always work. Since there is no GUI, they only way it can do this, as with most plugins, is to report the state of its affairs via the server log.
What VaultListener Normally Anticipates
If things go according to plan, VaultListener gets loaded by Votifier during the initialization phase. You should see the following log entries in the server logs.
[Votifier][VaultListener 1.1] Using Economy plugin: XXXX [Votifier][VaultListener 1.1] No VaultListener properties file found, creating default file. Loaded vote listener; VaultListener
The first line is generated by VaultListener in which it reports what economy plugin has been detected by Vault. The second line is only shown if VaultListener cannot find its properties file and notifies that it will create a default version. Lastly, the third entry is generated by Votifier stating that it loaded VaultListener.
When a vote is received you will see something similar to:
[Votifier][VaultListener 1.1] PLAYER The server was voted on by PLAYER!
Again, the first line is generated by VaultListener, reporting the player that voted. The second line will only appear if you have broadcast=true set in the the VaultListener.properties configuration file. Broadcasting is enabled by default, if no configuration file is found.
When Things Aren't There
The following are some more severe log entries that can happen during initialization:
Cannot find reference to Votifier plugin!
This should never appear. If it does, then VaultListener was loaded by something other than Votifier, which is a big bad.
Error loading VaultListener properties. Using default messages and reward of NN
This message will appear if VaultListener find its properties file, but for some reason it has difficultly reading it. This may be indicative of a disk I/O problem or corrupted properties file. Fortunately, VaultListener will degrade and continue using its programmed defaults. These values are the same as shown in the Sample Properties File
Error creating VaultListener properties
This message indicates that VaultListener had problems writing a newly created properties file (because none was found). This may indicate disk problems such as exceeding disk quotas or worse.
Could not find Vault API. Please make sure Vault is installed and enabled!
Obviously, the Vault plugin is missing or failed to initialize properly. VaultListener will still receive votes, thank the player and broadcast it to the server (if enabled), but no payments will be made.
Vault cannot detect a valid economy plugin. No payments will be made!
As stated, Vault did not find a compatible economy plugin. You should look at the log entries to make sure that your economy plugin loaded. Furthermore, you should check the Vault log entries and see what, if any, economy plugin it detected.
Cannot deposit negative funds
This is a Vault-specific error that will happen if you configured a negative amount as a reward. Malicious admin, perhaps?
Illegal reward_amount!
The value given for reward_amount cannot be parsed into a number. Check for illegal characters.
Illegal reward_rate!
The value given for reward_rate cannot be parsed into a number. Check for illegal characters.
If All Else Fails
If nothing still makes sense, we'd certainly like to hear about it. Certainly, there is no claim that VaultListener is bullet-proof; all it can do is to try to be as robust as it can. But it is always possible that something wasn't as obvious as it was first deemed to be. Then again, as long as there are human beings involved somewhere in the chain of things that must happen for a CraftBukkit server to work, problems will happen.
When they do, please feel free to submit a ticket under VaultListener's Issue Tracker. Please include the following:
- A stack trace of any uncaught exception related to VaultListener.
- If possible, try to run VaultListener in a minimum environment. For example, disable all plugins except: Votifier, Vault, and whatever economy plugin you are using. If the problem persists, we certainly should hear about it.
This is a straight copy from our console, We're using Votifier / iConomy and this. Everything is installed just as it's supposed to be. Both the host and I have no idea what we're doing really, Any help would be appreciated. If you need more information, please let me know. We get no message in game, no money is transfered, just this in the Console. Suggestion? Advice ?
Thanks in Advance
2012-04-04 01:37:29 [WARNING] Exception caught while receiving a vote notification javax.crypto.BadPaddingException: Data must start with zero at sun.security.rsa.RSAPadding.unpadV15(RSAPadding.java:325) at sun.security.rsa.RSAPadding.unpad(RSAPadding.java:272) at com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:357) at com.sun.crypto.provider.RSACipher.engineDoFinal(RSACipher.java:383) at javax.crypto.Cipher.doFinal(Cipher.java:1813) at com.vexsoftware.votifier.crypto.RSA.decrypt(RSA.java:65) at com.vexsoftware.votifier.net.VoteReceiver.run(VoteReceiver.java:114)
@Centurion2142
I'm not going to apologize for the delay of this response. If you can't post your problem in the right place (Tickets or at a minimum in the main discussion) it might not get the attention it needs. Discussion threads for other pages should only be used to comment on the contents itself such as typos, mistakes, incorrect information, suggestions, etc.
However, since I'm spending the time writing this reply and you asked; do you see a mention of VaultListener in the stack trace your provided? No. This is a Votifier-specific issue. As a matter of fact it is a common one and fully explained in their support pages.