NickAPI | 1.8.8, 1.20.2+, 1.21 icon

NickAPI | 1.8.8, 1.20.2+, 1.21 -----

An api to nick player with a lot of features




+ Updated to 1.21.4
----------, Dec 12, 2024

Changelogs:
+ updated to 1.21.3
* bug fixes with refresh player
* changed the code for better structure
----------, Nov 19, 2024

Changelogs:

+ added a config.yml
+ added NickAPI.getNickedPlayer which requires the nicked name as parameter.
* fixed a bug that 1.8.8 servers got spammed with a debug message.
----------, Oct 22, 2024

Changelogs:
+ added NickAPI.getNickedPlayer( String name )
* forgot to remove the debug message for 1.8.8 servers*
----------, Oct 22, 2024

New API methods:
NickAPI::getNickedPlayers()
NickAPI::getUniqueId()
----------, Sep 24, 2024

Highly recommended to update the plugin to 7.2.

Changelogs:

+ Removed configuration parts from NickAPI class and put it to NickConfig class
+ added a second respawn method for 1.8.8 in order to prevent problems
+ removed MineSkin library and using Apache HTTPClient5 to request data from the websites (Mojang/Mineskin API usw..) File size decreased from 4MB to ~ 2MB.
* fixed an issue for players not getting nicked
* prevent a bug that cracked players getting kicked while unnicked (Use NickConfig.setCracked( true ) to fix it )

Please use for Maven the version 7.2-SNAPSHOT - Older versions may be removed due to API changes & bugs
----------, Sep 14, 2024

Note, that the API has been recoded. The JavaDocs are available here: https://haoshoku.xyz/nickapi

This hotfix contains some checks to the java version for the mineskin api because it has been compiled on Java 21. Since Java 21 is the LTS version of Java, consider updating to Java 21. Yes, even with some forks of 1.8.x, it is possible to run the server with Java 21. Nevertheless here the hotfix.

The NickAPI has been completely recoded for a better experience. The API has been changed, so please, if you use NickAPI 7.0, be sure to update your plugins as well.

Furthermore, 7.0 is pretty new. If you experience bugs, feel free to report it on our Discord server.
https://discord.gg/uFhUc2W

