Skip to content

Releases: Foxikle/FoxRank

2.0.0 beta

09 Aug 12:26
Compare
Choose a tag to compare
2.0.0 beta Pre-release
Pre-release

Prerelease Day!

FoxRank 2.0.0-beta1

Hey everyone. It sure has been a while. But I (hope that I am) and delivering the biggest update to FoxRank.

New Features:

  • Customizable ranks! (Finally, ik)
  • Permission node support
  • PAPI!
  • Customizable messages. (All except the messages in /rank, since I'm too lazy)
  • Switched to using PersistenDataContainer instead of TagContainer in the logs menu
  • Added the ability to permanantly mute players using -1 as the duration
  • Generalized default config settings to be more beginner friendly,
    • DisableChatFormatting: true -> false
    • Added notes to prevent errors in configuration
  • Slightly altered nick name system
    • Redid the name page.
    • Added an option to reuse a nickname /nick reuse
    • Ranks can be optionally included in the nickname system
  • Re-wrote duration parser.
  • Supports y for years
  • Supports compound durations like 1d12h
  • Added support for name spaced commands (/foxrank:rank <arguments>)
  • Italicized the /immuted message by defualt
  • Added a command to reload the plugin, /rank reload
  • Added anonymous statistic collection with bStats. The information I collect can be viewed here. If at any point you decide to opt out, you can do so in the configuration files of the bStats folder in your plugin directory.

Bug Fixes

  • Fixed an error when disabling the plugin if UseSqlStorage was off
  • Drastically improved performance of chat handling
  • Fixed command tab completions not working properly

Developer Changes

  • Removal of RankedPlayer and OfflineRankedPlayer (They were terribly optimized, and basically useless. Use permission nodes instead.)
  • Asynchronized all calls to the DataManager class. So all fetching of data is not on the main thread
  • Data Caching: All of the data stored about the user (Except for logging, that is fetched on demand) is stored in memory.
  • The api is pretty much useless now, so it might see a removal. Since y'know, the /rank and /setrank commands exist.

A huge thanks to everyone who has come here asking for support, it makes my day knowing that someone chose MY plugin to use. Thanks everyone :)
I am working on a bot to help with support tickets, so stick around for that :D

Please NOTE: The bungeecord part of this plugin has not yet been tested. So if you encounter any bugs please report them!

FoxRank 2.0.0-beta2

14 Aug 01:30
41d58ed
Compare
Choose a tag to compare
FoxRank 2.0.0-beta2 Pre-release
Pre-release

Bug Fixes

  • Fixed being able to set a player's rank that didn't exist. (Not really, it would default to the lowest power level).
  • Fixed updating the cached data with bungeecord. (or waterfall, I don't discriminate. Sadly no velocity)
  • Fixed numerous errors related to using the PlayerRank placeholder for an offline player.
  • Fixed an error whilst muting a player that was previously muted.
  • Fixed an error whilst trying to view the logs of a player that had none.
  • Removed 6 debug messages that slipped through the cracks
  • Fixed parsing entries whilst using sql storage
  • Added support for permanent mutes with sql storage
  • Tuned duration parsing to be less error prone when parsing permanent mutes

That's it!
Cheers,
Foxikle

1.9.4

21 May 13:26
9bb261e
Compare
Choose a tag to compare

FoxRank v1.9.4

Hey! This update is a small yet important one! You can now directly access the instance of FoxRank using Bukkit's ServicesManager.
To get started, add the following dependency tag to your pom.xml

<dependency>
    <groupId>me.foxikle</groupId>
    <artifactId>foxrank</artifactId>
    <version>1.9.4</version>
</dependency>

This tells maven to download the FoxRank library for you.

Next, to get an Instance of FoxRank, simply use Bukkit's ServicesManager class.
Here is an example class using it. Make sure this is in your main class' onEnable method.

import me.foxikle.foxrank.FoxRank;
import org.bukkit.plugin.java.JavaPlugin;

public class Demo implements JavaPlugin {

    private FoxRank foxRank;

    @Override
    onEnable() {
        foxrank = this.getServer().getServicesManager().load(FoxRank.class);
    }

    public FoxRank getFoxRank() {
        return foxRank;
    }
}

Now you should be all set to use the FoxRank library. If you encounter any bugs, please be sure to report them in the
issues tab.

Other Changes

  • RankedPlayer now requires an Instance of FoxRank. RankedPlayer(Player, FoxRank)
  • Fixed an issue with the Bungeecord Channel connecting even when it was disabled.

FoxRank 1.9.1

26 Mar 14:51
9d04205
Compare
Choose a tag to compare

FoxRank 1.9.1

What's Changed

  • The methods in ModerationAction are now public. Anyone can use them
There are no gameplay changes

Thanks guys!
-Foxikle

FoxRank Version 1.9

25 Mar 19:33
af368a8
Compare
Choose a tag to compare

FoxRank 1.9

Hello! It sure has been a while. This update brings support for SQL data storage and BungeeCord

New Features

Events

FoxRank now supports Spigot Events! The currently supported actions are:

  • Rank Changes (RankChangeEvent)
  • Player Vanish (PlayerVanishEvent)
  • Player Nickname (PlayerNicknameEvent)
  • Moderation Actions (Ban, Mute, Unban, Unmute) (ModerationActionEvent)

SQL Data Storage

FoxRank now supports SQL Storage. It is disabled by default, but can be enabled in the config.yml All of the credentials for the database can also be configured. It is recommended that you use SQL storage over yaml.

NOTE: If invalid credentials are provided, the plugin will disable itself.

BungeeCord Support

FoxRank now supports BungeeCord. You can enable this in your config.yml. This is only to be used if you are using a BungeeCord network. Any command can be run from a different server. FoxRank will provide tab-completions where applicable.

Miscellaneous changes

  • The Actionbar is now toggleable.
  • The Actionbar is now updated when the player joins or the plugin is enabled.
  • Fixed typo in the NicknameChangedMessage
  • Fixed unvanishing if your reset your nickname whilst being vanished
  • Fixed players that joined after you vanished being able to see you

Technical Changes

  • Logging Overhaul
    Recoded the entire logging system. Everything is stored in a much more robust and scalable format.
NOTE: There is a noticeable delay between sending the logs command and the menu popping up. This is intentional as fetching and parsing the data can take a second or two.
  • Rank#ofString now returns DEFAULT if the provided string is null instead of throwing an error.
  • Removed deprecated methods.
  • Minecraft Teams are unregistered on plugin disable.

As always if you encounter any bugs, please report them here.
Thanks everyone!
~ Foxikle

FoxRank 1.8 - Bans and Logging

29 Jan 02:34
20260a9
Compare
Choose a tag to compare

Hello! This update has been a long time in the making.
Here's what I've been busy working on:

Bans

  • Added a command to ban players. (Toggleable in the config.yml file) /ban <Player>, <Preset or 'CUSTOM'>, <Duration>, <Silent/Public>, [Custom reason. Only applies if the preset reason specified is 'CUSTOM']
  • Added a command to unban players.
  • Added ban message and ban duration presets to the config. BanDurations and BanReasons.
  • Ban messages are completely customizable. The default is inspired by the ban messages of Hypixel.
Preset message options
SECURITY: Suspicious activity has been detected on your account.
HACKING: Cheating through the use of unfair game mechanics. (Hacking)
DUPING: Using unfair game mechanics to duplicate items.
BUG_ABUSE: Using unintentional bugs or defects to your advantage.
INAPPROPRIATE_COSMETICS: Using a skin or cape that violates our terms of service.
INAPPROPRIATE_BUILD: Building a structure that violates our terms of service.
BOOSTING: Attempting to boost another player's stats
CUSTOM: This is overwritten, so any value you put here does not matter.
NOTE: You can ban, unban, mute, and unmute Offline players. (Their names will show up in tab completion, more info later)

Logging

  • Added a command to view the logs of a player. /logs <Player>, <Logtype>
  • All of the data is stored in Auditlog.yml.
NOTE: If a player is unmuted by themselves (And not a staff rank), this is natural. It simply means that the mute has expired.
Log types
'MUTE'
'UNMUTE'
'BAN'
'UNBAN'
'NICKNAME'

General Changes

  • The config.yml has been drastically improved for a better user experience.
  • Reworked placeholders slightly. Instead of being in only block capitols, there is a $ in front of the placeholder.

For Developers

FoxRank now supports offline players. You can access (Most) of the methods by instantiating OfflineRankedPlayer.
The methods RankedPlayer#mutePlayer(Instant duration, String reason), RankedPlayer#unmutePlayer(), and Rank#getRankFromString(String s) are now deprecated and will be removed at the release of FoxRank 1.9
They have been replaced by mutePlayer(RankedPlayer staff, Instant duration, String reason), mutePlayer(Instant duration, String reason), and Rank#ofString(String s).

If you wish to get the banned players, simply use FoxRank#getBannedPlayers(). This simply returns a list of offline players, similar to how Bukkit does.


NOTE: This update does require you to delete your config. A new one will be regenerated on the next server restart. I am working on a solution to detect and automatically transfer your data to a new format.

As always if you encounter any bugs, please report them here.
Thanks everyone!
~ Foxikle

(Edited 2/1/23)
Clarified support for offline players Added note about future plans for backward compatibility.

FoxRank v1.7

07 Jan 15:43
3085e9e
Compare
Choose a tag to compare

Customization Update (1.7)

What's Changed

The ability to cosmetically disable ranks.
Customizing EVERY message!
These can be found in the config.yml
Currently these are the messages you can configure:

Mutes

  • Initial Mute message (MuteMessage)
  • Muting a player that is already muted (MuteCommandPlayerAlreadyMuted)
  • Unmuting a player that isn't muted (UnmuteCommandPlayerNotMuted)
  • Using /immuted whilst not being muted (ImmutedCommandNotMutedMessage)
  • The message sent to the sender of /mute if successful (UnmuteSenderMessage)
  • The message sent to the player being unmuted (UnmuteRecieverMessage)
  • Attempting to mute a player with a higher powerlevel (MutePlayerWithHigherPowerLevelMessage)
  • Attempting to chat while muted (ChatWhileMutedMessage)
  • Immuted message (IAmMutedCommandMessageToMuted) & (IAmMutedCommandMessageFromMuted)

Ranks

  • Rank change (RankIsNowMessage)

Nicknames

  • Trying to change your nickname to something longer than 16 characters (NicknameTooLongMessage)
  • Successfully updating your nickname (NickNameChangedMessage)
  • Using a blacklisted nickname (BlacklistedNicknameMessage);

Vanishing

  • Going into vanish (VanishMessage)
  • Going out of vanish(UnvanishMessage)

General

  • Lacking permissions (NoPermissionMessage)
  • Command Disabled (CommandDisabledMessage)
  • Missing Arguments (MissingArgsMessage)
  • Invalid arguments (InvalidArgumentMessage)

All messages are configurable using § color codes.
Many messages have placeholdors (defined in the comment above explaining each option)
Many (but not all) messages support making a new line using \n

NOTE: This update does require you to delete your config. A new one will be regenerated on the next server restart.

As always if you encounter any bugs, please report them here.
Have a great 2023!
Thanks everyone!
~ Foxikle

1.6.3.2

23 Nov 01:57
c3051a8
Compare
Choose a tag to compare

FoxRank V1.6.3.2

What's Changed

  • Added a method to get a formatted duration ex. 9d 23h 59m 59s (RankedPlayer#getFormattedMuteDuration())
  • Neatened Mute code to be more consistent.
  • Muting a player will send them a message similar to the message when they attempt to chat.
  • Unmuting a player sends them a message saying they've been unmuted.
  • Unmutes will now trigger on the PlayerJoinEvent as well as the AsyncPlayerChatEvent

For Developers:

You can no longer directly access the methods in FoxRank, so please use the methods on RankedPlayer instead.


That's it everyone! This list is not exhaustive, so some changes may have been made, but are minor enough as to not necessitate noting.

If you find any bugs or want any features please head over to the issues tab, here.

Thanks!
-Foxikle

FoxRank 1.6.3 -- HotFix 1

17 Nov 03:28
8c55a7a
Compare
Choose a tag to compare

Whoops! Somehow I managed to not log mutes while using the command.

What's Changed

  • Logging mutes while using the /mute command.

Thanks!
-Foxikle

FoxRank v1.6.3

17 Nov 03:22
609e810
Compare
Choose a tag to compare

FoxRank v1.6.3

Hello all! About a week ago I proposed some changes I'd like to make. I listed them in order that I'd be making them, and the first two were about muting players. Today's update is rather small. But this update includes:

  • More api support via github packages.
  • Api support for mute related activities.
  • A command to mute players /mute <player> <duration (1d, 4h, 30m etc)> <reason>
  • A separate log file for mutes
  • Fixed a minor grammatical error in NicknameLog.yml

That's all for today folks,
As always if you find any issues please report them here

-Foxikle