azuvotifier

A fork of NuVotifier with various enhancements, such as Redis forwarding and support for additional platforms. From the original README:
NuVotifier is a secure alternative to using the original Votifier project. NuVotifier will work in place of Votifier - any vote listener that supports Votifier will also support NuVotifier.
Useful resources
Supported platforms
azuvotifier is currently supported on the following platforms:
- CraftBukkit, Spigot, Paper, Pufferfish or Purpur (1.8.8+)
- Older versions might work but no support will be provided.
- Any fork without significant breaking changes should also work.
- Folia (1.21.5+)
- Fabric (1.21.10)
- Sponge 11 (1.20+)
- BungeeCord/Waterfall
- Velocity
It can also run as a standalone application using the redis and proxy forwarding methods.
Running
You can get the latest release directly from GitHub or Modrinth. Then, follow the instructions for your server software or the standalone version:
Bukkit, Folia, Sponge, BungeeCord and Velocity
Drag and drop the downloaded JAR into your plugins/ folder. You should've downloaded the JAR that has your server software in its name.
If you've done everything right, it should work out of the box.
Fabric
Drag and drop the downloaded JAR into your mods/ folder. You'll also need to download and install
Fabric API.
Standalone
Open up the terminal, go into the directory the previously downloaded JAR is at, and then run it like this:
$ java -Xms512M -Xmx512M -jar azuvotifier-standalone.jar
You can also use command line arguments to configure some settings, such as the hostname:
$ java -Xms512M -Xmx512M -jar azuvotifier-standalone.jar --host 127.0.0.1 --config /etc/nuvotifier/
To get a full list of options, run:
$ java -jar azuvotifier-standalone.jar --help
Standalone with Docker
A Docker image for the standalone version is available at Docker Hub. To pull it, run:
$ docker pull azurejelly/standalone-nuvotifier:latest # for the latest stable release
$ docker pull azurejelly/standalone-nuvotifier:unstable # for the latest commit on master
You can then run the image using a command like:
$ docker run -p 8192:8192 \
-v /etc/nuvotifier:/app/config \
--restart unless-stopped \
--name nuvotifier \
azurejelly/standalone-nuvotifier:latest \
--port 8192
This will:
- Expose port 8192 on the host machine;
- Map
/etc/nuvotifier(host) to/app/config(container) using socket mounts; - Restart the container automatically unless stopped;
- Name the container
nuvotifier; - Use the
azurejelly/standalone-nuvotifier:latestimage; - And pass
--port 8192as a command line argument to NuVotifier.- Not required as
8192/tcpis already the default port, but helps to show that you can pass arguments such as--portor--config.
- Not required as
If you want to use Docker Compose, an example docker-compose.yml file is available on the repository.
License
azuvotifier is GNU GPLv3 licensed. This project's license can be viewed here.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 4h ago | 1 | ||||
| 4h ago | 1 | ||||
| 4h ago | 1 | ||||
| 4h ago | 1 | ||||
| 4h ago | 1 | ||||
|
R
3.3.6
|
4h ago | 1 | |||
|
R
3.3.6
|
4h ago | 1 | |||
|
R
3.3.6
|
4h ago | 1 | |||
|
R
3.3.6
|
4h ago | 1 | |||
|
R
3.3.5
|
4h ago | 1 | |||
|
R
3.3.5
|
4h ago | 1 | |||
|
R
3.3.5
|
4h ago | 1 | |||
|
R
3.3.5
|
4h ago | 1 | |||
|
R
3.3.4
|
4h ago | 1 | |||
|
R
3.3.4
|
4h ago | 1 | |||
|
R
3.3.4
|
4h ago | 1 | |||
|
R
3.3.4
|
4h ago | 1 | |||
|
R
3.3.3
|
4h ago | 1 | |||
|
R
3.3.3
|
4h ago | 1 | |||
|
R
3.3.3
|
4h ago | 1 | |||
|
R
3.3.3
|
4h ago | 1 | |||
|
R
3.3.2
|
4h ago | 1 | |||
|
R
3.3.2
|
4h ago | 1 | |||
|
R
3.3.2
|
4h ago | 1 | |||
|
R
3.3.2
|
4h ago | 1 | |||
|
R
3.3.1
|
4h ago | 1 | |||
|
R
3.3.1
|
4h ago | 1 | |||
|
R
3.3.1
|
4h ago | 1 | |||
|
R
3.3.1
|
4h ago | 1 | |||
|
R
3.3.0
|
4h ago | 1 | |||
|
R
3.3.0
|
4h ago | 1 | |||
|
R
3.3.0
|
4h ago | 1 | |||
|
R
3.3.0
|
4h ago | 1 | |||
|
R
3.2.0
|
4h ago | 1 | |||
|
R
3.2.0
|
4h ago | 1 | |||
|
R
3.2.0
|
4h ago | 1 |
- Re-organize
commonmodule
## User-facing changes
- Add Fabric support
- Update documentation and artifact names to use 'azuvotifier' instead of 'nuvotifier'
- Fix standalone implementation not following the same error logging behavior as other platforms
- Use
ProtocolVersion#getHumanReadable()to display protocol version on logs - Replace older Sponge commands
- To reload the plugin, use
/votifier reload - To send a test vote, use
/votifier test
## Internal changes
- Re-organize Gradle version catalog
- Updated
velocity-apito3.4.0-SNAPSHOT - Replaced
https://nexus.velocitypowered.comwith newer PaperMC repository - Add java and publishing conventions
- Remove redundant
foliamodule - Use Lombok for utility classes and some getters
- Add
ProtocolVersion#getHumanReadable()
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.6...3.4.0-beta.0
- Re-organize
commonmodule
## User-facing changes
- Add Fabric support
- Update documentation and artifact names to use 'azuvotifier' instead of 'nuvotifier'
- Fix standalone implementation not following the same error logging behavior as other platforms
- Use
ProtocolVersion#getHumanReadable()to display protocol version on logs - Replace older Sponge commands
- To reload the plugin, use
/votifier reload - To send a test vote, use
/votifier test
## Internal changes
- Re-organize Gradle version catalog
- Updated
velocity-apito3.4.0-SNAPSHOT - Replaced
https://nexus.velocitypowered.comwith newer PaperMC repository - Add java and publishing conventions
- Remove redundant
foliamodule - Use Lombok for utility classes and some getters
- Add
ProtocolVersion#getHumanReadable()
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.6...3.4.0-beta.0
- Re-organize
commonmodule
## User-facing changes
- Add Fabric support
- Update documentation and artifact names to use 'azuvotifier' instead of 'nuvotifier'
- Fix standalone implementation not following the same error logging behavior as other platforms
- Use
ProtocolVersion#getHumanReadable()to display protocol version on logs - Replace older Sponge commands
- To reload the plugin, use
/votifier reload - To send a test vote, use
/votifier test
## Internal changes
- Re-organize Gradle version catalog
- Updated
velocity-apito3.4.0-SNAPSHOT - Replaced
https://nexus.velocitypowered.comwith newer PaperMC repository - Add java and publishing conventions
- Remove redundant
foliamodule - Use Lombok for utility classes and some getters
- Add
ProtocolVersion#getHumanReadable()
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.6...3.4.0-beta.0
- Re-organize
commonmodule
## User-facing changes
- Add Fabric support
- Update documentation and artifact names to use 'azuvotifier' instead of 'nuvotifier'
- Fix standalone implementation not following the same error logging behavior as other platforms
- Use
ProtocolVersion#getHumanReadable()to display protocol version on logs - Replace older Sponge commands
- To reload the plugin, use
/votifier reload - To send a test vote, use
/votifier test
## Internal changes
- Re-organize Gradle version catalog
- Updated
velocity-apito3.4.0-SNAPSHOT - Replaced
https://nexus.velocitypowered.comwith newer PaperMC repository - Add java and publishing conventions
- Remove redundant
foliamodule - Use Lombok for utility classes and some getters
- Add
ProtocolVersion#getHumanReadable()
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.6...3.4.0-beta.0
- Re-organize
commonmodule
## User-facing changes
- Add Fabric support
- Update documentation and artifact names to use 'azuvotifier' instead of 'nuvotifier'
- Fix standalone implementation not following the same error logging behavior as other platforms
- Use
ProtocolVersion#getHumanReadable()to display protocol version on logs - Replace older Sponge commands
- To reload the plugin, use
/votifier reload - To send a test vote, use
/votifier test
## Internal changes
- Re-organize Gradle version catalog
- Updated
velocity-apito3.4.0-SNAPSHOT - Replaced
https://nexus.velocitypowered.comwith newer PaperMC repository - Add java and publishing conventions
- Remove redundant
foliamodule - Use Lombok for utility classes and some getters
- Add
ProtocolVersion#getHumanReadable()
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.6...3.4.0-beta.0
- Add experimental
skip-offline-playerssetting ([#13](https://github.com/azurejelly/azuvotifier/issues/13)) - If set to
true, it prevents VotifierEvent from firing if the player who voted isn't online. - Make forwarding method setting case-insensitive on Bukkit ([#14](https://github.com/azurejelly/azuvotifier/issues/14))
- Removed
Defaulting to noop implementationmessage on Bukkit, Sponge and Velocity - Fix
proxyforwarding method on BungeeCord
## Internal changes
- Specify TCP protocol on the Docker
EXPOSEinstruction - Rename default Docker Compose container name to
azuvotifier
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.5...3.3.6
- Add experimental
skip-offline-playerssetting ([#13](https://github.com/azurejelly/azuvotifier/issues/13)) - If set to
true, it prevents VotifierEvent from firing if the player who voted isn't online. - Make forwarding method setting case-insensitive on Bukkit ([#14](https://github.com/azurejelly/azuvotifier/issues/14))
- Removed
Defaulting to noop implementationmessage on Bukkit, Sponge and Velocity - Fix
proxyforwarding method on BungeeCord
## Internal changes
- Specify TCP protocol on the Docker
EXPOSEinstruction - Rename default Docker Compose container name to
azuvotifier
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.5...3.3.6
- Add experimental
skip-offline-playerssetting ([#13](https://github.com/azurejelly/azuvotifier/issues/13)) - If set to
true, it prevents VotifierEvent from firing if the player who voted isn't online. - Make forwarding method setting case-insensitive on Bukkit ([#14](https://github.com/azurejelly/azuvotifier/issues/14))
- Removed
Defaulting to noop implementationmessage on Bukkit, Sponge and Velocity - Fix
proxyforwarding method on BungeeCord
## Internal changes
- Specify TCP protocol on the Docker
EXPOSEinstruction - Rename default Docker Compose container name to
azuvotifier
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.5...3.3.6
- Add experimental
skip-offline-playerssetting ([#13](https://github.com/azurejelly/azuvotifier/issues/13)) - If set to
true, it prevents VotifierEvent from firing if the player who voted isn't online. - Make forwarding method setting case-insensitive on Bukkit ([#14](https://github.com/azurejelly/azuvotifier/issues/14))
- Removed
Defaulting to noop implementationmessage on Bukkit, Sponge and Velocity - Fix
proxyforwarding method on BungeeCord
## Internal changes
- Specify TCP protocol on the Docker
EXPOSEinstruction - Rename default Docker Compose container name to
azuvotifier
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.5...3.3.6
- Update relocations
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.4...3.3.5
- Update relocations
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.4...3.3.5
- Update relocations
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.4...3.3.5
- Update relocations
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.4...3.3.5
- Add bStats for collecting anonymous statistics
- Can be disabled under
config.yml(orconfig.tomlif you're using Velocity) - Metric collection on Sponge is configured through the
/config/sponge/metrics.conffile and is disabled by default
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.3...3.3.4
- Add bStats for collecting anonymous statistics
- Can be disabled under
config.yml(orconfig.tomlif you're using Velocity) - Metric collection on Sponge is configured through the
/config/sponge/metrics.conffile and is disabled by default
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.3...3.3.4
- Add bStats for collecting anonymous statistics
- Can be disabled under
config.yml(orconfig.tomlif you're using Velocity) - Metric collection on Sponge is configured through the
/config/sponge/metrics.conffile and is disabled by default
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.3...3.3.4
- Add bStats for collecting anonymous statistics
- Can be disabled under
config.yml(orconfig.tomlif you're using Velocity) - Metric collection on Sponge is configured through the
/config/sponge/metrics.conffile and is disabled by default
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.3...3.3.4
- Revert commit that moves Bukkit plugin to platform-specific package as it breaks existing plugins
- Use non-deprecated Vote#getTimestamp() method on Vote constructor
- Use the run-task Gradle plugin
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.2...3.3.3
- Revert commit that moves Bukkit plugin to platform-specific package as it breaks existing plugins
- Use non-deprecated Vote#getTimestamp() method on Vote constructor
- Use the run-task Gradle plugin
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.2...3.3.3
- Revert commit that moves Bukkit plugin to platform-specific package as it breaks existing plugins
- Use non-deprecated Vote#getTimestamp() method on Vote constructor
- Use the run-task Gradle plugin
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.2...3.3.3
- Revert commit that moves Bukkit plugin to platform-specific package as it breaks existing plugins
- Use non-deprecated Vote#getTimestamp() method on Vote constructor
- Use the run-task Gradle plugin
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.2...3.3.3
- Add experimental Folia scheduler
- Move Bukkit code to platform-specific package
- Mention experimental Folia support on README
- Update Gradle wrapper to 8.14.2
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.1...3.3.2
- Add experimental Folia scheduler
- Move Bukkit code to platform-specific package
- Mention experimental Folia support on README
- Update Gradle wrapper to 8.14.2
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.1...3.3.2
- Add experimental Folia scheduler
- Move Bukkit code to platform-specific package
- Mention experimental Folia support on README
- Update Gradle wrapper to 8.14.2
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.1...3.3.2
- Add experimental Folia scheduler
- Move Bukkit code to platform-specific package
- Mention experimental Folia support on README
- Update Gradle wrapper to 8.14.2
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.1...3.3.2
- Mark Folia as supported
- Update
paper-apito 1.21.5 - Other minor code changes
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.0...3.3.1
- Mark Folia as supported
- Update
paper-apito 1.21.5 - Other minor code changes
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.0...3.3.1
- Mark Folia as supported
- Update
paper-apito 1.21.5 - Other minor code changes
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.0...3.3.1
- Mark Folia as supported
- Update
paper-apito 1.21.5 - Other minor code changes
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.3.0...3.3.1
- Support for using URIs for Redis connection info
- Re-added Sponge support, rewritten for API versions over 11.0.0
- Return an error during
/nvreloadif forwarding methods fail to be initialized - Fix any missing log messages regarding which method the plugin is using to receive forwarded votes
- Fix Paper 1.21.3 being detected as Folia and dispatching VotifierEvent asynchronously
- Changed package structure on most modules
- Update netty to version
4.1.116.Final - Update jedis to version
5.2.0
- Full Changelog**: https://github.com/azurejelly/azuvotifier/compare/3.2.0...3.3.0