Also know as, the page you go to when NuVotifier isn't doing what it is supposed to.
From maintaining NuVotifier for some time, I receive a lot of the same questions. I try to answer them the best I can in this document.
Votifier v1 isn't smart enough to recover from errors. Most server list votifier implementations are even stupid enough to ignore connection errors and report the vote as a success. Thus when using Votifier v1, there is no way to be sure that a vote is ever received by the receiving server.
Usually when NuVotifier doesn't report anything in the logs, the voting website is unable to connect to NuVotifier in the first place. The following things are usually to blame:
- NuVotifier errored out during startup - check your startup logs
- NuVotifier couldn't bind to the ip/port combination - again, check your start up logs. I have another section on NuVotifier failing to bind errors.
- NuVotifier is not bound to the correct IP - Check the bind ip parameter in the
NuVotifier configuration. If that doesn't work, try
0.0.0.0
- this will tell NuVotifier to bind to ALL IPs it can. - You entered the port in incorrectly - double check the NuVotifier port in the configuration.
- You have a firewall in the way - If you are running on Windows, try to
temporarily disable the firewall. Linux has a couple of different of culprits,
including
iptables
andufw
.
How to treat an IOException depends on which specific IOException you receive:
This means that the voting website 'closed' the TCP connection to NuVotifier before it could read the entire Vote message. NuVotifier can't fix this, because this is an implementation issue with voting lists. If you are receiving this exception, report this to voting lists, not NuVotifier.
If you are coming from a server list from a report of this error, consider implementing the Votifier v2 protocol - it is more secure, easier to implement, easier to diagnose, and is more resilient to network issues like this. Some implementations for popular languages already exist including PHP, Node.js, Golang, and Java.
This means that your computer's operating system closed the TCP connection to NuVotifier before it could read the entire Vote message. Usually this is due to a firewall - disable firewalls on your system and try again.
Other errors don't show up commonly enough - report an issue with your configurations and server logs.
NuVotifier comes with two baked in forwarding modes: proxy and pluginMessaging. Proxy mode should only ever be used when your network includes multiple BungeeCords. Otherwise, you should always use pluginMessaging - it is easier to set up and includes more forwarding mechanics.
First, make sure you are using the correct forwarding mode for your setup - you could save yourself a lot of headaches by using pluginMessaging instead of proxy mode. If you are still having issues, see the following sections.
PluginMessaging is a lot more straight forward than other forwarding methods. If it does not work, check the following things:
- Is the plugin messaging channel the same everywhere? Make sure it is lower case and includes a colon! (Previous NuVotifier versions defaulted to an invalid channel before 1.13 was released.)
- Is the server you are having issues with either on the blacklist or not on the whitelist?
A lot more can go wrong when using proxy. A lot of people do not set it up correctly. If you are using proxy mode, make absolutely sure you actually need proxy mode. With that being said, here are some things you can check:
- For each backend server, diagnose connection issues according to simply not getting votes - usually the server is unable to bind to a port, or there is another issue related to firewalls, ports, and that sort of thing.
- Ensure you are using the v2 Votifier token generated by each server. This is
NOT the key found in the
rsa/
folder. - Check ALL of your logs. One of them says something. It doesn't? You are lying. ONE OF THEM DOES. Check them again.
The answer is yes if the original Votifier supported it or if the plugin says they support NuVotifier.
Reloads are not supported by NuVotifier. Restart your server, and use
/nvreload
in the console to reload the NuVotifier configuration.
No its not. One of your vote listeners is.