TheAPI

## Our purpose
Are you tired of looking for different APIs on the internet to create in your projects? Neither do we! And this is why TheAPI is here.
We bring the most useful and most wanted features directly for developers. From custom configurations with comments feature to Object parsers to String and back. Also, TheAPI offers an extensive Sockets API that will make working with sockets a million times easier! And we have much more, check out the sample code in the Examples section.
## Looking for source-code?
Our project is located on github:
https://github.com/TheDevTec/TheAPI
# How to include the API with Maven:
“`
jitpack.io
https://jitpack.io
com.github.TheDevTec
TheAPI
13.8
provided
“`
# How to include the API with Gradle:
“`
repositories {
maven { url ‘https://jitpack.io’ }
}
dependencies {
compileOnly “com.github.TheDevTec:TheAPI:13.8”
}
“`
## Our community
Join our Discord community for help and advice!
https://discord.gg/APwYKQRxby
Teams API
**The universal bridge between team plugins and everything else.**
TeamsAPI is a passive, server-side bridge plugin for Paper, Spigot, Purpur, and Folia servers, inspired by Vault. It provides a single, stable interface for team operations, so any plugin that needs team data can work with any compatible team plugin, without either plugin knowing about the other.
Implemented in Factions fork: https://www.spigotmc.org/resources/pvpindex-factions.135055/
Suggest it as suggestion to teams plugins, they can send me a message so I can make a list.
## How it works
“`text
Your Plugin (consumer) -> TeamsAPI (bridge) -> Team Plugin (provider)
“`
– **Providers** — faction, clan, guild, or custom team plugins `implement TeamsService`
and register with TeamsAPI during `onEnable()`.
– **Consumers** — scoreboard plugins, chat formatters, quest plugins, or any plugin that
needs team data call `TeamsAPI.getService()` and use the returned interface.
– **Server owners** — install `TeamsAPI.jar` and one compatible team plugin. Done.
No two plugins need to know about each other. When the team plugin changes, every
consumer plugin keeps working without a recompile.
## Features
– **Provider-agnostic**: works with any team plugin that ships a `TeamsService` implementation.
– **Graceful fallback**: if no provider is present, `TeamsAPI.isAvailable()` returns `false`; consumers can disable their team features cleanly instead of crashing.
– **Read-only snapshots**: `Team` and `TeamMember` are immutable interfaces; providers own the backing data.
– **Role hierarchy**: built-in `OWNER > ADMIN > MEMBER` with `outranks()` and `canManage()` helpers.
– **Optional invite service**: providers can expose `TeamsInviteService` for invitation workflows.
– **Optional warp service**: providers can expose `TeamsWarpService` for named team warps.
– **Optional claim service**: providers can expose `TeamsClaimService` for chunk-claim management.
– **Optional power service**: providers can expose `TeamsPowerService` for player and team power values.
– **Cancellable events**: twelve Bukkit events that providers can fire so other plugins can react to or cancel team operations.
– **Lightweight**: a single shaded JAR with no runtime dependencies beyond the Bukkit API.
– **JitPack-ready**: depend on just the API module at compile time; no transitive dependencies leak into your plugin.
– **Velocity bridge** *(experimental)*: optional `teams-api-velocity` plugin for querying team data from the Velocity proxy. Supports multi-proxy networks via Redis.
– **BungeeCord bridge** *(experimental)*: optional `teams-api-bungeecord` plugin for querying team data from BungeeCord / Waterfall proxies. Supports multi-proxy networks via Redis.
## Requirements
| Requirement | Value |
|————-|——-|
| Server software | Paper / Spigot / Purpur / Folia 1.16+ |
| Java | 17+ (25 recommended) |
| Plugin dependencies | None |
## Installation (server owners)
1. Download `teams-api-plugin-VERSION.jar` from the **Files** tab of this listing or
from [GitHub Releases](https://github.com/ez-plugins/teams-api/releases).
2. Drop it into your server’s `plugins/` directory.
3. Install a compatible team plugin that provides a `TeamsService` implementation.
4. Restart the server.
TeamsAPI has no configuration files.
## For developers
Add the API artifact to your project via [JitPack](https://jitpack.io/#ez-plugins/teams-api):
### Maven
“`xml
jitpack.io
https://jitpack.io
com.github.ez-plugins
teams-api
1.4.0
provided
“`
### Gradle
“`groovy
repositories {
maven { url ‘https://jitpack.io’ }
}
dependencies {
compileOnly ‘com.github.ez-plugins:teams-api:1.4.0’
}
“`
### Consumer quick-start
Declare the dependency in `plugin.yml` (use `softdepend` if team support is optional):
“`yaml
depend:
– TeamsAPI
“`
Then use the API at runtime:
“`java
@Override
public void onEnable() {
if (!TeamsAPI.isAvailable()) {
getLogger().warning(“No team plugin found. Team features disabled.”);
return;
}
getLogger().info(“TeamsAPI found. Team features enabled.”);
}
// In a command or listener:
TeamsService teams = TeamsAPI.getService();
Optional team = teams.getPlayerTeam(player.getUniqueId());
team.ifPresent(t -> player.sendMessage(“Your team: ” + t.getDisplayName()));
“`
### Provider quick-start
Declare a soft-dependency in `plugin.yml`:
“`yaml
softdepend:
– TeamsAPI
“`
Register your implementation when the plugin loads:
“`java
@Override
public void onEnable() {
TeamsAPI.registerProvider(this, new MyTeamsService(this));
}
@Override
public void onDisable() {
TeamsAPI.unregisterProvider(teamsService);
}
“`
## API surface
### Team lifecycle & lookup
| Method | Returns | Description |
|——–|———|————-|
| `createTeam(name, ownerUUID)` | `Optional` | Creates a new team |
| `deleteTeam(teamId)` | `boolean` | Deletes a team by UUID |
| `getTeam(teamId)` | `Optional` | Looks up a team by UUID |
| `getTeamByName(name)` | `Optional` | Looks up a team by name |
| `getPlayerTeam(playerUUID)` | `Optional` | Returns the player’s current team |
| `getAllTeams()` | `Collection` | Returns every registered team |
| `getTeamCount()` | `int` | Total number of teams |
### Membership management
| Method | Returns | Description |
|——–|———|————-|
| `addMember(teamId, playerUUID, role)` | `boolean` | Adds a player with a given role |
| `removeMember(teamId, playerUUID)` | `boolean` | Removes a player from the team |
| `setMemberRole(teamId, playerUUID, role)` | `boolean` | Changes a member’s role |
| `getMemberRole(teamId, playerUUID)` | `Optional` | Returns the member’s current role |
### Invite service (optional)
Register alongside `TeamsService` if your plugin supports invitations:
“`java
TeamsAPI.registerInviteProvider(this, inviteService);
“`
| Method | Returns | Description |
|——–|———|————-|
| `invitePlayer(teamId, inviterUUID, inviteeUUID)` | `boolean` | Sends an invitation |
| `acceptInvite(teamId, playerUUID)` | `Optional` | Accepts the invitation and joins the team |
| `declineInvite(teamId, playerUUID)` | `boolean` | Declines an invitation |
Consumers check availability with `TeamsAPI.isInviteAvailable()` before calling `TeamsAPI.getInviteService()`.
### Warp service (optional)
Register alongside `TeamsService` if your plugin supports team warps:
“`java
TeamsAPI.registerWarpProvider(this, warpService);
“`
| Method | Returns | Description |
|——–|———|————-|
| `setWarp(teamId, name, location, creatorUUID)` | `boolean` | Creates or updates a named warp |
| `removeWarp(teamId, name)` | `boolean` | Deletes a warp by name |
| `getWarp(teamId, name)` | `Optional` | Looks up a warp by name |
| `getWarps(teamId)` | `Collection` | Returns all warps for a team |
Consumers check availability with `TeamsAPI.isWarpAvailable()` before calling `TeamsAPI.getWarpService()`.
### Claim service (optional)
Register alongside `TeamsService` if your plugin supports chunk claims:
“`java
TeamsAPI.registerClaimProvider(this, claimService);
“`
| Method | Returns | Description |
|——–|———|————-|
| `claimChunk(teamId, playerUUID, world, x, z)` | `boolean` | Claims a chunk for the team |
| `unclaimChunk(teamId, playerUUID, world, x, z)` | `boolean` | Removes the claim |
| `unclaimAll(teamId)` | `boolean` | Removes all claims for the team |
| `getClaimAt(world, x, z)` | `Optional` | Returns the claim at a chunk, if any |
| `getTeamClaims(teamId)` | `Collection` | All claims for the team |
| `getClaimCount(teamId)` | `int` | Number of claimed chunks |
| `isClaimed(world, x, z)` | `boolean` | Whether the chunk is claimed by anyone |
| `isClaimedBy(teamId, world, x, z)` | `boolean` | Whether the chunk is claimed by this team |
| `getTeamMaxClaims(teamId)` | `int` | Claim limit (-1 means unlimited) |
Consumers check availability with `TeamsAPI.isClaimAvailable()` before calling `TeamsAPI.getClaimService()`.
### Power service (optional)
Register alongside `TeamsService` if your plugin exposes power values:
“`java
TeamsAPI.registerPowerProvider(this, powerService);
“`
| Method | Returns | Description |
|——–|———|————-|
| `getPlayerPower(playerUUID)` | `double` | Current power of the player |
| `getPlayerMaxPower(playerUUID)` | `double` | Maximum power the player can hold |
| `setPlayerPower(playerUUID, power)` | `boolean` | Sets the player’s power |
| `getTeamPower(teamId)` | `double` | Combined power of all team members |
| `getTeamMaxPower(teamId)` | `double` | Maximum combined power the team can hold |
Consumers check availability with `TeamsAPI.isPowerAvailable()` before calling `TeamsAPI.getPowerService()`.
### Events
All events live in `com.skyblockexp.teamsapi.event`. Providers are encouraged but not required to fire them.
| Event | Cancellable | Fired when |
|——-|————-|————|
| `TeamCreateEvent` | Yes | Before a team is created |
| `TeamDeleteEvent` | Yes | Before a team is deleted |
| `TeamJoinEvent` | Yes | Before a player joins a team |
| `TeamLeaveEvent` | Yes | Before a player leaves a team |
| `TeamRoleChangeEvent` | Yes | Before a member’s role changes |
| `TeamInviteEvent` | Yes | Before an invitation is sent |
| `TeamInviteAcceptEvent` | No | After a player accepts an invitation |
| `TeamInviteDeclineEvent` | No | After a player declines an invitation |
| `TeamWarpSetEvent` | Yes | Before a warp is created or updated |
| `TeamWarpDeleteEvent` | Yes | Before a warp is deleted |
| `TeamClaimEvent` | Yes | Before a chunk is claimed |
| `TeamUnclaimEvent` | Yes | Before a chunk is unclaimed |
### Roles
| Role | Priority | Description |
|——|———-|————-|
| `OWNER` | 100 | Full control; cannot be removed by others |
| `ADMIN` | 50 | Can manage members with a lower priority |
| `MEMBER` | 10 | Regular team member |
## Links
– [GitHub](https://github.com/ez-plugins/teams-api) — source code & issue tracker
– [Developer Guide](https://ez-plugins.github.io/teams-api/developer-guide.html) — full integration walkthrough
– [API Reference](https://ez-plugins.github.io/teams-api/api.html) — complete method tables
– [JitPack](https://jitpack.io/#ez-plugins/teams-api) — Maven / Gradle dependency
—
*MIT License – free to use in any project, open- or closed-source.*
TaterLib
# TaterLib
[](https://github.com/p0t4t0sandwich/TaterLib/blob/main/LICENSE)
[](https://github.com/p0t4t0sandwich/TaterLib)
[](https://github.com/p0t4t0sandwich/TaterLib/issues)
[](https://discord.neuralnexus.dev)
[](https://wakatime.com/badge/user/fc67ce74-ca69-40a4-912f-61b26dbe3068/project/ba087a5d-fd50-4b54-9723-3effbfda7567)
A cross API code library that allows developers to write code that works across multiple modding platforms, and across a
wide range of Minecraft versions, all with one JAR file. If TaterLib runs on it, so can your plugin/mod.
Please note, some abstractions may not be fully implemented yet, and some may be missing.
If you’re looking for a specific abstraction/game event, please open an issue, and we’ll get to it as soon as possible,
or feel free to open a PR with an implementation.
[Contributions are always welcome!](https://github.com/p0t4t0sandwich/TaterLib/blob/main/.github/CONTRIBUTING.md)
Let’s cut to the chase, why should you use and/or contribute to TaterLib? Well, let’s say you have a mod/plugin that you
want to port to a different modding API. You could go through the laborious task of implementing all the events,
commands, etc. on each platform and create all your own cool fancy abstractions for each game object, or you could use
TaterLib and save yourself a lot of time. (which is why I started this project in the first place)
There’s two ways to use TaterLib, you can depend on the general API, then implement any missing features yourself on
each platform, or if something’s missing, you can start a PR with either a basic or full implementation, and we can
improve TaterLib and save you a lot of time in the future. (a bit of a win-win)
Link to our support: [Discord](https://discord.neuralnexus.dev)
## Download
[](https://github.com/p0t4t0sandwich/TaterLib/releases)
[](https://www.spigotmc.org/resources/taterlib.111852/)
[](https://hangar.papermc.io/p0t4t0sandwich/TaterLib)
[](https://www.curseforge.com/minecraft/bukkit-plugins/taterlib)
[](https://modrinth.com/mod/taterlib)
[](https://www.curseforge.com/minecraft/mc-mods/taterlib)
[](https://ore.spongepowered.org/p0t4t0sandwich/TaterLib)
[](https://builtbybit.com/resources/taterlib.40265/)
[](https://polymart.org/resource/taterlib.5552)
[](https://craftaro.com/marketplace/product/taterlib.2771)
[](https://maven.neuralnexus.dev/#/snapshots/dev/neuralnexus/taterlib-api)[](https://jenkins.neuralnexus.dev/job/TaterLibDev/)
[](https://maven.neuralnexus.dev/#/releases/dev/neuralnexus/taterlib-api)[](https://jenkins.neuralnexus.dev/job/TaterLib/)
### Adding to your project
“`gradle
repositories {
maven {
name = ‘NeuralNexus’
url = ‘https://maven.neuralnexus.dev/releases’
}
}
dependencies {
compileOnly(‘dev.neuralnexus:taterlib-api:‘)
}
“`
There’s also a snapshot repository available at `https://maven.neuralnexus.dev/repository/snapshots`
### Compatibility Cheatsheet
TaterLib supports: Bukkit, BungeeCord, Fabric, Forge, Sponge, and Velocity
General notes:
– No Fabric on 1.13
– No Fabric/Forge below 1.7.10
| Server type | Versions | Jar Name |
|————-|————-|———————————|
| 1.20.x | 1.20-1.20.4 | `TaterLib-1.20.x-.jar` |
| 1.19.4 | 1.19.4 | `TaterLib-1.19.4-.jar` |
| 1.19.2 | 1.19.2 | `TaterLib-1.19.2-.jar` |
| 1.19 | 1.19 | `TaterLib-1.19-.jar` |
| 1.18.2 | 1.18.2 | `TaterLib-1.18.2-.jar` |
| 1.18 | 1.18 | `TaterLib-1.18-.jar` |
| 1.17 | 1.17-1.17.1 | `TaterLib-1.17-.jar` |
| 1.16 | 1.16-1.16.5 | `TaterLib-1.16-.jar` |
| 1.15 | 1.15-1.15.2 | `TaterLib-1.15-.jar` |
| 1.14 | 1.14-1.14.3 | `TaterLib-1.14-.jar` |
| 1.13 | 1.13-1.13.2 | `TaterLib-1.13-.jar` |
| 1.12 | 1.12-1.12.2 | `TaterLib-1.12-.jar` |
| 1.11 | 1.11-1.11.2 | `TaterLib-1.11-.jar` |
| 1.10 | 1.10-1.10.2 | `TaterLib-1.10-.jar` |
| 1.9 | 1.9-1.9.4 | `TaterLib-1.9-.jar` |
| 1.8 | 1.8-1.8.8 | `TaterLib-1.8-.jar` |
| 1.7 | 1.7-1.7.10 | `TaterLib-1.7.10-.jar` |
| 1.6.4 | 1.6.4 | `TaterLib-1.6.4-.jar` |
| 1.2.5 | 1.2.5 | `TaterLib-1.2.5-.jar` |
| b1.7.3 | b1.7.3 | `TaterLib-b1.7.3-.jar` |
## Dependencies
– [Fabric API](https://modrinth.com/mod/fabric-api) – Required on Fabric
– [Legacy Fabric API](https://www.curseforge.com/minecraft/mc-mods/legacy-fabric-api) – Required on Fabric 1.12.2 and
below
### Optional Dependencies
– [LuckPerms](https://luckperms.net/) – For permissions/prefix/suffix support
## Commands and Permissions
| Command | Permission | Description |
|———————-|—————————–|————————–|
| `/taterlib version` | `taterlib.command.version` | Get the TaterLib version |
| `/taterlib reload` | `taterlib.command.reload` | Reload TaterLib config |
| `/taterlib dump` | `taterlib.command.dump` | Dump TaterLib info |
| `/taterlib fulldump` | `taterlib.command.fulldump` | Dump TaterLib info |
## Projects that use TaterLib
Feel free to open a PR to add your plugin/mod to this list!
– [BadSpawns](https://github.com/p0t4t0sandwich/BadSpawns)
– [BeeNameGenerator](https://github.com/p0t4t0sandwich/BeeNameGeneratorPlugin)
– [TaterComms](https://github.com/p0t4t0sandwich/TaterComms)
– [TaterUtils](https://github.com/p0t4t0sandwich/TaterUtils)
## Metrics
### Bukkit

### BungeeCord

### Sponge

### Velocity

TabWhitelist
# TabWhitelist! – Command Management
**TabWhitelist** is a powerful and lightweight Minecraft server plugin designed to give administrators total control over player command visibility and execution. It allows you to hide sensitive server information, block unwanted commands, and create custom rank-based access, ensuring a clean and secure experience for your community. By filtering the tab-completion list and overwriting default system messages, you can fully brand your server’s “Unknown Command” response and keep your plugin list private.
Don’t believe it? **TRY THE LATEST RELEASE NOW!**
**⚠️ NOTE:** Java 21 or higher is required!
“`
Now also on proxy! BungeeCord, Waterfall, Velocity.
Looking for a proxy version for Java 11? Find TabWhitelist 1.1-ForProxy (Java 11)
“`
### Features
– **Full Command Control** – Easily toggle between Whitelist and Blacklist modes to decide which commands are accessible.
– **Dynamic Tab-Blocking** – Automatically hides unauthorized commands from the TAB completion menu in real-time.
– **Rank-Based Groups** – Assign specific command sets to different player ranks using custom permissions like tabwhitelist.group.vip.
– **World-Specific Rules** – Define different allowed or blocked commands based on the world the player is currently in.
– **Multi-Sensory Feedback** – Engage players with custom sounds, titles, action bars, and particles whenever a command is blocked.
– **Subcommand & Namespace Protection** – Block specific phrases (e.g., /pl, /ver) and automatically handle hidden command aliases like /minecraft:cmd.
– **Command Cooldowns** – Prevent command spam by setting per-command timers that players must wait out.
– **Admin Notifications** – Alert staff members instantly with customizable messages when a player attempts to use a restricted command.
– **Instant Reload** – Use the /twreload command to update all configurations and TAB menus without needing to restart the server.
### Commands
– /twreload – Refreshes the configuration file and updates player TAB lists instantly.
### Permissions
– tabwhitelist.admin – Access to everything (bypasses all blocks and filters).
– tabwhitelist.reload – Allows use of the /twreload command.
– tabwhitelist.group. – Grants access to a specific command group defined in the config (e.g., tabwhitelist.group.vip).
– tabwhitelist.notify – Allows staff members to receive real-time alerts whenever a player attempts to use a blocked command.
– tabwhitelist.bypass.cooldown – Grants a player the ability to ignore the command cooldown timers set in the configuration.
### How to use
Click to expand
1. Place the .jar file in the server’s plugins folder.
2. Restart the server and check the console for: [TabWhitelist] v1.2 enabled!.
3. Open the plugins/TabWhitelist/config.yml file.
4. Set your unknown-command-message to match your server’s branding.
5. Add your basic player commands to the commands list.
6. (Optional) Create custom groups in the groups section for your Ranks (VIP, MVP, etc.).
7. Assign the corresponding permissions (e.g., tabwhitelist.group.vip) to your ranks using a permission plugin like LuckPerms.
8. Run /twreload to apply changes!
## Bug report and contact
“`
oskoonixland@gmail.com – new mail
“`
TabBlocker
# TabBlocker
TabBlocker is a secure whitelist-based TAB completion control plugin. It allows you to strictly define which commands are visible to players, hiding everything else.
Supports both Paper and BungeeCord with a single JAR file.
## Key Features
– Whitelist System: Only allowed commands appear in TAB completion.
– Cross-Platform: Works on Paper (1.21+) and BungeeCord.
– Group Support: Define different command lists for specific groups.
– Command Blocking: Prevent execution of specific commands (e.g., /plugins, /version).
– Hide Server Brand: Customize the server software name shown in the F3 debug screen.
– Discord Integration: Send webhook notifications when blocked commands are attempted.
– LuckPerms Support: Easily manage groups and bypass permissions.
## Documentation
For full installation guide, configuration examples, and commands, please read the [README](https://github.com/Murayu0225/TabBlocker) on GitHub.
TAB

TAB is an all-in-one plugin for displaying information in various places, which aims to outperform all similar plugins in terms of features, compatibility and performance.
The compact configuration allows you to get the plugin to work the way you want regardless of how simple or complex you want it to be or how experienced you are.
The default configuration already contains useful values and examples to give you a better understanding and get you started quickly with instant results.
The extensive [wiki](https://github.com/NEZNAMY/TAB/wiki) answers any of your questions.


[](https://github.com/NEZNAMY/TAB)
[](https://github.com/NEZNAMY/TAB/issues)
[](https://github.com/NEZNAMY/TAB/wiki)
# Discord?
Official support by me is no longer provided to free users due to limited time and extreme inefficiency (see [provided services]([https://github.com/NEZNAMY/TAB?tab=readme-ov-file#provided-services](https://github.com/NEZNAMY/TAB?tab=readme-ov-file#provided-services)) for more info).
However, you can join this [fresh new community discord]([https://discord.gg/YPqXt63YQj](https://discord.gg/YPqXt63YQj)) made by a nice person who promises to help everyone with all plugins, including TAB.
Before you consider requiring assistance, check out the [wiki](https://github.com/NEZNAMY/TAB/wiki) first. It will answer any questions you may have and is also constantly getting improved.



















Switchboard
# TaterComms
[](https://img.shields.io/github/downloads/p0t4t0sandwich/TaterComms/LICENSE)
[](https://github.com/p0t4t0sandwich/TaterComms)
[](https://github.com/p0t4t0sandwich/TaterComms/issues)
[](https://discord.neuralnexus.dev)
[](https://wakatime.com/badge/user/fc67ce74-ca69-40a4-912f-61b26dbe3068/project/c722f2dd-f37e-4e20-9b32-e00d4d8ec34b)
A simple, cross API plugin that bridges communication between servers, using built-in Proxy methods, Discord channels and TCP sockets.
Link to our support: [Discord](https://discord.neuralnexus.dev)
## Download
[](https://github.com/p0t4t0sandwich/TaterComms/releases)
[](https://maven.neuralnexus.dev/#/releases/dev/neuralnexus/TaterComms)
[](https://maven.neuralnexus.dev/#/snapshots/dev/neuralnexus/TaterComms)
[](https://www.spigotmc.org/resources/tatercomms.110592/)
[](https://hangar.papermc.io/p0t4t0sandwich/TaterComms)
[](https://modrinth.com/mod/tatercomms)
[](https://www.curseforge.com/minecraft/mc-mods/tatercomms)
[](https://ore.spongepowered.org/p0t4t0sandwich/TaterComms)
## Usage
– [Configuration guide wiki entry](https://github.com/p0t4t0sandwich/TaterComms/wiki/Configuration-Guide)
– [Create and add a Discord bot to your server](https://discordpy.readthedocs.io/en/stable/discord.html)
– The bot will need permissions to read and send messages with whatever permission scopes you set up, and in the channels you want to use
## Known Issues
– Under certain circumstances with a proxy, prefix/suffix information is not read correctly, still narrowing down the cause
– Global chat still needs some tweaking and a proper, per-user toggle
– Sponge death messages are a tad off with how the component serializes (eg: `playerName Skeleton was shot by` instead of `playerName was shot by Skeleton`)
– Still need to tweak the pass-through system and get that working properly
– Some implementations fire the shutdown event after the plugin unloads, so the shutdown message doesn’t get sent
– Bukkit 1.6.4 doesn’t have an advancement event
– Bukkit b1.7.3 doesn’t support the following
– proper death/advancement events
– plugin messaging
## Dependencies
– [TaterLib](https://github.com/p0t4t0sandwich/TaterLib) – Required on all platforms
– [FabricAPI](https://modrinth.com/mod/fabric-api) – Required on Fabric
### Optional Dependencies
– [LuckPerms](https://luckperms.net/) – For permissions/prefix/suffix support
## Compatibility Cheatsheet
TaterComms supports: Bukkit, Bungee, Fabric, Forge, Sponge, and Velocity
| Server type | Versions | Jar Name |
|———————|————-|———————————|
| All 1.20 (Sponge11) | 1.20-1.20.2 | `TaterComms-1.20-.jar` |
| All 1.19 (Sponge10) | 1.19-1.19.4 | `TaterComms-1.19-.jar` |
| All 1.18 (Sponge9) | 1.18-1.18.2 | `TaterComms-1.18-.jar` |
| All 1.17 (Sponge9) | 1.17-1.17.1 | `TaterComms-1.17-.jar` |
| All 1.16 (Sponge8) | 1.16-1.16.5 | `TaterComms-1.16-.jar` |
| All 1.15 (Sponge8) | 1.15-1.15.2 | `TaterComms-1.15-.jar` |
| All 1.14 | 1.14-1.14.3 | `TaterComms-1.14-.jar` |
## Commands and Permissions
| Command | Permission | Description |
|———————-|——————————|—————————–|
| `/tatercomms reload` | `tatercomms.admin.reload` | Reload the plugin |
| `/discord` | `tatercomms.command.discord` | Get the Discord invite link |
## [Release Notes](https://github.com/p0t4t0sandwich/TaterComms#release-notes)
StrippedBroadcast
**StrippedBroadcast** is a recreation of the [Plugin RawMsg](https://www.spigotmc.org/resources/rawmsg.35864/).
The main purpose of the Plugin is to send a message in chat just like the command broadcast. However, when sent, the message will **not** dispose of a **prefix** and the sender can specify a **group** of **players** to send the message to. It also has an **API** available for any developer to be used.
## Commands
The main and only command of StrippedBroadcast is, you guessed it, **/sbc** (short for **/simplebroadcast**). Its syntax is:
“`/sbc “`
As explained by the Plugin itself when trying to execute the command, the first argument should represent the targets of the broadcast. These could be:
– **all**, for every player online on the server;
– **** or **player=**, the only user who will see the message;
– **me**, an alias for the command issuer;
– **world=**, for every player present in that world;
perm=, for any player who has the permission;
– **op** or **perm=op**, for every op player in the server;
– **group=**; StrippedBroadcast is compatible with **LuckPerms**, so the argument “group” will allow the user to specify a certain group of players;
– **item=- **; for every player who has that item in the server;
– **effect=**; for every player who the specified effect;
– **gamemode=**; for every player in that gamemode;
– **money=**; for every player that has that amount of money.
## Expressions
StrippedBroadcast is also able to understand **expressions** as target. The user will be able to specify certain **conditions** that will return a list of compatible players.
Every expression should be expressed in parenthesis, but there is possibility to put more parenthesis inside one.
Example:
“`/sbc (world=world_the_nether && (perm=bukkit.* || perm=minecraft.*)) Looks like you are the king of hell!“`
You will also notice that expressions accept the keywords AND (&&) and OR (||). Their functioning is really simple:
– in the above example, the OR keyword is used to get every player who has the permission “bukkit.*” **or** the permission “minecraft.*”;
– the AND keyword is then used to get every player who is in the nether **and** has one of the two permissions.
Also, the plugin uses Tab Completition, so it will be very helpful at remembering the user to close parenthesis or insert certain keywords.
## Permissions
The only permission for StrippedBroadcast is “**sbc.main**”, which will allow the user to execute the /sbc command.
## Colors
Since the Minecraft 1.16 update, **Hex Colors** were added to the game. Now, StrippedBroadcast is able not only to use the default Minecraft colors (“&”), but also custom ones using the character #. If you are on 1.16 or higher, when typing “#”, the plugin will suggest all the valid letters and numbers to be used as color codes. Also, there is a new rainbow effect available. To use it, just type [RAINBOW] in front of your message. Example:
“`/sbc all [RAINBOW] StrippedBroadcast v1.2 is an amazing plugin!“`
## BungeeCord
Recently a version of StrippedBroadcast compatible with BungeeCord was released. It uses the same functionalities as the Spigot one, however some argument do change:
– **all**, for every player online in the server;
– a **player**, the only user who will see the message;
– a server (“**server=**”), for every player present in that server;
– a **permission** (“**perm=**”), for any player who has the permission;
– a **group** (“**group=**”), for any player who is in that group (REQUIRES LUCKPERMS).
An API is available also for BungeeCord, that uses the same names as the Spigot API followed by a “B” (e.g. **PlayerUtilsB** is the **PlayerUtils** for the BungeeCord part of the Plugin). The Main Class is accessible by the name **StrippedBroadcastBungee** and it contains all of the methods to send a message to a list of players.
## API
I honestly have no idea of how this Plugin API could be implemented, but I’m very curious to see what the developers will be able to create. Anyway, after importing the Plugin into your project, you are ready to begin. Two classes will be of your interest:
### StrippedBroadcast
The class StrippedBroadcast contains the static method sendStrippedBroadcast. This will send the given message (it can be a string, a list of strings or even an array) to the list of players specified. An example is:
“`java
String[] strings = new String[]{“This”, “is”, “a”, “cool”, “message”};
StrippedBroadcastEvent.sendStrippedBroadcast(Bukkit.getOnlinePlayers(), strings);
“`
### StrippedBroadcastEvent and StrippedBroadcastEventB
The StrippedBroadcastEvent and StrippedBroadcastEventB are events called anytime a message is sent using the Plugin Command or the Methods. They contain two variables: a list of involved players and the message sent.
“`java
@EventHandler
public void onMessageSent(StrippedBroadcastEvent event) {
event.getMessage();
}
“`
“`java
@EventHandler
public void onBungeeMessageSent(StrippedBroadcastEventB event) {
event.getMessage();
}
“`
### PlayersUtil
The PlayersUtil class contains all the methods that can be used to get list of players using certain input. Just like the /sbc command, PlayersUtil supports any kind of input value, from a world, to a permission, a gamemode, a player name and so on…
To get a more accurate list of all the available methods, you can check the GitHub page. https://github.com/Fulminazzo/StrippedBroadcast
StrictCraft
# 🔒 StrictCraft
**Secure your world. Preserve your gameplay. Rule your server.**
StrictCraft is a lightweight, elegant plugin designed to lock down gamemode access, block dangerous commands, and enforce fair survival gameplay, all without the clutter.
If you’re running an SMP, PvP, or hardcore survival server and want zero tolerance for cheaters and abuse, this is your firewall in a jar.
—
## ✨ Features
– 🔐 Block specific gamemodes (Creative, Spectator, Adventure…) with full enforcement
– 🚫 Disable high-risk commands (`/give`, `/enchant`, `/item`, `/gamemode`, and more)
– 🎮 Enforce Survival mode with automatic checks and shortcut blocking (F3+F4)
– 🧱 Prevent command block placement and usage
– 🧩 Detect and block gamemode switches from any source, commands, plugins, console, or shortcuts
– 📁 Simple YAML config with clear comments and dynamic placeholders
– 🧰 No performance impact, no external dependencies
—
## 💡 Why use StrictCraft?
Because vanilla ops aren’t enough. StrictCraft doesn’t try to be flashy, it quietly guards your server’s integrity. Every feature is lean, purposeful, and built for administrators who like their gameplay pure and their tools precise.
Whether you’re protecting a survival world, running a competitive PvP arena, or hosting a community SMP, StrictCraft ensures that gamemode abuse and command exploits are no longer a threat.
—
## ✅ Tested & Supported
– 🧩 Works with Paper, Spigot, Purpur, Bukkit, Folia, BugeeCord, Velocity and Waterfall
– 🧪 Fully tested on Minecraft `1.18+`
– ☕ Requires **Java 17 or higher**
– 🔁 Plug, reload, enforce, no restart required
—
## 📄 License & Support
This project is released under the [MIT License](https://github.com/RickPerix/strictcraft/blob/main/LICENSE)
Need help or want to report an issue? Reach out on Discord: `https://discord.gg/b4MFEa7tkP`
—
Crafted with care by **RickPerix** 🛠
Enjoy StrictCraft!
**Simple. Strong. Strict.**
StreamlineCore

MUST HAVE:
– LuckPerms. [**[ FOUND HERE ]**](https://luckperms.net/download)
– BukkitOfUtils (__For Bukkit / Spigot / Paper ONLY__). [**[ FOUND HERE ]**](https://www.spigotmc.org/resources/118276/)

Please join the Streamline Hub Discord in order to get updates and for me to fully assist you with bugs, questions, or suggestions.
Discord: [**click here**](https://dsc.gg/streamline)
[**Download Modules for Streamline Here (Click)**](https://storage.drak.gg/share/75RJ__vUBVQrC_PRfuHeTg)
# Introduction to Streamline
### What is Streamline?
Streamline is a Minecraft plugin that adds limitless functionality to Minecraft servers through what is known as **Modules**. These Modules are downloadable content that you insert into the Streamline plugin’s “modules“ folder to enhance your server.
Streamline Modules can do many things and even allow server admins and developers to make their own with a very nice framework.
The currently made modules add functionality such as:
– Redirecting players from one server to another when that server goes down. (**StreamlineRedirect Module**)
– Network staff chat, whispering, and friends. (**StreamlineMessaging Module**)
– Discord to Minecraft and Minecraft to Discord. (**StreamlineDiscord Module**)
– Logging messages to your Discord server with only webhooks. (**SimpleLogger Module**)
– Aliases, buildable functions, online list (per server, per group, or network wide), cross-network tpa, cross-network homes, cross-network teleporting, and more. (**StreamlineUtilities Module**)
– Data-Driven event-based protection for proxy and backend servers. (**ProxProtect Module**)
– Send resourcepacks to players on join. (**ResourcePackUtils Module**)
– Cross-network quests system with limitless potential. (**StreamQuests Module**)
– TAB (the plugin) integration, adding support for Streamline placeholders in TAB configurations. (**TAB-SL Module**)
– Simple and easily configured MOTD system like that of MiniMOTD. (**StreamlineMOTD Module**)
– *More.*
**NOTE**: Not seeing a feature you want? Ask Drak to add it on his Discord! – [**click here**](https://dsc.gg/streamline)
### What makes Streamline special?
Streamline allows for **universal cross-platform capabilities** with its Modules.
This essentially means you can run the same modules on a BungeeCord proxy that you would on a Velocity proxy (or even your backend servers). This, with the addition of **Modularized features** means that server admins and owners can choose *exactly* what they want in their server without bloatware.
This also makes it very easy for server admins to use a specific module across different servers. Or even for Developers to develop modules for servers (or the community).
### What exactly is Streamline capable of?
Literally *anything*. Seriously.
#### Supported Proxies:
> – Velocity
> – BungeeCord
> – Waterfall
> – FlameCord
> – Travertine
> – XCord
> – Etc.
#### Supported Backend Servers:
> – Spigot.
> – Paper.
> – Folia.
> – Purpur.
> – Tuinity.
> – ImmanitySpigot.
> – FlamePaper.
> – Mohist / Banner / Youer.
> – Etc.
#### Natively-Supported Plugins:
> – Luckperms. (Required.)
> – BukkitOfUtils. (Required on Bukkit-like servers.)
> – Geyser / Floodgate. (Everything work the same for Bedrock players as would Java players!)
> – PlaceholderAPI.
> – CMI. (With Utils module.)
> – EssentialsX. (With Utils module.)

Follow the Discord setup guide [**[ FOUND HERE ]**](https://github.com/Streamline-Essentials/StreamlineWiki/wiki/Discord-Setup) to set up the discord module.
# What can I do with the `Discord Module`?
– Link **Discord to Minecraft** and **Minecraft to Discord** with `Routes`.
– Available link types:
– Natively (Without other Modules):
– **Proxy local chat** `<->` **Discord Text Channel**
– **Proxy global chat** `<->` **Discord Text Channel**
– **All online players with specific permission** `<->` **Discord Text Channel**
– **Discord Text Channel** `<->` **Discord Text Channel**
– Groups (With `StreamlineGroups` Module):
– **Guild chat** `<->` **Discord Text Channel**
– **Party chat** `<->` **Discord Text Channel**
– Messaging (With `StreamlineMessaging` Module):
– **Local Room chat** `<->` **Discord Text Channel**
– **Global Room chat** `<->` **Discord Text Channel**
– **Custom Room chat** `<->` **Discord Text Channel**
– Message formats are completely customizable.
– Avatar with player’s skin will pop up when their message is sent to Discord.
– Link player’s Discord profile with your server.
– Players can chat using their StreamlineUser profile from Discord.
– All Discord messages can be configured to be sent as completely customized Discord embedded messages

More information is found on our wiki: [**FOUND HERE**](https://wiki.plas.host/streamline)
### NOTICE ABOUT COMMANDS, PERMISSIONS, AND MESSAGES.
***All commands are completely customizable in their `.yml` file. Including permissions and message outputs!***

1. Install dependencies.
– “BukkitOfUtils“ if on Bukkit / Spigot / Paper / Forks.
– “LuckPerms“ for all platforms.
2. Download the plugin file.
3. Drop it into your server’s plugins folder.
4. Start and stop your server.
5. Fill out the configs where necessary.
– Configurations for the streamline plugin can be found in your `plugins` folder, under `StreamlineCore`.
6. Add desired modules.
– Modules can be downloaded from here: [**click here**](https://wiki.plas.host/modules)
7. Start and stop your server again.
8. Fill out module configs where necessary.
– Module files can be found in your `plugins` folder, under `StreamlineCore`, under `module-resources`.
9. Start your server again.
More information can be found on our wiki: [**click here**](https://wiki.plas.host/streamline)

1. Look on the wiki: [**click here**](https://wiki.plas.host/streamline)
2. Get in touch on the Streamline Discord: [**click here**](https://dsc.gg/streamline)
3. Submit a bug on the issue tracker (this is rarely checked): [**click here**](https://github.com/Streamline-Essentials/StreamlineCore/
# BStats
**Bukkit**

**BungeeCord**

**Velocity**
