mirror of
https://github.com/hyperdefined/ToolStats.git
synced 2025-12-06 06:41:44 +00:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
98ee84ad13 | ||
|
|
c68a04851b | ||
|
|
06e063a072 | ||
|
|
c00c534d49 | ||
|
|
d6f8176ce1 | ||
|
|
eb06dff0bc | ||
|
|
9a72c509ef | ||
|
|
eaca8ac87d | ||
|
|
44a2c5cd26 | ||
|
|
0957a1c989 | ||
|
|
7b12a130a0 |
31
.github/workflows/hangar.yml
vendored
Normal file
31
.github/workflows/hangar.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
name: Update Hangar Description
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
jobs:
|
||||
update-hangar-page:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Authenticate with Hangar
|
||||
id: authenticate
|
||||
run: |
|
||||
RESPONSE=$(curl -s -X POST "https://hangar.papermc.io/api/v1/authenticate?apiKey=${{ secrets.HANGAR }}" -H 'accept: application/json')
|
||||
TOKEN=$(echo $RESPONSE | jq -r '.token')
|
||||
if [[ "$TOKEN" == "null" ]]; then
|
||||
echo "Error: Unable to fetch JWT token"
|
||||
exit 1
|
||||
fi
|
||||
echo "::add-mask::$TOKEN"
|
||||
echo "token=$TOKEN" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Update Project Description
|
||||
run: |
|
||||
README_CONTENT=$(cat README.md | jq -Rs .)
|
||||
curl -s -X PATCH "https://hangar.papermc.io/api/v1/pages/editmain/ToolStats" \
|
||||
-H "content-type: application/json" \
|
||||
-H "Authorization: HangarAuth ${{ steps.authenticate.outputs.token }}" \
|
||||
-d "{\"content\":$README_CONTENT}"
|
||||
1
.github/workflows/modrinth.yml
vendored
1
.github/workflows/modrinth.yml
vendored
@@ -1,3 +1,4 @@
|
||||
name: Update Modrinth Description
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
|
||||
20
README.md
20
README.md
@@ -1,14 +1,12 @@
|
||||
<h1 align="center">ToolStats</h1>
|
||||
|
||||
<p align="center">
|
||||
<img src="https://img.shields.io/badge/Minecraft-1.21--1.21.4-orange" alt="Minecraft versions">
|
||||
<img src="https://img.shields.io/github/v/release/hyperdefined/ToolStats" alt="GitHub release (latest by date)">
|
||||
<a href="https://github.com/hyperdefined/ToolStats/releases"><img src="https://img.shields.io/github/downloads/hyperdefined/ToolStats/total?logo=github" alt="Downloads"></a>
|
||||
<img src="https://img.shields.io/badge/made%20with-love%20&%20fluff-red" alt="Made with love & fluff">
|
||||
<a href="https://ko-fi.com/hyperdefined"><img src="https://img.shields.io/badge/Donate-Ko--fi-red" alt="Donate via Ko-fi"></a>
|
||||
<img alt="Discord" src="https://img.shields.io/discord/1267600843356639413?style=flat&logo=discord&label=Discord">
|
||||
<a href="https://www.gnu.org/licenses/gpl-3.0"><img src="https://img.shields.io/badge/License-GPLv3-blue.svg" alt="License: GPL v3"></a>
|
||||
<a href="https://wakatime.com/badge/user/992a7647-176a-477c-8086-e1abfba87ff4/project/0200f07a-f303-4103-a5f2-34b38c9c1fa4"><img src="https://wakatime.com/badge/user/992a7647-176a-477c-8086-e1abfba87ff4/project/0200f07a-f303-4103-a5f2-34b38c9c1fa4.svg" alt="wakatime"></a>
|
||||
<a href="https://modrinth.com/plugin/ToolStats"><img alt="modrinth" height="40" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact/available/modrinth_vector.svg"></a>
|
||||
<a href="https://hangar.papermc.io/hyperdefined/ToolStats"><img alt="hangar" height="40" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact/available/hangar_vector.svg"></a>
|
||||
<a href="https://papermc.io"><img alt="paper" height="40" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact/supported/paper_vector.svg"></a>
|
||||
<a href="https://github.com/hyperdefined/ToolStats/wiki"><img alt="ghpages" height="40" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact/documentation/ghpages_vector.svg"></a>
|
||||
<a href="https://discord.gg/rJuQXVcJz8"><img alt="discord-singular" height="40" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact/social/discord-singular_vector.svg"></a>
|
||||
<a href="https://buymeacoffee.com/hyperdefined"><img alt="buymeacoffee-singular" height="40" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact/donate/buymeacoffee-singular_vector.svg"></a>
|
||||
</p>
|
||||
|
||||
ToolStats is a Paper plugin that display various stats about tools. This plugin is inspired off of [GearStats](https://www.spigotmc.org/resources/gearstats.12960/). You can disable/enable which stats are shown on which tools via the config. Note: stats are tracked regardless of config setting. The config is to disable the lore on the item.
|
||||
@@ -22,6 +20,7 @@ Here is everything it tracks:
|
||||
* Fish caught.
|
||||
* Sheep sheared.
|
||||
* Arrows shot (bows/crossbows)
|
||||
* Flight time with elytras.
|
||||
|
||||
The best part is, this data is stored on the item itself. You can also change how the lore is displayed on the items!
|
||||
|
||||
@@ -43,8 +42,5 @@ If item lore is ever incorrect/missing, you can run `/toolstats reset`. This com
|
||||
## Documentation
|
||||
Visit the [wiki](https://github.com/hyperdefined/ToolStats/wiki) for help.
|
||||
|
||||
## Support
|
||||
You can join the [Discord](https://discord.gg/rJuQXVcJz8) for support.
|
||||
|
||||
## License
|
||||
This plugin is released under GNU General Public License v3. See [LICENSE](https://github.com/hyperdefined/ToolStats/blob/master/LICENSE).
|
||||
This plugin is released under GNU General Public License v3. See [LICENSE](https://github.com/hyperdefined/ToolStats/blob/master/LICENSE).
|
||||
2
pom.xml
2
pom.xml
@@ -23,7 +23,7 @@
|
||||
|
||||
<groupId>lol.hyper</groupId>
|
||||
<artifactId>toolstats</artifactId>
|
||||
<version>1.8.4</version>
|
||||
<version>1.8.6</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>ToolStats</name>
|
||||
|
||||
@@ -64,8 +64,10 @@ public class CraftItem implements Listener {
|
||||
|
||||
// if the player shift clicks, send them this warning
|
||||
if (event.isShiftClick()) {
|
||||
Component component = toolStats.configTools.formatLore("shift-click-warning", null, null);
|
||||
event.getWhoClicked().sendMessage(component);
|
||||
Component component = toolStats.configTools.formatLore("shift-click-warning.crafting", null, null);
|
||||
if (component != null) {
|
||||
event.getWhoClicked().sendMessage(component);
|
||||
}
|
||||
}
|
||||
|
||||
// test the item before setting it
|
||||
|
||||
@@ -69,9 +69,9 @@ public class VillagerTrade implements Listener {
|
||||
}
|
||||
// if the player shift clicks, show the warning
|
||||
if (event.isShiftClick()) {
|
||||
String configMessage = toolStats.config.getString("messages.shift-click-warning.trading");
|
||||
if (configMessage != null) {
|
||||
player.sendMessage(ChatColor.translateAlternateColorCodes('&', configMessage));
|
||||
Component component = toolStats.configTools.formatLore("shift-click-warning.trading", null, null);
|
||||
if (component != null) {
|
||||
event.getWhoClicked().sendMessage(component);
|
||||
}
|
||||
}
|
||||
ItemStack newItem = addLore(item, player);
|
||||
|
||||
@@ -100,6 +100,12 @@ public class ConfigTools {
|
||||
public Component formatLore(String configName, String placeHolder, Object value) {
|
||||
String lore = toolStats.config.getString("messages." + configName);
|
||||
if (lore == null) {
|
||||
toolStats.logger.warning("Unable to find config message for: messages." + configName);
|
||||
return null;
|
||||
}
|
||||
|
||||
// if the config message is empty, don't send it
|
||||
if (lore.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -107,7 +113,9 @@ public class ConfigTools {
|
||||
Component component;
|
||||
|
||||
// set the placeholder to the value
|
||||
lore = lore.replace(placeHolder, String.valueOf(value));
|
||||
if (placeHolder != null && value != null) {
|
||||
lore = lore.replace(placeHolder, String.valueOf(value));
|
||||
}
|
||||
|
||||
// if we match the old color codes, then format them as so
|
||||
Matcher hexMatcher = CONFIG_HEX_PATTERN.matcher(lore);
|
||||
|
||||
Reference in New Issue
Block a user