Changelogs:
+ New better structured API methods
+ added uuid spoof for 1.20.2+ and 1.21
+ Support of MineSkin ( you need to create your own API key on https://mineskin.org/apikey )
+ NickConfig has been removed because there is no use for it anymore
- dropped support between version 1.9 - 1.20.1

NickAPI 7.0 only supports 1.8.8, 1.20.2+, 1.21

The performance has been greatly improved, so it is recommended, to use this instead of NickAPI 6.x. If you have any questions, feel ask it on Discord.

Furthermore, my maven repository is active again!

Code (Text):
    <repositories>
        <repository>
            <id>nickapi</id>
            <url>https://haoshoku.xyz:8081/repository/default/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>xyz.haoshoku.nick</groupId>
            <artifactId>nickapi</artifactId>
            <version>7.0-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
----------, Sep 6, 2024

Note, that the API has been recoded. The JavaDocs are available here: https://haoshoku.xyz/nickapi

This hotfix contains some checks to the java version for the mineskin api because it has been compiled on Java 21. Since Java 21 is the LTS version of Java, consider updating to Java 21. Yes, even with some forks of 1.8.x, it is possible to run the server with Java 21. Nevertheless here the hotfix.

The NickAPI has been completely recoded for a better experience. The API has been changed, so please, if you use NickAPI 7.0, be sure to update your plugins as well.

Furthermore, 7.0 is pretty new. If you experience bugs, feel free to report it on our Discord server.
https://discord.gg/uFhUc2W

Changelogs:
+ New better structured API methods
+ added uuid spoof for 1.20.2+ and 1.21
+ Support of MineSkin ( you need to create your own API key on https://mineskin.org/apikey )
+ NickConfig has been removed because there is no use for it anymore
- dropped support between version 1.9 - 1.20.1

NickAPI 7.0 only supports 1.8.8, 1.20.2+, 1.21

The performance has been greatly improved, so it is recommended, to use this instead of NickAPI 7.0. If you have any questions, feel ask it on Discord.

Furthermore, my maven repository is active again!

Code (Text):
    <repositories>
        <repository>
            <id>nickapi</id>
            <url>https://haoshoku.xyz:8081/repository/default/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>xyz.haoshoku.nick</groupId>
            <artifactId>nickapi</artifactId>
            <version>7.0-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
----------, Sep 5, 2024

Note, that the API has been recoded. The JavaDocs are available here: https://haoshoku.xyz/nickapi

The NickAPI has been completely recoded for a better experience. The API has been changed, so please, if you use NickAPI 7.0, be sure to update your plugins as well.

Furthermore, 7.0 is pretty new. If you experience bugs, feel free to report it on our Discord server.
https://discord.gg/uFhUc2W

Changelogs:
+ New better structured API methods
+ added uuid spoof for 1.20.2+ and 1.21
+ Support of MineSkin ( you need to create your own API key on https://mineskin.org/apikey )
+ NickConfig has been removed because there is no use for it anymore
- dropped support between version 1.9 - 1.20.1

NickAPI 7.0 only supports 1.8.8, 1.20.2+, 1.21

The performance has been greatly improved, so it is recommended, to use this instead of NickAPI 7.0. If you have any questions, feel ask it on Discord.

Furthermore, my maven repository is active again!

Code (Text):
    <repositories>
        <repository>
            <id>nickapi</id>
            <url>https://haoshoku.xyz:8081/repository/default/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>xyz.haoshoku.nick</groupId>
            <artifactId>nickapi</artifactId>
            <version>7.0-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
----------, Sep 4, 2024

Note, that the API has been recoded. The JavaDocs are available here: https://haoshoku.xyz/nickapi

The NickAPI has been completely recoded for a better experience. The API has been changed, so please, if you use NickAPI 7.0, be sure to update your plugins as well.

Furthermore, 7.0 is pretty new. If you experience bugs, feel free to report it on our Discord server.
https://discord.gg/uFhUc2W

Changelogs:
+ New better structured API methods
+ added uuid spoof for 1.20.2+ and 1.21
+ Support of MineSkin ( you need to create your own API key on https://mineskin.org/apikey )
+ NickConfig has been removed because there is no use for it anymore
- dropped support between version 1.9 - 1.20.1

NickAPI 7.0 only supports 1.8.8, 1.20.2+, 1.21

The performance has been greatly improved, so it is recommended, to use this instead of NickAPI 7.0. If you have any questions, feel ask it on Discord.

Furthermore, my maven repository is active again!

Code (Text):
    <repositories>
        <repository>
            <id>nickapi</id>
            <url>https://haoshoku.xyz:8081/repository/default/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>xyz.haoshoku.nick</groupId>
            <artifactId>nickapi</artifactId>
            <version>7.0-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
----------, Sep 4, 2024

+ updated to 1.20.6 / 1.21
* some bugfixes
----------, Jul 11, 2024

+ brought back support for 1.20.0 - 1.20.4
+ using Papers method of refreshing player for 1.8.x and 1.20.x
----------, Feb 19, 2024

+ updated to 1.20.4
- dropped support for 1.20 - 1.20.3
----------, Jan 30, 2024

- dropped support for 1.17 - 1.19 because it is annoying to support it while using mojang maps
* fixed possible NullPointerException kick that has been caused by NPC plugins and exist for a long time (!)
----------, Jul 5, 2023

1.20 update
* plugin is no longer obfuscated
----------, Jun 13, 2023

* updated to 1.19.4
- dropped support for 1.19.3

https://haoshoku.xyz/go/discord for support
----------, Mar 27, 2023

PLEASE READ THE FOLLOWING CHANGELOG BEFORE INSTALLING THE UPDATE.
THIS IS A HOTFIX UPDATE, IT IS HIGHLY RECOMMENDED TO DELETE THE OLD 6.5 VERSION AND USE THIS ONE. THIS PREVENTS THE PLAYER FROM GETTING KICKED.

CHANGELOGS:
+ added support for 1.19.3
* greatly improved code
* changed default value of respawn_method from 0 to 1.
- removed version compatibility for 1.19 - 1.19.2

This update may be considered as a beta version. If you experience any kind of bugs, feel free to report it on https://haoshoku.xyz/go/discord
UUIDSpoof is disabled on 1.19 because the clients are getting kicked out and I still didn't find a solution for it. Maybe it will not work in the future because of Mojangs profile key management.
----------, Dec 24, 2022

PLEASE READ THE FOLLOWING CHANGELOG BEFORE INSTALLING THE UPDATE

CHANGELOGS:
+ added support for 1.19.3
* greatly improved code
* changed default value of respawn_method from 0 to 1.
- removed version compatibility for 1.19 - 1.19.2

This update may be considered as a beta version. If you experience any kind of bugs, feel free to report it on https://haoshoku.xyz/go/discord
UUIDSpoof is disabled on 1.19 because the clients are getting kicked out and I still didn't find a solution for it. Maybe it will not work in the future because of Mojangs profile key management.
----------, Dec 23, 2022

This plugin should work now for 1.19.2 without any mistakes (hopefully)
----------, Oct 27, 2022

* fixed a bug for 1.19.2 servers
* cleaned the code a little bit
* fixed a possible nullpointerexception
----------, Oct 2, 2022

* updated to 1.19
* fixed some errors in the console that could happen after a reload
----------, Jun 8, 2022

* updated to 1.19
* fixed some errors in the console that could happen after a reload
----------, Jun 8, 2022

PLEASE DELETE YOUR CONFIG.YML BEFORE INSTALLING THIS UPDATE!

Changelogs:
+ 1.18.2 support

+ added a new method of refreshing player because people had problems with the current one

* fixed a bug that vanish plugins may not work for nicked players (This bugfix does only work if you do NOT spoof the uuids)

* internal changes for me -> NickAPI is now a multi module project that helps me to work quicker ;)

- DROPPED SUPPORT for 1.9, 1.10, 1.11, 1.13, 1.14, 1.15 ~ these versions are not or less used according to bStats, so I decided to remove the support for these versions to have less effort if I need to fix bugs
----------, Mar 4, 2022

PLEASE DELETE YOUR CONFIG.YML BEFORE INSTALLING THIS UPDATE!

Changelogs:
+ 1.18.2 support

+ added a new method of refreshing player because people had problems with the current one

* fixed a bug that vanish plugins may not work for nicked players (This bugfix does only work if you do NOT spoof the uuids)

* internal changes for me -> NickAPI is now a multi module project that helps me to work quicker ;)

- DROPPED SUPPORT for 1.9, 1.10, 1.11, 1.13, 1.14, 1.15 ~ these versions are not or less used according to bStats, so I decided to remove the support for these versions to have less effort if I need to fix bugs
----------, Mar 4, 2022

Changelogs:
~ fixed some problems while changing the skin
~ the plugin is now full /reload compatible (but not plugman since it can't detect its dependencies)
~ updated maven

Especially for 1.18+ servers, it is highly recommended to update.
----------, Jan 4, 2022

Changelogs:
~ fixed some problems while changing the skin
~ the plugin is now full /reload compatible (but not plugman since it can't detect its dependencies)
~ updated maven

Especially for 1.18+ servers, it is highly recommended to update.
----------, Jan 4, 2022

Changelogs:
* Fixed an issue with the respawn packet
* Fixed an issue that the plugin caused error for 1.9 - 1.12 servers
* cleaned up some code
- Removed reload compatibility

6.3.1 has been skipped because it has been already released on my discord server and yeah.. this has further bugfixes.

Discord support: https://haoshoku.xyz/go/discord
----------, Dec 16, 2021

PLEASE RESET YOUR CONFIG.YML OF NICKAPI IF YOU WANT TO INSTALL THIS UPDATE!

+ updated to 1.18
+ NickAPI uses Google guava cache now. It expires after a specific time now. You can change it through the config or through API.
* fixed a bug that NickAPI destroys the compatibility of player#setPlayerListName. (You should never use this method, but yeah.. it is now compatible with NickAPI)
* fixed a bug on update checker

Feature requests: https://haoshoku.xyz/go/discord
----------, Dec 4, 2021

In this update I fixed the issue with uuid spoofing for 1.17 version and fixed a possible infinite loop that could've happen if people fucks up their login/join system which is pretty unlikely to happen. You should update your NickAPI version if you are using 1.17. For versions below that you don't really need to.

But nevermind I am only supporting the latest version.

Changelogs:
+ added a limit on nicking if player hasn't called PlayerJoinEvent at least one time
* fixed 1.17 bugs in PacketPlayOutPlayerInfo
- removed automatically ChatColor#translateAlternatesColorCodes in the #nick command, you need to put it yourself now. The reason for that is not to allow people using colored nicks without specific permissions
----------, Jun 30, 2021

In this version I added 1.17 compatibility with a tons of bugfixes that could've happen due to race conditions -> The result was that all players could've been kicked. In this update, everything should be fixed.
Furthermore a class named "NickScoreboard" has been added to give nicked names a scoreboard team without doing it yourself. It should've been compatibile with your current scoreboard plugin. If it isn't, create your NickScoreboard with a delayed task.
I removed 1.16.0 - 1.16.2 compatibility because it is annoying me for a developer to support every subversion instead of the latest version.
Means: NickAPI only support the latest subversion of a "big" version.

Please report your experience with this update on my Discord server: https://haoshoku.xyz/go/discord

Changelogs:
+ added 1.17 compatibility
+ added the class NickScoreboard
+ added a notification if a uuid is being used multiple times -> player gets their own uuid back if thats the case
* race conditions bugfixes (+ NPE)
- removed compatibility for 1.16.0 - 1.16.2
----------, Jun 20, 2021

I really thought 6.1.2 would be a stable version with no bug reports yet. But then a lot of people came and reported me tons of bugs within 1 week. Wow.

This update fixes a lot of possible occurable bugs with ViaVersions or NullPointerExceptions that could've let people kick from the server.
After a lot of tests I hope this version didn't make cause new bugs. If so, please downgrade to 6.1.2 but this version should be stable.

Changelogs:
+ added NotNull annotation
* fixed an occurable NullPointerException in nickExists method
* fixed an occurable NullPointerException in tab complete implement
* fixed a race condition problem within nick management
* Important: #refreshPlayer is limited now on 1 each nicking. This means you can't spam #refreshPlayer anymore.
* Most important: After spamming #refreshPlayer the plugin ViaVersion has caused error and disconnected all of the players within the game. This bug has been fixed within the packet listener by creating new instances instead of using the current instances (made the code uglier but probably needed to do it because of ViaVersion translator)

Post your experience or your support request in https://haoshoku.xyz/go/discord
----------, Apr 13, 2021

Changelogs:

+ added
Code (Text):
String[] getSkinData();
+ added
Code (Text):
void refreshPlayerSync();
* fixed a bug that caused by Metrics

refreshPlayerSync is a synchronous call of refreshPlayer which is by default asynchronously. If you want to change your skin, do not use this method. Otherwise your server will freeze until he gets the answer from the mojang servers.
This method has been added because for implementing features on PlayerLoginEvent which is required to be sync.

Suggestions here: https://haoshoku.xyz/go/discord
----------, Jan 2, 2021

* 6.1.1 Hotfix Update: Fixed an issue on UpdateChecker

6.1 Information:
Please delete your config.yml of NickAPI before installing this update.

NickAPI v6.0.5 was pretty stable. But v6.1 will be definitely more stable.
Please read the changelogs carefully. It is important to you what has been changed.
Thanks to @HKNGLGN for helping and testing the beta versions of NickAPI with me.

Changelogs:
+ NickAPI will check for updates now.
+ added isNickedName( String name ) which only checks if the specific name is a nicked name
+ added a possibility to teleport to nicked players. Take a look at the new config
+ completely rewritten tab-complete packet. You do not need to use #setGameProfileName anymore. Like above, take a look at the config.
* the nicked names cannot be longer than 16 letters now. Otherwise all players could be kicked.
* fixed an error that caused by listening to v1_12_R1 tabcomplete packet
* fixed an error that #getNickedPlayers returns false values, when #setGameProfileName is not being used
* improved code on #refreshPlayer
* probably fixed an error that has been caused by pipeline if you stop the server
*api::setGameProfileName() is deprecated now


Information why this method is deprecated:

The goal of NickAPI is not to change the identify of the player serverside. But sadly, we did add the #setGameProfileName() method to change the name serverside.
The reason why we added this method is because of the tab-complete. By changing the name serverside, there was no problem with the tab-complete.
In NickAPI 6.1 we did rewrite the tab-complete management and everything should work with tab-complete for nicked names without changing the names serverside. But nevertheless you should take a look at the config. There are 4 methods of tab-complete management.

It is up to you if you want to change his name serverside, there you go. Use #setGameProfileName. But I'll recommend you not to do that anymore. If you still have problems with tab-complete, go to the config.yml and set the tab_complete entry to 0.

For further questions and suggestions, feel free to join our discord server.
https://haoshoku.xyz/go/discord
----------, Dec 23, 2020

* 6.1.1 Hotfix Update: Fixed an issue on UpdateChecker

6.1 Information:
Please delete your config.yml of NickAPI before installing this update.

NickAPI v6.0.5 was pretty stable. But v6.1 will be definitely more stable.
Please read the changelogs carefully. It is important to you what has been changed.
Thanks to @HKNGLGN for helping and testing the beta versions of NickAPI with me.

Changelogs:
+ NickAPI will check for updates now.
+ added isNickedName( String name ) which only checks if the specific name is a nicked name
+ added a possibility to teleport to nicked players. Take a look at the new config
+ completely rewritten tab-complete packet. You do not need to use #setGameProfileName anymore. Like above, take a look at the config.
* the nicked names cannot be longer than 16 letters now. Otherwise all players could be kicked.
* fixed an error that caused by listening to v1_12_R1 tabcomplete packet
* fixed an error that #getNickedPlayers returns false values, when #setGameProfileName is not being used
* improved code on #refreshPlayer
* probably fixed an error that has been caused by pipeline if you stop the server
*api::setGameProfileName() is deprecated now


Information why this method is deprecated:

The goal of NickAPI is not to change the identify of the player serverside. But sadly, we did add the #setGameProfileName() method to change the name serverside.
The reason why we added this method is because of the tab-complete. By changing the name serverside, there was no problem with the tab-complete.
In NickAPI 6.1 we did rewrite the tab-complete management and everything should work with tab-complete for nicked names without changing the names serverside. But nevertheless you should take a look at the config. There are 4 methods of tab-complete management.

It is up to you if you want to change his name serverside, there you go. Use #setGameProfileName. But I'll recommend you not to do that anymore. If you still have problems with tab-complete, go to the config.yml and set the tab_complete entry to 0.

For further questions and suggestions, feel free to join our discord server.
https://haoshoku.xyz/go/discord
----------, Dec 23, 2020

Please delete your config.yml of NickAPI before installing this update.

NickAPI v6.0.5 was pretty stable. But v6.1 will be definitely more stable.
Please read the changelogs carefully. It is important to you what has been changed.
Thanks to @HKNGLGN for helping and testing the beta versions of NickAPI with me.

Changelogs:
+ NickAPI will check for updates now.
+ added isNickedName( String name ) which only checks if the specific name is a nicked name
+ added a possibility to teleport to nicked players. Take a look at the new config
+ completely rewritten tab-complete packet. You do not need to use #setGameProfileName anymore. Like above, take a look at the config.
* the nicked names cannot be longer than 16 letters now. Otherwise all players could be kicked.
* fixed an error that caused by listening to v1_12_R1 tabcomplete packet
* fixed an error that #getNickedPlayers returns false values, when #setGameProfileName is not being used
* improved code on #refreshPlayer
* probably fixed an error that has been caused by pipeline if you stop the server
*api::setGameProfileName() is deprecated now


Information why this method is deprecated:

The goal of NickAPI is not to change the identify of the player serverside. But sadly, we did add the #setGameProfileName() method to change the name serverside.
The reason why we added this method is because of the tab-complete. By changing the name serverside, there was no problem with the tab-complete.
In NickAPI 6.1 we did rewrite the tab-complete management and everything should work with tab-complete for nicked names without changing the names serverside. But nevertheless you should take a look at the config. There are 4 methods of tab-complete management.

It is up to you if you want to change his name serverside, there you go. Use #setGameProfileName. But I'll recommend you not to do that anymore. If you still have problems with tab-complete, go to the config.yml and set the tab_complete entry to 0.

For further questions and suggestions, feel free to join our discord server.
https://haoshoku.xyz/go/discord
----------, Dec 20, 2020

Please delete your config.yml of NickAPI before installing this update.

NickAPI v6.0.5 was pretty stable. But v6.1 will be definitely more stable.
Please read the changelogs carefully. It is important to you what has been changed.
Thanks to @HKNGLGN for helping and testing the beta versions of NickAPI with me.

Changelogs:
+ NickAPI will check now for updates.
+ added a possibility to teleport to nicked players. Take a look at the new config
+ completely rewritten tab-complete packet. You do not need to use #setGameProfileName anymore. Like above, take a look at the config.
- Fixed an error that caused by listening to v1_12_R1 tabcomplete packet
- Fixed an error that #getNickedPlayers returns false values, when #setGameProfileName is not being used
- improved code on #refreshPlayer
- probably fixed an error that has been caused by pipeline if you stop the server
- api::setGameProfileName() is deprecated now


Information why this method is deprecated:

The goal of NickAPI is not to change the identify of the player serverside. But sadly, we did add the #setGameProfileName() method to change the name serverside.
The reason why we added this method is because of the tab-complete. By changing the name serverside, there was no problem with the tab-complete.
In NickAPI 6.1 we did rewrite the tab-complete management and everything should work with tab-complete for nicked names without changing the names serverside. But nevertheless you should take a look at the config. There are 4 methods of tab-complete management.

It is up to you if you want to change his name serverside, there you go. Use #setGameProfileName. But I'll recommend you not to do that anymore. If you still have problems with tab-complete, go to the config.yml and set the tab_complete entry to 0.

For further questions and suggestions, feel free to join our discord server.
https://haoshoku.xyz/go/discord
----------, Dec 20, 2020

Changelogs:
- fixed a NullPointerException kick/bug that happened when people are using NPC plugins
- the packetlistener of the NickAPI is after the packet_handler pipeline now
- removed the complete work with REMOVE_PLAYER enum and added an alternative for hiding/showing players

It is HIGHLY recommended to use this update.
----------, Nov 15, 2020

Changelogs:
+ added 1.16.4 support
+ added 2 (4) new methods: hidePlayer, showPlayer
* Fixed an async issue on queue SetTag
----------, Nov 8, 2020

NickAPI is compatible with reloads now. If you experience bugs after reloads, feel free to write me.
If you have further suggestions for the NickAPI, feel free to suggest it on my discord server. I am working on NickAPI actively.

Changelogs:
+ added reload compatibility
* executing NickAPI::resetGameProfileName after quitting the server
----------, Oct 27, 2020

Sorry for this update. This update is made by community feedback on my discord server.
In this update the two methods api::isNicked & api::isSkinChanged will return true before refreshing the player.

Changelogs:
* fixed a bug that api::getOriginalGameProfileName didn't return the original name
* fixed a bug in resetGameProfileName
- api::isSkinSet & api::isNickSet are REMOVED in this update.
----------, Oct 25, 2020

Sorry for this update. This update is made by community feedback on my discord server.
In this update the two methods api::isNicked & api::isSkinChanged will return true before refreshing the player.

Changelogs:
* fixed a bug that api::getOriginalGameProfileName didn't return the original name
* fixed a bug in resetGameProfileName
- api::isSkinSet & api::isNickSet are REMOVED in this update.
----------, Oct 25, 2020

Sorry for this update. This update is made by community feedback on my discord server.
In this update the two methods api::isNicked & api::isSkinChanged will return true before refreshing the player.

Changelogs:
* fixed a bug that api::getOriginalGameProfileName didn't return the original name
* fixed a bug in resetGameProfileName
- api::isSkinSet & api::isNickSet are REMOVED in this update.
----------, Oct 25, 2020

Sorry for this update. This update is made by community feedback on my discord server.
In this update the two methods api::isNicked & api::isSkinChanged will return true before refreshing the player.

Changelogs:
* fixed a bug that api::getOriginalGameProfileName didn't return the original name
* fixed a bug in resetGameProfileName
- api::isSkinSet & api::isNickSet are REMOVED in this update.
----------, Oct 25, 2020

* Changed PlayerQuitEvent priority to HIGHEST to prevent NullPointerException
* fixed a bug that #isNicked didn't work properly

Added 2 new API methods:
Code (Text):
boolean isNickSet( Player player );
boolean isSkinSet( Player player );
isNicked only works if player is refreshed completely. This means isNicked does not work in real time. Use isNickSet and isSkinSet instead.
----------, Oct 24, 2020

First of all, thanks to NoJokeFNA for his moral and javadocs support.

Join our discord server: https://haoshoku.xyz/go/discord

This update removes the compatibility for 1.7 servers. If you want to support 1.7 servers, you must use a 5.x version of NickAPI.

API CHANGES

Changes:
+ added a documentation on my server
+ does not need ProtocolLib anymore
+ less bugs
+ added a better overview & structure for the people
+ config.yml greatly improved
- removed the instance based NickAPI class and made everything static
----------, Oct 17, 2020

+ added support for 1.16.2
Be aware that people who are connected with 1.7 - 1.15 to the 1.16.2 server will have problems with the respawn packet. If you want to fix the issue, set nickapi.skin_changing to false.
----------, Aug 28, 2020

* Fixed a bug that appeared for 1.7 servers
----------, Jul 31, 2020

See the changelog in 5.0 for further information.
In this update a further race condition has been fixed. {skinchange}

Finally I decided to add NickAPI into the maven repository.
The dependency does not contain any information. It only includes the methods, so do not shade the dependency into the jar.

Repository:
Code (Text):
    <repositories>
        <repository>
            <id>Haoshoku-NickAPI</id>
            <url>https://packagecloud.io/Haoshoku/NickAPI/maven2</url>
        </repository>
    </repositories>
Dependency:
Code (Text):
    <dependencies>
        <dependency>
            <groupId>xyz.haoshoku.nick</groupId>
            <artifactId>nickapi</artifactId>
            <version>5.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>
----------, Jul 11, 2020

The API has been changed. Unnecessary methods are removed, some are in a separate class. Please take a look at the overview for documentation.

Changelog:
+ added the class NickConfig for purely config changes through API
+ 1.16 support
+ FULL crack support {Download NickAPIBungee.jar for BungeeCord}
+ added a lot of config entries
+ added an option where you can give a custom skin {from user or value/signature}
+ added an option that NickAPI does not allow people join on server if it's starting up {needed for cracked servers}


* changed net.haoshoku.nick to xyz.haoshoku.nick because my domain is Haoshoku.xyz :p
* setFakeUUID method is a must to change players uuid.
* Fixed a bug that caused race conditions
* Fixed a bug that caused errors if people spam the nick method
----------, Jul 5, 2020

The API has been changed. Unnecessary methods are removed, some are in a separate class. Please take a look at the overview for documentation.

Changelog:
+ added the class NickConfig for purely config changes through API
+ 1.16 support
+ FULL crack support {Download NickAPIBungee.jar for BungeeCord}
+ added a lot of config entries
+ added an option where you can give a custom skin {from user or value/signature}
+ added an option that NickAPI does not allow people join on server if it's starting up {needed for cracked servers}


* changed net.haoshoku.nick to xyz.haoshoku.nick because my domain is Haoshoku.xyz :p
* setFakeUUID method is a must to change players uuid.
* Fixed a bug that caused race conditions
* Fixed a bug that caused errors if people spam the nick method
----------, Jul 5, 2020

DELETE YOUR CONFIG.YML BEFORE YOU UPDATE YOUR NICKAPI.

NickAPI v4.2 HOTFIX 1 has been released!

Hotfix changes:
Changed to UUID#randomUUID if people decide to nick into a player that does not exist if you use MineTools.

Changelogs:
+ added a full support for cracked servers. This plugin can be used as a replacement for SkinRestorer
+ added a new method (see below)
* MojangAPI is now the default option on NickAPI. Of course you can change it within the API or in the config.yml
* fixed a bug that creates a infinite loop on onEnable method because of getting the skindata of the account "Steve"

Added method:
Code (Text):
boolean isCurrentlyRefreshing( Player player );
I heard that some of the people have problems because of the method refreshPlayer has a delay and people can't execute their codes because of appearance of race conditions. Because of it I added this method.
#isCurrentlyRefreshing will return true if refreshPlayer is still being executed.
To use this method, I recommend you to create an async task and execute a while loop to check whether this method returns false. Of course using an interface would be probably better, but I would've changed a huge amount of code stuff for that.
This method is experimental and could be removed in the next update!
----------, Jun 19, 2020

DELETE YOUR CONFIG.YML BEFORE YOU UPDATE YOUR NICKAPI.

NickAPI v4.2 has been released!

Changelogs:
+ added a full support for cracked servers. This plugin can be used as a replacement for SkinRestorer
+ added a new method (see below)
* MojangAPI is now the default option on NickAPI. Of course you can change it within the API or in the config.yml
* fixed a bug that creates a infinite loop on onEnable method because of getting the skindata of the account "Steve"

Added method:
Code (Text):
boolean isCurrentlyRefreshing( Player player );
I heard that some of the people have problems because of the method refreshPlayer has a delay and people can't execute their codes because of appearance of race conditions. Because of it I added this method.
#isCurrentlyRefreshing will return true if refreshPlayer is still being executed.
To use this method, I recommend you to create an async task and execute a while loop to check whether this method returns false. Of course using an interface would be probably better, but I would've changed a huge amount of code stuff for that.
This method is experimental and could be removed in the next update!
----------, Jun 19, 2020

PLEASE DELETE YOUR CONFIG.YML IF YOU UPDATE NICKAPI.
READ THE CHANGELOGS. IMPORTANT!

This update contains a lot of bugfixes and changes
Changelog:

+ Added a "queue" system. It means that the NickAPI is gonna wait to the skin/uuid data until the method #refreshPlayer are gonna be called. It was necessary because of the mojang/minetools servers are answering too late
+ Added a possibility to switch between MojangAPI and Minetools. Of course you can use it within the API. You do not need to do anything in config.yml
+ Added
Code (Text):
    void resetFakeUUID( Player player );
    UUID getFakeUUID( Player player );
    void setFakeUUID( Player player, UUID uuid );
you do not need to nick yourself. You can just spoof your uuid instantly for other players

+ You can now access the UUIDGetter/SkinGetter. NickPlugin.getPlugin().getUUIDGetter() / NickPlugin.getPlugin().getSkinGetter()
* Fixed the problem that #isNicked does not answer the truth state instantly.
* improved a problem that the skin cannot be set instantly
* NickAPI does not use the unnick method asynchronous anymore. It solves a lot of problems AND it does not access external data. You should not worry about it.

- Removed support for vanish players on #refreshPlayer. Because of the feature uuid-spoofing, it is not easy to hide the player because of the spoofed uuid. I decided to remove the support due to mistakes it had.
If you vanish your player, use the #unnick method at first if he's nicked and after that you should hide him.

The NickAPI 4.0.0 comes with a ton of features. If you have problems with it, please report the bugs on our Discord server https://haoshoku.xyz/go/discord
----------, May 13, 2020

It is highly recommended to install this update.

Code (Text):
    void addBypass( Player bypassPlayer, Player nickedPlayer );
    void removeBypass( Player bypassPlayer, Player nickedPlayer );
    void addBypass( Player bypassPlayer, UUID nickedPlayerUUID );
    void removeBypass( Player bypassPlayer, UUID nickedPlayerUUID );
    Player getPlayerOfOriginalName( String name );
    Player getPlayerOfNickedName( String name );
You can now bypass the nick (recommended for partys).

Changelogs:
+ added the feature above
* at the plugin start, the plugin will cache the data of user "Steve". If you nick to a name that it does not exist, it will use the data of steve.
* fixed a lot of bugs, especially that has been caused because of 1.7 compatiblity
----------, May 8, 2020

Fixed a mistake where generics have been removed through obfuscation.
Use this version.
----------, May 7, 2020

The last update was in January. Almost 5 months have been passed and now here it is. A huge update of the plugin.

Please read carefully the changelog! PLEASE delete your config.yml if you already installed the earlier 4.0.0 version. Added new entries.

Changelog:
+ added 1.7 support (the plugin can be used with 1.7.10 with(out) protocol hack)
+ nicked players won't get a random uuid anymore. They will get the uuid of nicked player.
+ you are able to nick the player and give him another uuid. Take a look at the new api methods
+ NickAPI will create a config.yml now where you can enable/disable some features
+ restored the main functions of api#setTabCompleteStatus
* changed to ProGuard obfuscation due to the rules
* optimized code a bit, using abstraction for better structure
* CRACKED servers can use the plugin now (set uuidspoof to false in config.yml)

New api methods:
Code (Text):

void nick( Player player, String toNick );
void nick( Player player, String toNick, String toUUIDByPlayerName );
void nick( Player player, String toNick, UUID toUUID );
boolean nickExists( String name );
void setGameProfileChanges( boolean value );
 
----------, May 7, 2020

The last update was in January. Almost 5 months have been passed and now here it is. A huge update of the plugin.

Please read carefully the changelog! PLEASE delete your config.yml if you already installed the earlier 4.0.0 version. Added new entries.

Changelog:
+ added 1.7 support (the plugin can be used with 1.7.10 with(out) protocol hack)
+ nicked players won't get a random uuid anymore. They will get the uuid of nicked player.
+ you are able to nick the player and give him another uuid. Take a look at the new api methods
+ NickAPI will create a config.yml now where you can enable/disable some features
+ restored the main functions of api#setTabCompleteStatus
* changed to ProGuard obfuscation due to the rules
* optimized code a bit, using abstraction for better structure
* CRACKED servers can use the plugin now (set uuidspoof to false in config.yml)

New api methods:
Code (Text):
 
void nick( Player player, String toNick );
void nick( Player player, String toNick, String toUUIDByPlayerName );
void nick( Player player, String toNick, UUID toUUID );
boolean nickExists( String name );
 
----------, May 7, 2020

The last update was in January. Almost 5 months have been passed and now here it is. A huge update of the plugin.

Please read carefully the changelog!

Changelog:
+ added 1.7 support (the plugin can be used with 1.7.10 with(out) protocol hack)
+ nicked players won't get a random uuid anymore. They will get the uuid of nicked player.
+ you are able to nick the player and give him another uuid. Take a look at the new api methods
+ NickAPI will create a config.yml now where you can enable/disable some features
* changed to ProGuard obfuscation due to the rules
* optimized code a bit, using abstraction for better structure
* CRACKED servers can use the plugin now (set uuidspoof to false in config.yml)
- api#setTabCompleteStatus is deprecated and will be probably removed in the next version. Using api#setGameProfileName is totally enough and should not cause bugs.

New api methods:
Code (Text):
    void nick( Player player, String toNick, String toUUIDByPlayerName );

    void nick( Player player, String toNick, UUID toUUID );

    void setUUIDSpoof( boolean value );
----------, May 6, 2020

The last update was pretty stable. This update should be more stable. If you find new bugs, feel free to report it to me on my discord server and use the build before if the bug didn't happen there.

Version 3.2.2:

+ added # setDefaultValue and # setDefaultSignature. If your changed skin does not belong to a minecraft account, it will automatically use these values & signatures instead. (No steve skins anymore)

+ added a delayed asynchronous scheduler (3 ticks) in the API methods. I did it because of people nick the player after he joins. It caused errors (multiple names, skin isn't being changed etc.)

* after sending RespawnPacket, the player will hold the item slot he had before nicking

* Added a method that throw an exception, if player nicks the player on PlayerLoginEvent. NEVER do it! Use PlayerJoinEvent instead.

* # setTabCompleteStatus and # getTabCompleteStatus are deprecated now and will be probably removed. Use # setGameProfileName instead

* removed a lot of unnecessary codes

- NickAPI is no longer compatible with reloads.
----------, Jan 10, 2020

Highly recommend you to update.
NO API CHANGES.

Changelogs:
* fixed an issue whether player didn't unnick after leaving the server
+ removed unnecessary codes
----------, Nov 5, 2019

* Fixed a bug that occured when player use vanish and nick
* The hashmap where I do save the nicks are sync now. Forgot to separate it. #isNicked method was not given the actual state in real time because of the unnick method called the hashmap async
----------, Nov 1, 2019

Don't use player.setPlayerListName(); anymore! You do not need it anymore. Just work with scoreboards.

- You do not need to create instances anymore. Use NickPlugin.getPlugin().getAPI(). If you do not want it, just create your own instance of NickAPI
- Fixes massive of bugs which bugged with another plugins - player.setPlayerListName is no longer required. Do NOT use it. Just work with scoreboards.
- Added 3 new methods that could be dangerous for your server: API::setGameProfileName, API::resetGameProfileName, API::getOriginalGameProfile, API::getGameProfileName. You can set the new nicked name into the GameProfile. Advantage: The player is nicked and can't be resolved through tab or something else.
Warning: I do not recommend to use it, use API::setTabCompleteStatus. The player CANNOT be identified through player.getName(). I do not support it, if you have problems with it. The plugin automatically calls the resetGameProfile method on Kick & QuitEvent and on onDisable method.

- The plugin can now loaded with PlugMan or something else. The plugin DOES NOT need any kind of restarts anymore. - Used #substring for nicked names. On the previous version, if you used > 16 letters, players are gonna be kicked. It is fixed now. - Fixed a bug whether some things didn't get restored after sending RespawnPacket - Delayed API:refreshPlayer (Scheduler) to prevent bugs. It costed me a lot of work doing it perfectly. Please test the update and rate it on SpigotMC.org. (Will upload it in a few minutes)
----------, Oct 28, 2019

Logs:
- fixed a bug in TabComplete
- added 2 new methods
Code (Text):
    boolean isSkinChangingForPlayer();

    void setSkinChangingForPlayer( boolean value );
In your constructor: Set #setSkinChangingForPlayer to true if you want to make players see their own nicked skins. Default is false.

Only tested on 1.8.8 and 1.14.4.
----------, Oct 6, 2019

NickAPI 3.0.0 with several of bugfixes
The plugin is no longer in beta.


Thanks to Papiertuch for finding the bugs!
Logs in the final version:
- Fixed a bug whether players have not been removed while leaving the server
- Fixed a bug whether nicked names are displayed x-times
- Fixed a bug whether original names are displayed x-times
- Added api#refreshPlayer and #getPlayerObjectByNickedName


These bugs only occured because of the uuidspoof. It costed me a lot of time for find bugs with Papiertuch and fix it.

Discord: https://discord.gg/uFhUc2W

The API has been changed.
The newest version of NickAPI requires ProtocolLib and will NOT work without it. Use
4.4.0 for 1.8 - 1.13 and 4.5.0 for 1.14 servers.

I completely rewrite the NickAPI with a lot of bugfixes and new features.

Information about NickAPI 3.0
Logs:

- Added new API methods, see overview for further information
- Fixed a lot of bugs which happened in the earlier versions of NickAPI
- Decided NOT to change the name of player in the GameProfile. Instead of this, you can use the api#setTabComplete method to prevent auto completing

- You can now separately change the skin and the nametag -> this means as an example: You can nick yourself into Notch and give a skin of Herobrine
- Opened a discord server for support, talk etc. (Ok, it has nothing to do with this plugin ;))
----------, Oct 4, 2019

In this hotfix I removed a code that I used it for testing the NickAPI (could have frozen the server).

Discord: https://discord.gg/uFhUc2W

The API has been changed.
The newest version of NickAPI requires ProtocolLib and will NOT work without it. Use
4.4.0 for 1.8 - 1.13 and 4.5.0 for 1.14 servers.

I completely rewrite the NickAPI with a lot of bugfixes and new features.

Logs:

- Added new API methods, see overview for further information
- Fixed a lot of bugs which happened in the earlier versions of NickAPI
- Decided NOT to change the name of player in the GameProfile. Instead of this, you can use the api#setTabComplete method to prevent auto completing

- You can now separately change the skin and the nametag -> this means as an example: You can nick yourself into Notch and give a skin of Herobrine
- Opened a discord server for support, talk etc. (Ok, it has nothing to do with this plugin ;))

Important update:
While a player is nicked, you are not able to detect it through LabyMod or other modifications that resolve a player by his uuid.

The plugin is still in beta. Please report bugs if you find any. You are not able to see your changed skin yourself. Keep in mind.
----------, Oct 4, 2019

Discord: https://discord.gg/uFhUc2W

The API has been changed.
The newest version of NickAPI requires ProtocolLib and will NOT work without it. Use
4.4.0 for 1.8 - 1.13 and 4.5.0 for 1.14 servers.


I completely rewrite the NickAPI with a lot of bugfixes and new features.

Logs:

- Added new API methods, see overview for further information
- Fixed a lot of bugs which happened in the earlier versions of NickAPI
- Decided NOT to change the name of player in the GameProfile. Instead of this, you can use the api#setTabComplete method to prevent auto completing

- You can now separately change the skin and the nametag -> this means as an example: You can nick yourself into Notch and give a skin of Herobrine
- Opened a discord server for support, talk etc. (Ok, it has nothing to do with this plugin ;))

Important update:
While a player is nicked, you are not able to detect it through LabyMod or other modifications that resolve a player by his uuid.

The plugin is still in beta. Please report bugs if you find any. You are not able to see your changed skin yourself. Keep in mind.
----------, Oct 4, 2019

THE API HAS BEEN CHANGED! IF YOU ARE USING THIS UPDATE, YOU NEED TO UPDATE YOUR OWN PLUGIN!

+ Added #isNicked method ( Thanks to @xXPixelCookieXx )
+ Added a parameter to the method #nick which allows you to change your skin or not
59cf7b0ed50d4e26a06b44f68d9f08cb.png
Thanks to @NurPech

skinChange : boolean - allows you to nick into a player without "leaving" your own skin - Example: /nick GommeHD - I will keep my skin but will have the nametag of GommeHD

* Fixed a bug on the methods #getNewSignatures & #getNewValues
----------, May 21, 2017

Long time - no see,

here is a new NickAPI update with a lot of bugfixes and a new feature.

CHANGELOG
+
Added a new method called #setRespawnPacket (it may be buggy with chunks)

* Fixed a skinbug that caused when a player unnicks
* Changed to call async from Thread to ExecutorService
* Plugin is 100% compatible with reloads now
* Changed the structure of the whole NickAPI -> removed global fields and made it local (If you have any problems with CPU or RAM, please report it) It is just a test. I want to see whether it makes big or small differences.

THERE WAS AN API-CHANGE:
IF YOU WANT TO UNNICK THE PLAYER, USE #unnick OR/AND #resetGameProfile!
PLUGIN DOESN'T HAVE ANY DEPENDENCIES


NICKAPI IS NOT RESPONSIBLE TO AFFECT THE CHAT OR SOMETHING ELSE. USE #setDisplayName TO CHANGE THE NAME OF PLAYER IN CHATS! IF YOU RELOAD YOUR SERVER, NICKAPI UNNICKS YOU BUT AS I SAID IT DOESN'T RESTORE YOUR REAL NAME IN CHAT! LOOK AT EXAMPLE CODE!

If you find any bugs, feel free to pm me on spigot (conversation).
----------, May 9, 2017

* Fixed skin bug while nicking
----------, Jul 8, 2016

Resource Information
Author:
----------
Total Downloads: 57,635
First Release: Jul 8, 2016
Last Update: Dec 12, 2024
Category: ---------------
All-Time Rating:
44 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings