# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
This site has an agentic ask interface you may use to query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.supremeventures.ca/index.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

---

# Welcome to Supreme Ventures

Formerly known as Supreme Dev

This is our documentation and general information platform for all plugins sold under the "Shock" series brand. Shock is developed in-house by our expert team of developers and product managers.&#x20;

Please take the time to read over [our installation guide](/important-information/installation-and-setup) before continuing. If you have any questions, comments, or bug reports, please report them ASAP in our [Discord.](https://guccidev.us/discord)


# Installation & Setup

Installation & Setup Info For New Products

## Product Installation

* Download your product(s) via the download system in our[ Discord](https://supremeventures.ca/discord).
* Check the dependencies of the product(s) you wish to use.
* Add jar(s) to `../plugins/` directory on your server.
* Edit your servers startup parameters `--add-opens=java.base/java.lang=ALL-UNNAMED`
* Once the server has started, you should notice all the Shock series plugins are disabled. This is because all products require a license key.
* Navigate to `../plugins/<plugin-name>/license.txt`
* Add your license key to the `license.txt` file before saving it. You can find your licenses in our Discord by using `/licenses` (after purchase :smile:)
* Once you've added licenses for all your Shock series plugins, you are good to go! Restart one more time & your ready to go.

{% hint style="danger" %}
All plugins require an internet connection.
{% endhint %}

## Common Installation Problems

### My server keeps crashing...

This is most likely because you didn't save your license key properly. At the bottom of your `latest.log` you should find some info about the crash. Most plugins will say why they aren't loading correctly.

### I put my license in and it still won't load...

If after one or two restarts your server still won't load  jars, there may be something wrong with your licenses or the jars themselves. You should open a ticket in our discord to allow our team to debug the problem for you.

### I just put my license in and I get an error code...

We have very strict licensing rules compared to a lot of other development groups. This is for good reason. 99% of the time, your issues can be resolved by our staff in minutes by simply opening a ticket in our [Discord](https://supremeventures.ca/discord). But that info isn't publicly shared to stop people from debugging and backstepping our security methods.&#x20;


# Configuration Options

Common Configuration Options For All Gucci Plugins

### Formatting Codes

```
<bold>, <b> - old &l
<italic>, <em>, <i> - Makes letters appear as italic font
<underlined>, <u> - Underline text
<strikethrough>, <st> - Line through text
<obfuscated>, <obf> - Makes letters rotate and move so you can't see the actual value (old &k)
<reset>, <r> - Resets the colors to nothing
```

### **Color Codes**

```
<blue> - You can use named colors like "red", "green" etc
<#000000> - Can also use hex color codes to create highly detailed colors.
<gradient:color1:color2:...> - Created a gradient, unlimited amounts of colors
<rainbow> - Creates a rainbow for text after the tag.
```

### Chat Mouse Actions

Mouse actions allow you to create interactive handlers for chat messages. Show more details when hovering, open a website when clicked or suggest/execute commands with 1 simple click.

#### Mouse Hover Handler

Using the `<hover>` tag you can show text to a player when they hover over the message in chat with their mouse. This can be used to send larger more detailed messages in chat without feeling overwhelmed or spammy.&#x20;

* Format: `<hover:show_text:"Hover Text\nFor New Line">`

#### Mouse Click Actions

The `<click>` tag allows you to perform actions on the player's behalf when they click on specific messages or text within messages. You can perform any of the following actions using `<click>`

* `OPEN_URL` - Open a URL to the user's default browser
* `OPEN_FILE` - Open a specific file location on the user's system
* `RUN_COMMAND` - Run commands for the player
* `SUGGEST_COMMAND` - Suggest a command to the player's chat box
* `COPY_TO_CLIPBOARD` - Copy text to the user's clipboard

Each action follows the same format. Use this format for all actions and simply change out the final variable each time.

* Open URL Format: `<click:open_url:"https://google.com">`
* Run Command Format: `<click:run_command:"/heal">`

### Translations

User-specific translations are also supported. This means u can send German text to a user using German language settings in their Minecraft client. The server will replace the values for you. But you must use a Minecraft resource path to find the word you want.

Example: `You won a <lang:block.minecraft.diamond_block>`

The above will replace `<lang:block.minecraft.diamond_block>` with the appropeat language for the client.


# Commons Config

Gucci Commons Global Settings

All plugins utilize our core library "SVCommonsLib" to create & handle command executions. Being a "one size fits all", Commons handles all aspects of commands such as creating command help pages & whatnot. Most aspects of commands like colors, format, and style of the helps messages all appear the same (the same way old school Massive Core commands worked)

We decided to also include a full config section for styling these generated messages to your liking!

{% hint style="info" %}
This config file will likely be updated over time to include more options.
{% endhint %}

```yaml
sender-must-be-player:
  style: CHAT
  message:
  - <#FC100D><bold>➜</bold> You must be a player to use this command!
  sound: minecraft:entity.player.levelup
no-permission:
  style: CHAT
  message:
  - <#FC100D><bold>➜</bold> You do not have permission to use this command!
  sound: minecraft:entity.player.levelup
invalid-args:
  style: CHAT
  message:
  - <#FC100D><bold>➜</bold> {cause}<gray> {reason}
  sound: minecraft:entity.player.levelup
unknown-sub-command:
  style: CHAT
  message:
  - <#FC100D><bold>➜</bold> Unknown sub command
  sound: minecraft:entity.player.levelup
help-page-not-found:
  style: CHAT
  message:
  - ' '
  - <#00fdf1><bold>➜</bold> Command Help Usage
  - ' '
  - <#00fdf1>▎ <white>This command has no help pages left! :(
  - <#00fdf1>▎ <white>The available help pages are <#00fdf1>1 - {pages}
  - ' '
  sound: minecraft:entity.player.levelup
help-page-legend:
  style: CHAT
  message:
  - c:<gray>(( <Required>, {Optional} - Hover For Details ))
  sound: minecraft:entity.player.levelup
primary-color: <#00fdf1>
secondary-color: <white>
accent-color: <gray>
required-color: <#FC100D>
optional-color: <#FFCC00>
```


# Database Engine

Info about the database that powers every plugin.

### Configuring Cereal

Inside your servers `/plugins/SVCommonsLib` directory, you'll find `cereal.json` which can be used to configure the databases of all plugins on the server. In the future it will be possible to utilize different databases on a pre-plugin bases, but for our first implementation we've limited it to one shared instance.&#x20;

```json
{
  "mode": "FILE", // Also supports MongoDB
  "nodeId": "c88272c9-f0e1-4b99-8df5-3d138e6d6bd7",
  "mongoDBConfig": {
    "uri": "",
    "database": ""
  },
  "fileConfig": {},
  "cacheConfig": {
    "expireAfterAccessMinutes": 60,
    "expireAfterWriteMinutes": 60
  },
  "debug": true
}
```

Only a few of the above config variables need special attention,

### Special Config Options

`mode` - Currently supports `FILE` and `MONGO`with plans to support MySQL, SQLite, and Postgres in the coming months.

`debug` - Enables debug logging for caches and data sources.

`cacheConfig` - This is used to change how long specific items are kept in memory before being freed. These values are in milliseconds, and its recommend they are set between 5 and 15 minutes but every server is different. If peoples are only online for a short time before logging of for a long time, the value should be lower.&#x20;

`nodeId` - This value should never be changed. Its used to distinguish servers which share data between each other. This value is assigned and maintained by the plugin.

{% hint style="info" %}
If you need help with any of the other config variables, or have questions, please open a support ticket in our [Discord.](https://guccidev.us/discord)
{% endhint %}


# Message Formats

Message Formats - lang.yml

### Message Formats

All messages include the following format to enable you to send exactly what you want in any language, format, channel, or nothing at all.&#x20;

```yaml
level-up-message:
  style: CHAT
  message:
  - <rainbow><bold>Congratulations!</bold></rainbow>
  sound: minecraft:entity.player.levelup
```

{% hint style="info" %}
Make sure to also check out [Custom Adventure](/important-information/configuration-options/custom-styling) style tags.
{% endhint %}

Given the above config options, you can customize your messages to utilize any of the following channels to send messages to players

* `CHAT` - Sends a message in the player's chat. Supports unlimited message length, and colors, and you can also use click & hover events to customize even more!
* `TITLE` - Sends the message via a title to the player. This message is limited to 2 lines (top/title, bottom/subtitle). You cannot use hover or click events with this style but colors and other text formats are available.
* `ACTION_BAR` - Sends the message in the player's action bar (little message above your hotbar in-game) This message has unlimited length but is limited to a single line. You cannot use hover or click events with this style but colors and other text formats are available.
* `DISABLE` - This allows you to completely disable a message. This may be helpful to remove irrelevant or spammy messages based on your setup & configs.

### Message Sounds

All messages have the option to play a sound alongside the message. A full list of [Minecraft default sounds can be found here](https://jd.papermc.io/paper/1.21.3/org/bukkit/Sound.html), but you can also implement custom sounds using a texture pack, or leave it empty to disable sound.&#x20;


# Custom Styling

Template and Usage of Gucci's Custom Styling

## Adventure Styling

[Adventure](https://docs.advntr.dev) handles our color, gradient, hover, click and most other styles for messages, titles, and action bar messages along with items, menus and any other configurable style component. By default, Adventure comes preconfigured with [these tags](https://docs.advntr.dev/minimessage/format.html). The following additional tags are added by us. If you encounter issues or require assistance with these tags please do not report them to Adventure, instead open a ticket in our [Discord](https://guccidev.us/discord).

{% hint style="info" %}
Make sure to also check out the [Message Formats](/important-information/configuration-options/message-formats) wiki.
{% endhint %}

### Centered Tag

Centers a given string for the Minecraft chat bar max length. If players use a different size, it will not be centered for them.

`<centered>`

### Legacy Tag

Allows for use of legacy color codes. Not intended to be used for all styling, but does add some legacy support for things like Factions `%rel_factions_relation_color%`

`<legacy:color-code>`

* `color-code` - The legacy color code(s) you want to include. [Supports only regular color codes.](https://minecraft.fandom.com/wiki/Formatting_codes)

### Progress Bar Tag

Generates a progress bar with the given input params.&#x20;

`<progress:current:total:bar-length:complete-color:incomplete-color:char>`

* `current` - This is the current amount out of the total amount required already complete.
* `total` - This is the expected "total" amount of progress
* `bar-length` - How long should the progress bar be (in characters)
* `complete-color` - The color of the completed side of the bar (optional)
* `incomplete-color` - The color of the incomplete side of the bar (optional)
* `char` - The character which the bar is made of. (`|,`▌) (optional)

### Block Font

Converts regular English text to the block-font equivilent.&#x20;

`<block-font:"Text">`

* `"Text"` - This is the text which you'd like to translate to Block Font.

{% hint style="warning" %}
Only English letters can be converted. No numbers, special chars, or Unicode's exist in the same font style. Please let our developers know if you find some! \
\
Namespace is only `[.a-zA-Z]`
{% endhint %}

### Percentage

Finds the completion percentage of 2 given input numbers.

`<percentage:complete:total:\"Complete!\">`

* `complete` - The amount out of the total
* `total` -  The total amount to divide with
* `"Complete!"` - If the amount is 100% or more, this text will be displayed if present (optional)

### Roman Numerals

Converts a given input number into its roman numeral counterpart.

`<roman:amount>`

* `amount` - The number to convert to roman numerals.


# Configure Numbers

Additional info about Gucci's unique number configurations

## Nerd Talk...

As part of our commitment to allowing its customers to create the most unique experience possible with our plugins, we needed to create a custom solution to a common issue we had with configuring numbers while trying to create clean & maintainable code. For those who aren't Java developers, here's a quick rundown...\
\
Numbers in Java come in a range of flavors. The most common being `Integer` which covers any positive, or negative number between 0 &  [\~2,000,000,000 ](#user-content-fn-1)[^1] (4 bytes of memory). Integers also only cover whole numbers. This leads to the second most common, `Double` which can store any positive or negative, decimal or whole number between 0 & `1.79^308`&#x20;

The issue with this is that when you serialize (save) a number of a specific type to a standard format like a config file, it can lose its precision and also can cause a headache for the customer as you have no idea the bounds of the value you are editing. Gucci solves this by saving all number config values in a format that includes a short suffix identifying the runtime type & allows users to know the bounds of the value they are editing.&#x20;

{% hint style="info" %}
Basically, different number types use different amounts of memory. We try to save the most memory possible and use the correct data types for the task at hand. This creates weird number limitations when configuring, so we added suffixes & config validation to limit these numbers.
{% endhint %}

## Actual Reason For This Page...

Configs serialize (save to file) in a format that translates any number into an easy-to-define format.&#x20;

| Config Version     | Mapped Type                 | Min-Max Values                                                                                                               |
| ------------------ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `example: "0.01"`  | Double (no suffix)          | [Any](https://programming.guide/java/double-range.html)[ Number possible.](https://programming.guide/java/double-range.html) |
| `example: "0.01F"` | Float (`F` suffix)          | [+/-3.40282347×10^38](https://programming.guide/java/float-range.html)                                                       |
| `example: "1"`     | Integer (no suffix, no `.`) | [-2^31 -> 2^31-1](https://programming.guide/java/int-range.html)                                                             |
| `example: "1L"`    | Long (`L` suffix)           | [-2^63 -> 2^63-1](https://programming.guide/java/long-range.html)                                                            |
| `example: "1S"`    | Short (`S` suffix)          | [-32,763 -> 32,767](https://programming.guide/java/short-range.html)                                                         |
| `example: "1B"`    | Byte (`B` suffix)           | [-128 -> 127](https://programming.guide/java/byte-range.html)                                                                |

{% hint style="warning" %}
This does not mean you can change the data types as you wish. The type defined in the default config must be the same as it is when it is created.&#x20;
{% endhint %}

[^1]: The exact value is 2,147,483,647


# Timestamps

How to create & use an Unix Epoch timestamps

Many of our products use something called a "**Unix Epoch" t**imestamp when servers may need to specify specific times or dates. All most people need to really know about these timestamps is how to make them & how to read them.

### How do I get/create an epoch timestamp?

1. Head over to <https://www.epochconverter.com/>
2. If you want to generate an epoch for a specific time, enter your date & time into the fields besides "Human date to Timestamp"&#x20;
3. After you enter the date, "Human date to Timestamp" it will return an "Epoch timestamp" listed below the fields used to specify the date. You can just copy that timestamp & use it in your configs.

### Cant Remember What Time This Was?

Simply head to the same site listed above, and enter your unknown timestamp into the listed field. The site will tell you when your timestamp is in your local time.


# Developer API

Documentation for Supreme Ventures developer tools

Product API's are provided via our [Nexus repository](https://nexus.supremeventures.ca/). All APIs provided via our nexus utilize [Lazy](https://github.com/Savag3life/Lazy), which automatically extracts developer APIs from all products when they are published to customers.

Distributed API jars contain the same method & field signatures, while removing all our internal method logic. This allows the jars to be safely shared without compromising any sensitive data.&#x20;

{% tabs %}
{% tab title="Maven" %}

```xml
<repositories>
    <repository> <!-- Supreme Ventures Nexus -->
        <id>supreme-ventures-nexus</id>
        <url>https://nexus.supremeventures.ca/repository/maven-releases/</url>
    </repository>
</repositories>

<dependencies>
    <dependency> <!-- SVLib -->
        <groupId>not.savage</groupId>
        <artifactId>SVCommonLib</artifactId>
        <version>1.0.51</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
```

{% endtab %}

{% tab title="Gradle" %}

```gradle
repositories {
    maven {
        url "https://nexus.supremeventures.ca/repository/maven-releases/"
    }
}

dependencies {
    // SVLib
    compileOnly group: 'not.savage', name: 'SVCommonLib', version: '1.0.51'
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Please note the versions on this page may not be the most up-to-date! Please check our [Nexus server](https://nexus.supremeventures.ca/#browse/browse:maven-releases:me%2Fsavag3%2FGucciCommons) for the latest build versions.
{% endhint %}

{% hint style="danger" %}
**Private use of SVCommonsLib**

Please note that you technically can you use SVCommonsLib for private work, but this isn't recommended. As Commons is a close-source internal tool, we do not publicly share the details of API changes, usage, or Java Docs for any components.\
\
**Expect API methods, classes, or fields to be changed or removed without notice.**
{% endhint %}


# Item Meta

Manipulation Items In Any Way Possible - Free to Clients

Item Meta is a small, easy to use plugin designed for quickly templating and previewing ItemStack styling in-game without leaving, configs, or restarts. Using the below commands, you simply hold your item in your hand, and execute commands to modify any aspect of ItemStack configuration.

## Commands Overview

The following commands are used to manage and modify item metadata in the game:

* **/meta glow `true|false`**\
  Set the item to glow and hide enchantments.
* **/meta display|name `{text}`**\
  Set the display name of the item using any adventure codes and text. If no text is provided, the plugin will attempt to resolve the current name & prompt you to edit it.
* **/meta lore**\
  Manage the lore (description) of the ItemStack:
  * **/meta lore add `<text>`**\
    Add a line to the lore with the specified text.
  * **/meta lore remove `<line-number>`**\
    Remove the lore line at the specified line number. Must be within range.
  * **/meta lore insert `<line-number>`** **`<text>`**\
    Insert a new lore line at the specified line number. Index must be within the current lore range.
  * **/meta lore clear**\
    Clear all existing lore from the item.
  * **/meta lore edit `<index> {text}`**\
    Edit an existing lore line. If no text is provided, the plugin will attempt to find the current line styling & prompt you to edit it via a suggestion command.&#x20;
* **/meta unstackable `true|false`**\
  Set the item to be unstackable. Unstackable means that a given item will not be stackable with other items of the same type, lore, displayname & meta. This is achieved by adding a unique data container to each item. If an item is made "unstackable" and the amount is set to `> 1`, the resulting items **will be stackable** as the item stack was modified to all have the same unique code.&#x20;
* **/meta unbreakable `true|false`**\
  Set the item to be unbreakable. Unbreakable items also have a `UNBREAKABLE` item flag which will show on the item once added. You can hide this with `/meta flags add HIDE_UNBREAKBLE`
* **/meta flags**\
  Manage the flags on the ItemStack:
  * **/meta flag add `<item-flag>`**\
    Add a specific item flag.
  * **/meta flag remove `<item-flag>`**\
    Remove a specific item flag.
  * **/meta flag list**\
    List all flags present on the item in hand.
  * **/meta flag listall**\
    List all possible item flags that can be added to this item. This list is dependent on your servers native version. In 1.20, 1.20.1 & 1.20.3 item flags have been changed.
* **/meta info**\
  Display detailed information about the item in hand. Type, enchants, data containers, etc.
* **/meta enchant `<enchantment> <level>`**\
  Add an enchantment to a ItemStack. This action will override the `/meta glow` command removing the provided `HIDE_ENCHANTS` flag & removing the default enchant added to create the flow effect (`FIRE_ARROWS`). If you'd still like to hide enchants, use `/meta flags add HIDE_ENCHANTS`. To remove enchants, use `0` as the level.&#x20;
* **/meta material `<type>`**\
  Allows you to change the current material type of the item you are holding, while transferring all other metadata.
* **/meta amount `<amount>`**\
  Allows you to change the amount of an item you are currently holding (like `/stack` from essentials)
* **/meta export `<format>`**

  Allows you to export a given item to a provided format. By default, ItemMeta provided exporting to YAML/YML formats (Gucci Style) and to Base64.&#x20;


# ShockMOTD

Simple, Lightweight, Powerful Server List MOTD Plugin

Shock MOTD provides the features you want, without bloat. Simple yet feature packed was the goal, adding tools we all want like automatic centering using `<centered>` tags, Left-side text, and full-bar width hover text. Supporting both **Velocity** and **Paper** servers.

### Features

* Highly configurable & customizable.
* Override player counts & API support for custom player counts.
* Lightweight & fast. Handled on the network level.
* Support for **Velocity** & **Paper**.
* Full-Width hover text bar support.
* Left-margin text support.
* Automatic centering system. No more space padding by hand.
* Does **not require** [SVCommonsLib](https://supremeventures.ca/discord)! But you should still check us out :p

<figure><img src="https://1689193522-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNIii9qw8mT5eNtVJABFb%2Fuploads%2FilHM9UiU7fLglBZ0b1CP%2Fcb6d6ad0a607d95f46f095d138327862.png?alt=media&amp;token=7770e35d-65b3-4659-ab37-b0960beb5e46" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1689193522-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNIii9qw8mT5eNtVJABFb%2Fuploads%2FTSSYUQHUBwuDrGLtZxUQ%2F950a25e8f648d833bba26e869c064d24.gif?alt=media&amp;token=653cf9b4-e03a-4baa-9181-4c8ad7b9e5fb" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}

## Color Usage!

The `hover-message` field in the config **ONLY** supports legacy `&` color codes. This is a limitation of the Spigot API. All other message fields \*should\* support MiniMessage `<color>` formats.
{% endhint %}

### Configuration

```yaml
# This is the actual MOTD Text, show in the main text block.
# This block supports adventure text <#000000> format.
# You can use `c:` in front to center the text automatically.
main-message-lines:
- c:<gradient:#2185da:#cee8fd><bold>Shock Series Test
- c:<bold><#FF5555>ꜰᴀᴄᴛɪᴏɴꜱ<white>, <#FFAA00>ꜱᴋʏʙʟᴏᴄᴋ<white>, <#FFFF55>ꜱᴍᴘ<white>,
  ᴀɴᴅ <#FF5555>ᴍ<#FFAA00>ᴏ<#FFFF55>ʀ<#55FF55>ᴇ
# Hover Text - This is shown when hovering over the ping,
# player count & left + right side text.
# This block supports adventure text <#000000> format.
hover-message:
- '&b&lSupreme&f&lVentures &f» &bShockSeries Test Server'
- ' '
- 'Currently Hosting:'
- '&b&l* &fAll-In-One Chat Core'
- '&b&l* &fScriptable Player Levels'
- '&b&l* &fIndepth Player Stats'
- '&b&l* &fSMP Focused Guilds'
- '&b&l* &fCompetitive Factions Fork'
- '&b&l* &fPremium Currency Shop'
- '&b&l* &fDiscord Linking'
- '&b&l* &fand many &am&eo&br&ce... '
- ' '
- '&7&nhttps://supremeventures.ca/discord'
# This is the text shown on the left-side of the thumbnail picture.
# Left and right side text do not support <#000000> 
# Only Bukkit & color codes.
left-side-line: '&fᴊᴜꜱᴛ ᴜᴘᴅᴀᴛᴇᴅ'
# This is the text shown next to the player count.
# Left and right side text do not support <#000000> 
# Only Bukkit & color codes. Use 'empty' to remove all text
# including the player count.
right-side-line: '&aJoin now!'
# Max player count shown on the MOTD.
# Use -1 to always show the current player count + 1.
max-players: '-1'
# The image to use for the favicon.png.
favicon: server-icon.png
```


# AirHeads

A fun an exciting new take on traditional NPC interactions.

A simple but more creative solution to the typical need for an NPC/Citizen. Instead, you can add flare & personality to your features & guide players towards the "shiny" things you want them to interact with.

### Features

* 1.20.5 - 1.21.8 Supported
* Create unlimited unique AirHeads, put them everywhere!
* Configure each AirHeads animation, appearance, and behavior.
* Lightweight & fast. No real entities bogging down your server.
* Powerful developer API for spawning AirHeads wherever & whenever you want.
* Internal Holograms using new 1.20+ `TextDisplay` entities
* Scale heads up to 10x normal size, and down to 5% of normal size.
* Sends messages, play sounds, dispatch console commands or execute commands as the player.
* Add block-overlays to the AirHead, to add another layer of depth to your AirHeads.
* Velocity Send-To-Server support

<figure><img src="https://1689193522-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNIii9qw8mT5eNtVJABFb%2Fuploads%2FG8VDD2PsRuY4F5XPa0E4%2F3f6526e56cf2c3580fd64113c32e5579.gif?alt=media&amp;token=8ccabee6-c03a-41b5-9710-aee8cdb09c54" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1689193522-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNIii9qw8mT5eNtVJABFb%2Fuploads%2FyIXSKmnU8hK8HVAtSk0c%2Fd457609df64d867be3ab174d0f8ad4a9.gif?alt=media&amp;token=0b1d1245-540c-4e3e-a9e6-98e74abb8180" alt=""><figcaption></figcaption></figure>

## Configuration

```yaml
 airheads:
   levels:
    # The location the AirHead will spawn at.
    location:
      world: test_world
      x: -438.0
      y: -38.0
      z: 293.0
      yaw: 0.0 # Used if rotation is disabled
      pitch: 0.0 # Used if rotation is disabled
    hologram-text-display-settings:
      # How the hologram rotates with the player.
      # Options:
      # FIXED - Hologram doesn't rotate at all.
      # VERTICAL - Hologram rotates with the player, but only on the Y axis.
      # HORIZONTAL - Hologram rotates with the player, but only on the X axis.
      # CENTERED - Hologram rotates with the player on all axes.
      billboard-constraints: VERTICAL
      # How text is auto aligned in the hologram.
      # Options:
      # LEFT - Text is aligned to the left.
      # CENTERED - Text is aligned to the center.
      # RIGHT - Text is aligned to the right.
      text-alignment: CENTERED
      hologram-text:
        - <#ADBED1><st>--</st> <#fded07><bold>ᴘʟᴀʏᴇʀ ʟᴇᴠᴇʟꜱ</bold> <#ADBED1><st>--</st>
        - <gray>1.20.5 - 1.21.5
      # How far above the AirHead the hologram is.
      hologram-offset: 0.5
      # How big/small to scale the hologram. Between 0.1 and 10.0
      scale-x: 1.0
      scale-y: 1.0
      scale-z: 1.0
      # How to translate the holograms position (Advanced users)
      translation-x: 0.0
      translation-y: 0.0
      translation-z: 0.0
      # Override the width/height of the hologram. 
      # Will be override if text size is larger.
      width: 200
      height: 50
      # Does text on the hologram have a shadow?
      has-text-shadow: false
      # Is the hologram background transparent?
      transparent-background: true
      # If not transparent, what color is the background?
      # Uses ARGB format. #AARRGGBB
      background-color: '#40000000'
      # The radius of the hologram shadow.
      shadow-radius: 0.0
      # The strength of the hologram shadow.
      shadow-strength: 0.0
      # How often does the hologram update placeholders.
      # -1 to disable if not using placeholders are used or change.
      update-interval-ticks: 5
      # How far away should the hologram be visible.
      render-distance: 100
      # Hologram pitch and yaw.
      pitch: 0.0
      yaw: 0.0
    appearance-settings:
      # Head texture in base64 format.
      head-texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWUzMWRhZWEzMGU1NzFiYjhiZGZhMGM2ZDJjOGVhMWJjNzIxYTRiMTJhY2NmN2RhNDM4YjZmMDU5OGJmMDg4NiJ9fX0=
      # Scale of the head. Between 0.1 and 10.0
      scale: 2.0
      # Material overlapping the head (like a helmet)
      # AIR - No overlay, just the head.
      overlay-material: YELLOW_STAINED_GLASS
      # How much larger to scale the overlay. (How much bigger is the helmet)
      overlay-offset: 0.45
    interact-settings:
      # Executed by the player on every interact
      interact-commands:
        - levels
      # Executed by the player on every left-click
      left-click-commands: []
      # Executed by the player on every right-click
      right-click-commands: []
      # Executed by the console on every interact
      console-commands: []
      # Executed by the console on every left-click
      left-click-console-commands: []
      # Executed by the console on every right-click
      right-click-console-commands: []
      # Message sent to the player on every interact
      interact-message: []
      # Sound played to the player on every interact
      sound-settings:
        volume: 1.0
        pitch: 1.0
        sound: minecraft:entity.player.levelup
        enabled: true
      # Send a player to another server when they interact with the AirHead.
      # leave empty to disable.
      send-to: "factions" 
    animation-settings:
      # Should the head float up and down?
      do-float: true
      # How far above and below the starting position should it float
      float-up-max: 0.5
      float-down-max: 0.5
      # How long, int ticks, should the animation take to run 1 up-down cycle.
      # Higher = slower
      float-cycle-duration-ticks: 80
        # Should the head rotate?
      do-rotation: true
      # How fast, in degrees, should the head rotate per tick.
      # Higher = faster
      rotation-per-tick: 5
```


# Simple Chat

Drop-in replacement for LPC - Supports Signed Chat Messages

1.21 native simple chat formatting solution. Depends on LuckPerms & supports PlaceholderAPI. Group based, fast, and easy. No bloat, no lag, no fuss.

* [Requires LuckPerms](https://luckperms.net/)
* [Supports PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)
* [MiniMessage/Adventure](https://docs.advntr.dev/minimessage/index.html) Colors, Gradients, and Formatting
* **Requires Paper or a fork**. Spigot will not work!
* Configurable Event Priority (Allows you to override other plugins)
* Unlimited Group Formats
* Supports Legacy `&` Color Codes

### Config

```yml
formats:
  default: "<white><bold>%name%</bold> <gray>» <white>"
  admin: "<red><bold>%prefix% %name%</bold> <gray>» <white>"
  owner: "<rainbow><bold>%prefix% %name% %suffix%</bold> <gray>» <white>"

priority: HIGHEST

messages:
  no_permission: "<white>Unknown command."
  reloaded: "<green>Simple Chat Reloaded."
```


# Discord Link

Supported Versions: Java 21 | Game Version 1.20.5+

This plugin is the perfect addition to any Minecraft server looking to build a stronger, more engaged community. Allowing players to connect their in-game accounts with their Discord accounts to gain rewards from outside the game.&#x20;

## In-Game

* Provides /discord command with configurable message
* Link command & code generator
* API for getting Discord data & user info

## In-Discord

* /link for linking in-game
* API for accessing Discord data & user id.
* Nitro Boosting API

## Config Options

<table data-card-size="large" data-column-title-hidden data-view="cards" data-full-width="true"><thead><tr><th align="center"></th><th align="center"></th><th data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center">General Configuration</td><td align="center"><code>/plugins/ShockDiscordLink/config.yml</code></td><td></td><td>ssssss</td><td><a href="https://bin.supremeventures.ca/gucci-discord-link-config">https://bin.supremeventures.ca/gucci-discord-link-config</a></td></tr></tbody></table>

## Dependencies & Support

**Required Dependencies:** [SVCommonsLib](https://supremeventures.ca/discord), [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)

**Optional Dependencies:**&#x20;

*Looking for additional Support? Open a ticket in our* [*Discord*](https://guccidev.us/discord)*.*


# Commands & Permissions

List of commands and permissions for Shock Discord Link

## In-Game Commands

<table data-full-width="true"><thead><tr><th width="193">Command</th><th>Description</th></tr></thead><tbody><tr><td><code>/link</code></td><td>Access the Discord link GUI which starts the linking process &#x26; generates their code.</td></tr><tr><td><code>/discord</code></td><td>Display's a configurable Discord link &#x26; messages to join your Discord server.</td></tr></tbody></table>

## Discord Commands

<table data-full-width="true"><thead><tr><th width="304">Command</th><th>Description</th></tr></thead><tbody><tr><td><code>/link</code></td><td>Used to link your account to in-game via a Discord channel</td></tr></tbody></table>


# Placeholders

Placeholders provided by PlaceholderAPI

Shock Discord Link does not currently provide any placeholders. If you have any suggestions, please open a ticket in our [Discord](https://supremeventures.ca/discord).


# Setting up Discord bots

How to create your Discord App for Discord Linking

### Creating a Discord bot&#x20;

1. Go to <https://discord.com/developers/applications/>
2. Create an Application
3. Give the application an awesome name (this will be used as the bot's initial username)
4. Click **Save Changes**
5. Open the **Bot** tab
6. Click **Add Bot** and confirm
7. Make sure to make your bot set to non-public by changing the slot labeled "public bot"
8. Make sure to change the bot's username & profile picture in this tab as well

### IMPORTANT \*\*

Discord Link requires you to enable specific Discord "Intentions". On the Discord developer portal bot page, scroll down on your application and enable the following options:

<figure><img src="https://1689193522-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNIii9qw8mT5eNtVJABFb%2Fuploads%2FeTRH9zH3zcKbbOBFamsS%2F7eb585633927c70311e1d76b633a9a54.png?alt=media&amp;token=63b74f01-7247-46a9-b7a1-39609074b355" alt=""><figcaption></figcaption></figure>

### Configuring your Linking Bot

The following configuration settings **must be configured** for your bot to work correctly!

```yaml
discord-bot-settings:
  run-bot-on-instance: true
  bot-token: '<your-bot-token-copied-from-above>'
  discord-guild-id: '<your-servers-discord-guild-id>'
  member-role-id: '<discord-linked-role>'
```

The Discord guild, role, and token must be configured for your Discord Linking bot to start & enable correctly. Missing any of these options may cause your bot to fail Discord commands or linking!&#x20;

{% hint style="danger" %}
The Discord bot can only **run on one server**, but **unlimited servers can connect** **together** via our databasing system to share the same data. Make sure when configuring, you only have the bot running on one server
{% endhint %}

### User Permissions

Discord members will require access to use `/slash commands` in the channel(s) you want them to be able to use the Discord linking command.&#x20;

<figure><img src="https://1689193522-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNIii9qw8mT5eNtVJABFb%2Fuploads%2FawqXz3aNhV4BW0AWXMpp%2F96093923afde76ef6b59d30ad849709b.png?alt=media&amp;token=fd8c938b-473b-43a2-a62a-3679e653afe3" alt=""><figcaption></figcaption></figure>


# Factions Fork

Supported Versions: Java 21 | Game Version 1.20.6+

Built on top of Supreme Factions - Shock's new Factions introduces the latest version of Minecraft to the world of competitive Factions. Including all the features players know and love, updated to utilize all the game has to offer & support all the new mechanics.

## Key Features

* Fully modernized 1.8 Factions experience for 1.16.5 - 1.20.1
* Robust and full coverage configuration system for all options.
* Fully asynchronous Factions Fly
* Faction-based permissions system
* Faction upgrades and Faction perks
* Faction shields system (1 - 23 hours)
* Raid timers, raid phases, active raids hub & raid stats tracking (shots fired, kills, deaths)
* Factions corners system
* &#x20;And many more features like FGrace, FPayPal, FDiscord, FStrikes, and FWarps

## Config Options

<table data-card-size="large" data-column-title-hidden data-view="cards" data-full-width="true"><thead><tr><th align="center"></th><th align="center"></th><th data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center">General Configuration</td><td align="center"><code>/plugins/Factions/config.yml</code></td><td></td><td>ssssss</td><td><a href="https://bin.supremeventures.ca/gucci-factions-config">https://bin.supremeventures.ca/gucci-factions-config</a></td></tr><tr><td align="center">Misc Feature Configs</td><td align="center"><code>/plugins/Factions/features.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-factions-features">https://bin.supremeventures.ca/gucci-factions-features</a></td></tr><tr><td align="center">Default Faction Permissions</td><td align="center"><code>/plugins/Factions/permissions.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-factions-permissions">https://bin.supremeventures.ca/gucci-factions-permissions</a></td></tr><tr><td align="center">Faction Shield Settings</td><td align="center"><code>/plugins/Factions/shields.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-factions-shields">https://bin.supremeventures.ca/gucci-factions-shields</a></td></tr><tr><td align="center">Faction Upgrade Settings</td><td align="center"><code>/plugins/Factions/upgrades.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-factions-upgrades">https://bin.supremeventures.ca/gucci-factions-upgrades</a></td></tr><tr><td align="center">Faction Perks Settings</td><td align="center"><code>/plugins/Factions/perks.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-factions-perks">https://bin.supremeventures.ca/gucci-factions-perks</a></td></tr><tr><td align="center">Faction Raiding Settings</td><td align="center"><code>/plugins/Factions/raids.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-factions-raids">https://bin.supremeventures.ca/gucci-factions-raids</a></td></tr></tbody></table>

## Dependencies & Support

**Required Dependencies:** [Commons](https://guccidev.us/discord), [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)

**Optional Dependencies:**&#x20;

*Looking for additional Support? Open a ticket in our* [*Discord*](https://guccidev.us/discord)*.*


# Commands & Permissions

List of commands & permissions for Gucci Factions

## Factions Commands

<table data-full-width="true"><thead><tr><th width="304">Command</th><th>Description</th></tr></thead><tbody><tr><td><code>/f</code> &#x26; <code>/factions</code></td><td>Factions base command for interacting with all factions features</td></tr><tr><td><code>/f help</code></td><td>List all factions commands &#x26; thier given descriptions</td></tr></tbody></table>

## Faction Permission Kits

<table data-full-width="true"><thead><tr><th width="304">Permission</th><th>Usage</th></tr></thead><tbody><tr><td><code>factions.kit.admin</code></td><td>Faction admin permission set. Give all faction perms &#x26; permissions for chat spy etc.</td></tr><tr><td><code>factions.kit.fullplayer</code></td><td>All permissions players would need to create, manage, and interact with factions</td></tr></tbody></table>

[A full list of permissions can be found here.](https://bin.supremeventures.ca/ecasuhihin.yaml)

## Faction Flight Permissions

<table data-full-width="true"><thead><tr><th width="304">Permission</th><th>Usage</th></tr></thead><tbody><tr><td><code>factions.fly.wilderness</code></td><td>All players to fly in land that is unclaimed (wilderness)</td></tr><tr><td><code>factions.fly.warzone</code></td><td>All players to fly in land claimed by Warzone (pvp areas)</td></tr><tr><td><code>factions.fly.safezone</code></td><td>All players to fly in land claimed by Safezone (spawn/protected)</td></tr><tr><td><code>factions.fly.bypass</code></td><td>Bypass nearby enemy flight restrictions (fly with enemies nearby)</td></tr><tr><td><code>factions.fly.exempt</code></td><td>Bypass all flight restrictions (fly anywhere, anytime)</td></tr></tbody></table>


# Placeholders

Placeholders provided via PlaceholderAPI

### Gucci Custom Placeholders

<table data-full-width="true"><thead><tr><th>Placeholder (%placeholder%)</th><th>Description</th></tr></thead><tbody><tr><td><code>factionsuuid_faction_discord_set</code></td><td>Whether the faction has thier <code>/f discord</code> set</td></tr><tr><td><code>factionsuuid_faction_paypal_set</code></td><td>Wether the faction has thier <code>/f paypal</code> set</td></tr><tr><td><code>factionsuuid_faction_strikes</code></td><td>Number of strike a faction has received</td></tr><tr><td><code>factionsuuid_grace_timer</code></td><td>Number of milliseconds until grace is over</td></tr><tr><td><code>factionsuuid_grace_timer_string</code></td><td>Time until grace is over, formatted (1h 22m Left)</td></tr><tr><td><code>factionsuuid_fgrace_timer_noformat</code></td><td>Number of seconds until grace is over</td></tr><tr><td><code>factionsuuid_faction_shield_status</code></td><td>If you are protected by shield. Values configurable.</td></tr><tr><td><code>factionsuuid_faction_shield_string</code></td><td>`Shield Not Set` or `Shielded From 1 -> 12`</td></tr><tr><td><code>factionsuuid_faction_shield_end</code></td><td>Ending hour of shield protection time</td></tr><tr><td><code>factionsuuid_faction_shield_start</code></td><td>Starting hour of shield protection time</td></tr><tr><td><code>factionsuuid_faction_shield_protected</code></td><td>True/False status of shield protection</td></tr><tr><td><code>factionsuuid_faction_leader</code></td><td>Name of the faction leader</td></tr></tbody></table>

## FactionsUUID Placeholders <a href="#facplaceholders-factionsuuidplaceholders" id="facplaceholders-factionsuuidplaceholders"></a>

<table data-full-width="true"><thead><tr><th>Placeholder (%placeholder%)</th><th>Description</th></tr></thead><tbody><tr><td><code>rel_factionsuuid_relation</code></td><td>The relation between the 2 players</td></tr><tr><td><code>rel_factionsuuid_relation_color</code></td><td>Color of the relation between the 2 players</td></tr><tr><td><code>factionsuuid_player_name</code></td><td>The player's name</td></tr><tr><td><code>factionsuuid_player_lastseen</code></td><td>Last time the player was seen on the server or their online status</td></tr><tr><td><code>factionsuuid_player_group</code></td><td>Player's permission group</td></tr><tr><td><code>factionsuuid_player_balance</code></td><td>Player's money</td></tr><tr><td><code>factionsuuid_player_power</code></td><td>Player's power</td></tr><tr><td><code>factionsuuid_player_maxpower</code></td><td>Max power a player can have</td></tr><tr><td><code>factionsuuid_player_kills</code></td><td>Kills by this player</td></tr><tr><td><code>factionsuuid_player_deaths</code></td><td>Deaths by this player</td></tr><tr><td><code>factionsuuid_player_role</code></td><td>Player's faction role</td></tr><tr><td><code>factionsuuid_player_role_name</code></td><td>Player's faction role's name</td></tr><tr><td><code>factionsuuid_faction_name</code></td><td>Faction's tag</td></tr><tr><td><code>factionsuuid_faction_power</code></td><td>Faction's current power</td></tr><tr><td><code>factionsuuid_faction_powermax</code></td><td>Faction's max power</td></tr><tr><td><code>factionsuuid_faction_description</code></td><td>Faction's long description</td></tr><tr><td><code>factionsuuid_faction_claims</code></td><td>Number of claimed chunks</td></tr><tr><td><code>factionsuuid_faction_maxclaims</code></td><td>Max Number of claimable chunks</td></tr><tr><td><code>factionsuuid_faction_founded</code></td><td>Date your faction was founded</td></tr><tr><td><code>factionsuuid_faction_joining</code></td><td>If your faction is allowing new members</td></tr><tr><td><code>factionsuuid_faction_peaceful</code></td><td>If your faction is peaceful</td></tr><tr><td><code>factionsuuid_faction_powerboost</code></td><td>Faction's current powerboost</td></tr><tr><td><code>factionsuuid_faction_warps</code></td><td>Number of warps</td></tr><tr><td><code>factionsuuid_faction_raidable</code></td><td>If HCF features are enabled, shows if your faction is raidable</td></tr><tr><td><code>factionsuuid_faction_home_world</code></td><td>World of your faction's home</td></tr><tr><td><code>factionsuuid_faction_home_x</code></td><td>X coordinate of your faction's home</td></tr><tr><td><code>factionsuuid_faction_home_y</code></td><td>Y coordinate of your faction's home</td></tr><tr><td><code>factionsuuid_faction_home_z</code></td><td>Z coordinate of your faction's home</td></tr><tr><td><code>factionsuuid_faction_land_value</code></td><td>Total value of your faction's land</td></tr><tr><td><code>factionsuuid_faction_land_refund</code></td><td>How much your faction would get if they refunded the land</td></tr><tr><td><code>factionsuuid_faction_bank_balance</code></td><td>Faction's bank balance</td></tr><tr><td><code>factionsuuid_faction_allies</code></td><td>Number of allies</td></tr><tr><td><code>factionsuuid_faction_enemies</code></td><td>Number of enemies</td></tr><tr><td><code>factionsuuid_faction_truces</code></td><td>Number of truces</td></tr><tr><td><code>factionsuuid_faction_online</code></td><td>Number of players online in your faction</td></tr><tr><td><code>factionsuuid_faction_offline</code></td><td>Number of players offline in your faction</td></tr><tr><td><code>factionsuuid_faction_size</code></td><td>Total online and offline faction members</td></tr><tr><td><code>factionsuuid_faction_kills</code></td><td>Total kills your faction has</td></tr><tr><td><code>factionsuuid_faction_deaths</code></td><td>Total deaths your faction has</td></tr></tbody></table>


# Daily Rewards 💲5.00

Java Version: 21 | Game Version 1.20.5+

Daily Rewards rewards players daily for having their Discord account linked to your servers Discord guild. Rewards are given every 24 hours, with options to change the time required. Daily Rewards also offers Nitro Boosting rewards for members who boost your Discord guild.

## Key Features

* Reward members daily for joining. Resetting once per 24 hours.
* Discord Integration - Require linking & reward for Nitro boosts
* Permission based daily reward categories
* Claim Reminders. Remind players on join & interval to claim.
* Claiming Streaks \*Coming Soon\*

## Config Options

<table data-card-size="large" data-column-title-hidden data-view="cards" data-full-width="true"><thead><tr><th align="center"></th><th align="center"></th><th data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center">General Configuration</td><td align="center"><code>/plugins/ShockDailyReward/config.yml</code></td><td></td><td>ssssss</td><td><a href="https://bin.supremeventures.ca/gucci-chat-config">https://bin.supremeventures.ca/gucci-chat-config</a></td></tr></tbody></table>

## Dependencies & Support

**Required Dependencies:** [**SVCommonsLib**](https://supremeventures.ca/discord), [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)

**Optional Dependencies: None**

*Looking for additional Support? Open a ticket in our* [*Discord*](https://supremeventures.ca/discord)*.*


# Commands & Permissions

List of commands and permissions for Shock Daily Rewards

## Command Permissions

<table data-full-width="true"><thead><tr><th width="171.66666666666669">Command</th><th width="155">Permission</th><th>Usage</th></tr></thead><tbody><tr><td>/daily</td><td>none</td><td>Allows a player to access the daily rewards claiming menu</td></tr></tbody></table>


# Placeholders

Placeholders provided by PlaceholderAPI

<table data-full-width="true"><thead><tr><th width="352">Placeholder (%placeholder%)</th><th>Description</th></tr></thead><tbody><tr><td><code>guccichat_player_format</code></td><td>The current chat format a player has equipped</td></tr><tr><td><code>guccichat_player_tag</code></td><td>The current tag a player has equipped</td></tr><tr><td><code>guccichat_game_time_till</code></td><td>Number of milliseconds until the next game begins</td></tr><tr><td><code>guccichat_game_time_formatted</code></td><td>The formatted time until the next game begins</td></tr><tr><td><code>guccichat_game_last_winner</code></td><td>The name of the last game's winner</td></tr></tbody></table>


# Chat Core 💲14.49

Java Version: 21 | Game Version 1.20.5+

Yet another Chat plugin at this point. We created Shock Chat many months ago with the intention to create one plugin to house all your chat-related needs. We think we've got most features, but it's a never-ending process to create the ultimate all-in-one chat core!

## Key Features

* Chat Management. Slow, limit, mute, or clear chat.
* Chat Decor. Style & configure ALL components of chat.
* Chat Moderation. Filter & action malicious chat messages.
* Chat Games. 10 unique typing related games for players with leaderboard.
* Chat Abilities. Show off your hand, inventory, or ender chests contents.
* Chat Tags. Create unlimited unique player titles to collect.
* Chat Styles. Allow players to express themselves through message styles.
* Chat Settings. Permission based global chat toggle & direct message toggle.
* Chat Emojis. Include unlimited custom chat emojis using texture packs.
* Chat Direct Messaging. Send messages directly to friends, across servers.
* Velocity Chat. Proxy-Wide chat channels for staff.
* Welcome Messages. Welcome players and provide crucial info on login.
* Auto Broadcasts. Periodically inform players about server info & news.
* Dono-Events. GG-Wave allows players to celebrate each others contributions to your server.
* Chat Mentions & Nofitications. Catch other attention quickly.

<figure><img src="https://1689193522-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNIii9qw8mT5eNtVJABFb%2Fuploads%2FnDV8p59m7DMkdMcyasie%2Fgg.png?alt=media&amp;token=be7638b3-c097-4037-a8ff-ca23182f581f" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1689193522-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNIii9qw8mT5eNtVJABFb%2Fuploads%2Fnvd67QhfnPr4GK4VP8Uz%2Fchat.png?alt=media&amp;token=b44a3a15-76e9-40ae-a7d3-74a4fe7f797f" alt=""><figcaption></figcaption></figure>

## Config Options

<table data-card-size="large" data-column-title-hidden data-view="cards" data-full-width="true"><thead><tr><th align="center"></th><th align="center"></th><th data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center">General Configuration</td><td align="center"><code>/plugins/ShockChat/config.yml</code></td><td></td><td>ssssss</td><td><a href="https://bin.supremeventures.ca/gucci-chat-config">https://bin.supremeventures.ca/gucci-chat-config</a></td></tr><tr><td align="center">Messages &#x26; Language</td><td align="center"><code>/plugins/ShockChat/lang.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-chat-lang">https://bin.supremeventures.ca/gucci-chat-lang</a></td></tr><tr><td align="center">Chat Game Configuration</td><td align="center"><code>/plugins/ShockChat/games.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-chat-games">https://bin.supremeventures.ca/gucci-chat-games</a></td></tr><tr><td align="center">Auto Broadcast Annoucements</td><td align="center"><code>/plugins/ShockChat/annoucments.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-chat-annoucements">https://bin.supremeventures.ca/gucci-chat-annoucements</a></td></tr><tr><td align="center">Auto Moderator Configuration</td><td align="center"><code>/plugins/ShockChat/moderation.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-chat-moderation">https://bin.supremeventures.ca/gucci-chat-moderation</a></td></tr><tr><td align="center">Player Cosmetic Tags</td><td align="center"><code>/plugins/ShockChat/tags.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-chat-tags">https://bin.supremeventures.ca/gucci-chat-tags</a></td></tr></tbody></table>

## Dependencies & Support

**Required Dependencies:** [SVCommonsLib](https://supremeventures.ca/discord), [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)

**Optional Dependencies:** [Litebans](https://www.spigotmc.org/resources/litebans.3715/)

*Looking for additional Support? Open a ticket in our* [*Discord*](https://supremeventures.ca/discord)*.*


# Commands & Permissions

List of commands and permissions for Shock Chat

## Chat Permission

If the config value `permission-based-chat` is enabled (true), players will require the permissions `chat.chat` permission to talk in chat. This feature is intended to protect servers against bot attacks. You can require players to vote or do some other task to gain access to talking in chat.&#x20;

{% hint style="info" %}

## Important!

By default, Shock Chat limits who can send chat messages with a permission `chat.chat` **You must set this permission on your default rank in order for players to be able to talk in chat!**
{% endhint %}

## Command Permissions

<table data-full-width="true"><thead><tr><th width="223.66666666666669">Command</th><th width="278">Permission</th><th>Usage</th></tr></thead><tbody><tr><td>/chatadmin clear</td><td><code>chat.clear.use</code></td><td>Clear the current chat log for players</td></tr><tr><td>/chatadmin limit</td><td><code>chat.limit.use</code></td><td>Limit who can talk in chat, like donators or VIPs</td></tr><tr><td>/chatadmin lock</td><td><code>chat.lock.use</code></td><td>Lock chat, no one can talk except those who bypass</td></tr><tr><td>/chatadmin reload</td><td><code>chat.reload</code></td><td>Reload Gucci chat configurations</td></tr><tr><td>/chat tags</td><td><code>chat.tags.use</code></td><td>Open the tags view menu</td></tr><tr><td>/chat style</td><td><code>chat.style.use</code></td><td>Open the chat styles menu</td></tr><tr><td>/chat format</td><td><code>chat.format</code></td><td>Allows the player to create their own message format</td></tr><tr><td>/tagadmin add</td><td><code>chat.tags.admin</code></td><td>Add a tag to a players collection</td></tr><tr><td>/tagadmin remove</td><td><code>chat.tags.admin</code></td><td>Remove a tag from a players collection</td></tr><tr><td>/styleadmin add</td><td><code>chat.style.admin</code></td><td>Add a style to a players collection</td></tr><tr><td>/styleadmin remove</td><td><code>chat.style.admin</code></td><td>Remove a style from a players collection</td></tr><tr><td>/toggleannouncements</td><td><code>chat.toggle.announcement</code></td><td>Allows users to toggle receiving announcement auto broadcasts</td></tr></tbody></table>

***

## Bypass Permissions

<table data-full-width="true"><thead><tr><th width="246">Permission</th><th>Usage</th></tr></thead><tbody><tr><td><code>chat.clear.bypass</code></td><td>Bypass the /chat clear commands effect. Useful for admins to review chat after</td></tr><tr><td><code>chat.limit.bypass</code></td><td>Bypass the limited chat restrictions when limited. Donator Feature</td></tr><tr><td><code>chat.lock.bypass</code></td><td>Bypass the chat lock restrictions. Admin tooling</td></tr></tbody></table>

***

## Gucci Chat Formatting Permissions

<table data-full-width="true"><thead><tr><th width="329">Permission</th><th>Usage</th></tr></thead><tbody><tr><td><code>chat.format.bold</code></td><td>Allow players to use <code>&#x3C;bold></code> tags in chat and formats</td></tr><tr><td><code>chat.format.italic</code></td><td>Allow players to use <code>&#x3C;italic></code> tags in chat and formats</td></tr><tr><td><code>chat.format.underlined</code></td><td>Allow players to use <code>&#x3C;underlined></code> tags in chat and formats</td></tr><tr><td><code>chat.format.strikethrough</code></td><td>Allow players to use <code>&#x3C;st></code> tags in chat and formats</td></tr><tr><td><code>chat.format.obfuscated</code></td><td>Allow players to use <code>&#x3C;obf></code> tags in chat and formats</td></tr><tr><td><code>chat.format.black</code></td><td>Allow players to use <code>&#x3C;black></code> tags in chat and formats</td></tr><tr><td><code>chat.format.yellow</code></td><td>Allow players to use <code>&#x3C;yellow></code> tags in chat and formats</td></tr><tr><td><code>chat.format.dark.blue</code></td><td>Allow players to use <code>&#x3C;dark_blue></code> tags in chat and formats</td></tr><tr><td><code>chat.format.dark.green</code></td><td>Allow players to use <code>&#x3C;dark_green></code> tags in chat and formats</td></tr><tr><td><code>chat.format.black</code></td><td>Allow players to use <code>&#x3C;black></code> tags in chat and formats</td></tr><tr><td><code>chat.format.dark.aqua</code></td><td>Allow players to use <code>&#x3C;dark_aqua></code> tags in chat and formats</td></tr><tr><td><code>chat.format.dark.red</code></td><td>Allow players to use <code>&#x3C;dark_red></code> tags in chat and formats</td></tr><tr><td><code>chat.format.dark.purple</code></td><td>Allow players to use <code>&#x3C;dark_purple></code> tags in chat and formats</td></tr><tr><td><code>chat.format.gray</code></td><td>Allow players to use <code>&#x3C;gray></code> tags in chat and formats</td></tr><tr><td><code>chat.format.gold</code></td><td>Allow players to use <code>&#x3C;gold></code> tags in chat and formats</td></tr><tr><td><code>chat.format.dark.gray</code></td><td>Allow players to use <code>&#x3C;dark_gray></code> tags in chat and formats</td></tr><tr><td><code>chat.format.blue</code></td><td>Allow players to use <code>&#x3C;blue></code> tags in chat and formats</td></tr><tr><td><code>chat.format.green</code></td><td>Allow players to use <code>&#x3C;green></code> tags in chat and formats</td></tr><tr><td><code>chat.format.aqua</code></td><td>Allow players to use <code>&#x3C;aqua></code> tags in chat and formats</td></tr><tr><td><code>chat.format.red</code></td><td>Allow players to use <code>&#x3C;red></code> tags in chat and formats</td></tr><tr><td><code>chat.format.light.purple</code></td><td>Allow players to use <code>&#x3C;light_purple></code> tags in chat and formats</td></tr><tr><td><code>chat.format.yellow</code></td><td>Allow players to use <code>&#x3C;yellow></code> tags in chat and formats</td></tr><tr><td><code>chat.format.white</code></td><td>Allow players to use <code>&#x3C;white></code> tags in chat and formats</td></tr><tr><td><code>chat.format.gradient</code></td><td>Allow players to use <code>&#x3C;gradient></code> tags in chat and formats</td></tr><tr><td><code>chat.format.hover</code></td><td>Allow players to use <code>&#x3C;hover></code> tags in chat and formats</td></tr><tr><td><code>chat.format.click</code></td><td>Allow players to use <code>&#x3C;click></code> tags in chat and formats</td></tr><tr><td><code>chat.format.color</code></td><td>Allow players to use <code>&#x3C;color></code> tags in chat and formats</td></tr><tr><td><code>chat.format.#</code></td><td>Allow players to use <code>&#x3C;#000000></code> tags in chat and formats</td></tr></tbody></table>

{% hint style="warning" %}
Please make sure you configure your configs correctly to ensure your players are safe when allowing players to use `<click>` tags, as they have the power to open files & open URL's on the player's behalf.
{% endhint %}

***

## Velocity Permissions

<table data-full-width="true"><thead><tr><th width="308">Permission</th><th>Usage</th></tr></thead><tbody><tr><td><code>chat.velocity.staff.chat</code></td><td>Allows members to interact with the velocity staff chat (if setup)</td></tr></tbody></table>


# Placeholders

Placeholders provided by PlaceholderAPI

<table data-full-width="true"><thead><tr><th width="321">Placeholder (%placeholder%)</th><th>Description</th></tr></thead><tbody><tr><td><code>chat_player_format</code></td><td>The current chat format a player has equipped</td></tr><tr><td><code>chat_player_tag</code></td><td>The current tag a player has equipped</td></tr><tr><td><code>chat_game_time-till</code></td><td>Number of milliseconds until the next game begins</td></tr><tr><td><code>chat_game_time-till-formatted</code></td><td>The formatted time until the next game begins</td></tr><tr><td><code>chat_game_last-winner</code></td><td>The name of the last game's winner</td></tr></tbody></table>


# FAQ

Common questions people have when using Chat


# Player Gifts 💲7.50

Java Version: 21 | Game Version 1.20.5+

Shock Player Gifts introduces a seamless rewarding system designed to boost player retention by offering time-based incentives for players to earn configurable rewards based on their active playtime. Create unlimited custom online-time based rewards for players which they can access via a menu to claim rewards as they unlock.

### Key Features

* Unlimited timed rewards, down to the millisecond of playtime.
* Animated, auto updating player claiming menu
* Announcements for when players unlock new gifts
* Auto resetting daily with timer for when gifts reset

### Config Options

<table data-card-size="large" data-view="cards" data-full-width="true"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td>General Configuration</td><td><code>/plugins/ShockGifts/config.yml</code></td><td></td></tr><tr><td></td><td></td><td></td></tr></tbody></table>


# Commands & Permissions

List of commands and permissions for Shock Player Gifts plugin.

<table data-full-width="true"><thead><tr><th width="264">Command</th><th width="271">Permission</th><th>Description</th></tr></thead><tbody><tr><td><code>/gifts</code></td><td><code>gifts.gifts</code></td><td>Access the gifts menu &#x26; claim rewards</td></tr></tbody></table>


# Premium Credits 💲20.00

Java Version: 21 | Game Version 1.20.5+

Shock Premium Currency, also know was Shock Credits, is an alternative to offering a traditional BuyCraft, Tebex, or CraftingStore. While you'll still use one of these platforms to process transactions, Credits provides an in-game system to allow players to purchase, transfer, and spend a premium currency system in place of traditional transactions via a web store.

### Key Features

* Create unlimited store categories with unlimited items in each
* Custom menu management & redirect system (books & menus supported)
* Advanced transaction logging & search system
* Safe and secure currency management (no overflow or floating point decay)
* Built-in micro transaction API for developers (add micro transactions to everything)
* Built-in Player to Player gifting system&#x20;
* Gifting leveling & EXP system with leaderboard (who is the most generous)

## Config Options

<table data-card-size="large" data-column-title-hidden data-view="cards" data-full-width="true"><thead><tr><th align="center"></th><th align="center"></th><th data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center">General Configuration</td><td align="center"><code>/plugins/ShockCredits/config.yml</code></td><td></td><td>ssssss</td><td><a href="https://bin.supremeventures.ca/gucci-discord-link-config">https://bin.supremeventures.ca/gucci-discord-link-config</a></td></tr><tr><td align="center">Messages &#x26; Language</td><td align="center"><code>/plugins/ShockCredits/lang.yml</code></td><td></td><td></td><td></td></tr></tbody></table>

## Dependencies & Support

**Required Dependencies:** [SVCommonsLib](https://supremeventures.ca/discord), [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)

**Optional Dependencies:**&#x20;

*Looking for additional Support? Open a ticket in our* [*Discord*](https://guccidev.us/discord)*.*


# Commands & Permissions

List of commands and permissions for Shock Credits plugin.

## In-Game Commands

<table data-full-width="true"><thead><tr><th width="264">Command</th><th width="271">Permission</th><th>Description</th></tr></thead><tbody><tr><td><code>/buy</code></td><td><code>none</code></td><td>Access the /buy webstore link command</td></tr><tr><td><code>/creditadmin take</code></td><td><code>shock.credits.admin</code></td><td>Admin command to remove credits from a players account</td></tr><tr><td><code>/creditadmin add</code></td><td><code>shock.credits.admin</code></td><td>Admin command to add credits to a players account</td></tr><tr><td><code>/creditadmin balance</code></td><td><code>shock.credits.admin</code></td><td>View a players credit balance</td></tr><tr><td><code>/creditadmin log</code></td><td><code>console only</code></td><td>View a players transaction log &#x26; payment history</td></tr><tr><td><code>/credits balance</code></td><td><code>shock.credits.balance</code></td><td>Allow players to see another players balance</td></tr><tr><td><code>/credits pay</code></td><td><code>shock.credits.pay</code></td><td>Allow players to pay other players using Credits</td></tr><tr><td><code>/gifttop</code> | <code>/gift top</code></td><td><code>none</code></td><td>View the gifting top leaderboard</td></tr></tbody></table>


# Placeholders

Placeholders provided by PlaceholderAPI

<table data-full-width="true"><thead><tr><th width="522">Placeholder (%placeholder%)</th><th>Description</th></tr></thead><tbody><tr><td><code>premium-credits_player_credits</code></td><td>Returns a players credit balance</td></tr><tr><td><code>premium-credits_player_level</code></td><td>Returns a players current gifting level</td></tr><tr><td><code>premium-credits_player_xp_bar</code></td><td>Returns a players current gifting level bar</td></tr><tr><td><code>premium-credits_player_xp_current</code></td><td>Returns a players current gifting XP amount</td></tr><tr><td><code>premium-credits_player_xp_next</code></td><td>Returns a players next level gifting XP requirement</td></tr><tr><td><code>premium-credits_player_leaderboard</code></td><td>Returns a players position in the gifting leaderboard</td></tr><tr><td><code>premium-credits_leaderboard_&#x3C;pos>::&#x3C;name|value></code></td><td>Returns the leaderboard member in <code>&#x3C;pos></code> as the position in the leaderboard, (IE: 1, 2, 3 - top gifts, second &#x26; third) &#x26; their name or XP amount. Example <code>%premium-credits_leaderboard_1::name%</code> returns the "Top Gifter" on the servers name.</td></tr></tbody></table>


# Voting 💲15.00

Java Version: 21 | Game Version 1.20.5+

Incentivize players to vote for your server by offering a bunch of unique ways to reward them for supporting the server. Reward players for making a commitment to voting, being super lucky, or just because they voted :smile:

## Key Features

* Lucky Votes, Vote Milestones, and Voting Streak reward types
* Voting Leaderboard w/ automatic resetting
* Vote reminders & welcome messages
* Configurable voting menus
* Player Voting lifetime stats

## Config Options

<table data-card-size="large" data-column-title-hidden data-view="cards" data-full-width="true"><thead><tr><th align="center"></th><th align="center"></th><th data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center">General Configuration</td><td align="center"><code>/plugins/ShockVoting/config.yml</code></td><td></td><td>ssssss</td><td><a href="https://bin.supremeventures.ca/gucci-chat-config">https://bin.supremeventures.ca/gucci-chat-config</a></td></tr><tr><td align="center">Messages &#x26; Language</td><td align="center"><code>/plugins/ShockVoting/lang.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-chat-lang">https://bin.supremeventures.ca/gucci-chat-lang</a></td></tr></tbody></table>

## Dependencies & Support

**Required Dependencies:** [SVCommonsLib](https://supremeventures.ca/discord), [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/), [Votifier](https://www.spigotmc.org/resources/nuvotifier.13449/)

**Optional Dependencies:**&#x20;

*Looking for additional Support? Open a ticket in our* [*Discord*](https://supremeventures.ca/discord)*.*


# Commands & Permissions

List of commands & permissions for Shock Voting

## Commands

<table data-full-width="true"><thead><tr><th width="146">Command</th><th width="254">Permission</th><th>Description</th></tr></thead><tbody><tr><td><code>/vote</code></td><td><code>voting.vote</code></td><td>Opens voting GUI &#x26; displays voting info, leaderboard, and rewards</td></tr></tbody></table>


# Placeholders

Placeholders provided by PlaceholderAPI

<table data-full-width="true"><thead><tr><th>Placeholder (%placeholder%)</th><th>Description</th></tr></thead><tbody><tr><td><code>voting_player_total</code></td><td>Players total votes on the server (lifetime)</td></tr><tr><td><code>voting_player_month</code></td><td>Players votes on the server for this month</td></tr><tr><td><code>voting_player_last</code></td><td>Players last vote time (ago)</td></tr><tr><td><code>voting_server_total</code></td><td>Server wide total vote count</td></tr><tr><td><code>voting_server_month</code></td><td>Server wide total vote count for current month</td></tr><tr><td><code>voting_server_month-end</code></td><td>The timestamp of the "end date" for the current month</td></tr><tr><td><code>voting_leaderboard_total_POSITION_value</code></td><td>Get the current leaderboard value for given position (all-time)</td></tr><tr><td><code>voting_leaderboard_total_POSITION_name</code></td><td>Get the current leaderboard name for given position (all-time)</td></tr><tr><td><code>voting_leaderboard_month_POSITION_value</code></td><td>Get the current leaderboard value for given position (month)</td></tr><tr><td><code>voting_leaderboard_month_POSITION_name</code></td><td>Get the current leaderboard name for given position (month)</td></tr><tr><td><code>voting_leaderboard_update</code></td><td>Get the time until leaderboard update</td></tr></tbody></table>

`POSITION` - This value indicates the leaderboard position you want to list. The value should be between `1 - N` where `N` is the total number of players scoring in this leaderboard. If no value is present or the position has no player in it, it will return a configurable empty placeholder.


# Player Stats 💲10.00

Java Version: 21 | Game Version 1.20.5+

Keeping track of everything, everyone does. That's the basics of this plugin. Track everything players do, and create a fun and competitive leaderboard for them to compete in. Who doesn't like being on top? :sunglasses:

## Key Features

* Create unlimited leaderboards for as many stats as you like
* Chat and/or menu leaderboard displays for any stat
* Track any stat you like can think of with a custom config stat type
* Full PlaceholderAPI for any leaderboard or stat information
* 17 unique stat tracking triggers

## Config Options

<table data-card-size="large" data-column-title-hidden data-view="cards" data-full-width="true"><thead><tr><th align="center"></th><th align="center"></th><th data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center">General Configuration</td><td align="center"><code>/plugins/ShockPlayerStats/config.yml</code></td><td></td><td>ssssss</td><td><a href="https://bin.supremeventures.ca/gucci-player-stats-config">https://bin.supremeventures.ca/gucci-player-stats-config</a></td></tr></tbody></table>

## Dependencies & Support

**Required Dependencies:** [SVCommonsLib](https://supremeventures.ca/discord), [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)

**Optional Dependencies:**&#x20;

*Looking for additional Support? Open a ticket in our* [*Discord*](https://supremeventures.ca/discord)*.*


# Commands & Permission

List of commands & permissions for Shock Player Stats

## Commands

<table data-full-width="true"><thead><tr><th width="304">Command</th><th>Description</th></tr></thead><tbody><tr><td><code>/statistics</code></td><td>Opens the statistics preview &#x26; leaderboards GUI</td></tr></tbody></table>

## Permissions

Gucci Stats does not include any permissions. If you find yourself in need of specific permissions please open a ticket in our [Discord](https://guccidev.us/discord).


# Placeholders

Placeholders provided by PlaceholderAPI

<table data-full-width="true"><thead><tr><th>Placeholder (%placeholder%)</th><th>Description</th></tr></thead><tbody><tr><td><code>stats_leaderboard;;STAT_NAME-POSITION-AMOUNT</code></td><td>The current chat format a player has equipped</td></tr><tr><td><code>stats_leaderboard;;STAT_NAME-POSITION-NAME</code></td><td>The current tag a player has equipped</td></tr><tr><td><code>stats_player::STAT_NAME</code></td><td>Number of milliseconds until the next game begins</td></tr></tbody></table>

`STAT_NAME` - This value should be a specific stat or custom stat tracker name. For example `BLOCK_BREAK`, `BLOCK_PLACE`, or a custom tracker like `BLOCK_BREAK::OBSIDIAN`

`POSITION` - This value indicates the leaderboard position you want to list. The value should be between `1 - N` where `N` is the total number of players scoring in this leaderboard. If no value is present or the position has no player in it, it will return a configurable empty placeholder.


# SMP Guilds 💲20.00

Java Version: 21 | Game Version 1.20.5+

Claim blocks are out, chunk based claiming is in. Why force your players to learn a complex shovel-claiming system when you can simply create a guild and claim what's yours? Gucci Guilds is built for the players who enjoy playing the game, not learning the server.&#x20;

## Key Features

* Guild role system built in with role-based permissions
* Guild land claiming built off "chunk" claiming (16x16 game chunks)
* Players can create shared homes and warps&#x20;
* Allow players to fly with Guild claim fly
* Guild private chat channels for roles at all levels of the team
* Team up with or declare war on other Guilds

## Config Options

<table data-card-size="large" data-column-title-hidden data-view="cards" data-full-width="true"><thead><tr><th align="center"></th><th align="center"></th><th data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center">General Configuration</td><td align="center"><code>/plugins/ShockGuilds/config.yml</code></td><td></td><td>ssssss</td><td><a href="https://bin.supremeventures.ca/gucci-guilds-config">https://bin.supremeventures.ca/gucci-guilds-config</a></td></tr><tr><td align="center">Messages &#x26; Language</td><td align="center"><code>/plugins/ShockGuilds/lang.yml</code></td><td></td><td></td><td><a href="https://bin.supremeventures.ca/gucci-guilds-lang">https://bin.supremeventures.ca/gucci-guilds-lang</a></td></tr></tbody></table>

## Dependencies & Support

**Required Dependencies:** [SVCommonsLib](https://supremeventures.ca/discord), [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)

**Optional Dependencies:**&#x20;

*Looking for additional Support? Open a ticket in our* [*Discord*](https://supremeventures.ca/discord)*.*


# Commands & Permissions

List of commands & permissions for Shock Guilds

## Commands

<table data-full-width="true"><thead><tr><th width="304">Command</th><th>Description</th></tr></thead><tbody><tr><td><code>/g</code> &#x26; <code>/guild</code></td><td>Guilds base command for interacting with all guilds features</td></tr><tr><td><code>/g help</code></td><td>List all guilds commands &#x26; their given descriptions</td></tr></tbody></table>

## Permissions

<table data-full-width="true"><thead><tr><th width="304">Permission</th><th>Usage</th></tr></thead><tbody><tr><td><code>guilds.bypass</code></td><td>Guilds bypass permission to bypass all claim protection</td></tr><tr><td><code>guilds.fly.use</code></td><td>Allows players to use /g fly in their claims</td></tr><tr><td><code>guilds.fly.bypass</code></td><td>Allows players to bypass claim protection while flying</td></tr><tr><td><code>guilds.fly.wilderness</code></td><td>Allows players to fly in unclaimed land (wilderness)</td></tr><tr><td><code>guilds.fly.sanctuary</code></td><td>Allows players to flw in land claimed by sanctuary (spawn/safezone)</td></tr><tr><td><code>guilds.fly.exempt</code></td><td>Exempts players from disabling other players flight when checking for enemies</td></tr><tr><td><code>guilds.adminclaim</code></td><td>Allows user to claim land for system/server factions like sanctuary</td></tr><tr><td><code>guilds.chatspy</code></td><td>Allows users to toggle guild admin chat spy and view private guild chat messages</td></tr></tbody></table>


# Placeholders

Placeholders provided by PlaceholderAPI

<table data-full-width="true"><thead><tr><th>Placeholder (%placeholder%)</th><th>Description</th></tr></thead><tbody><tr><td>guilds_role</td><td>Gets a players role in a guild</td></tr><tr><td>guilds_guild_name</td><td>Gets the players guild name (or wilderness if no guild)</td></tr><tr><td>guilds_guild_claims_claimed</td><td>Gets the amount of chunks claimed by a guild</td></tr><tr><td>guilds_guild_claims_max</td><td>Gets the max claims a guild can have</td></tr><tr><td>guilds_guild_members</td><td>Gets the guilds total member count</td></tr><tr><td>guilds_guild_online</td><td>Gets the guilds online member count</td></tr><tr><td>guilds_guild_max_members</td><td>Gets the total number of players a guild can have</td></tr><tr><td>guilds_guild_max_allies</td><td>Gets the max allies a guild can have</td></tr><tr><td>guilds_guild_leader</td><td>Gets the name of the guilds leader</td></tr><tr><td>guilds_guild_home_set</td><td>Checks if the guild home is set</td></tr><tr><td>guilds_guild_home_x</td><td>Gets the X coord of the guild home or '0'</td></tr><tr><td>guilds_guild_home_y</td><td>Gets the Y coord of the guild home or '0'</td></tr><tr><td>guilds_guild_home_z</td><td>Gets the Z coord of the guild home or '0'</td></tr><tr><td>guilds_guild_allies</td><td>Gets the current count of allies a guild has</td></tr><tr><td>guilds_guild_enemies</td><td>Gets the current count of enemies a guild has</td></tr></tbody></table>


# Developer API

Gucci Guilds Developer API

## Gucci Developer API's

Please also see [Developer API](/important-information/developer-api) for more information about how Gucci provides developer API's and how to better support your team. **Please do not share or use product jars for development.**&#x20;

## Adding Guilds as a dependency

{% hint style="info" %}
Please note the versions on this page may not be the most up-to-date! Please check our [Nexus server](https://nexus.supremeventures.ca/#browse/browse:maven-releases:me%2Fsavag3%2FGucciCommons) for the latest build versions.&#x20;
{% endhint %}

{% tabs %}
{% tab title="Maven" %}

```xml
<repositories>
    <repository> <!-- Supreme Ventures Nexus -->
        <id>supreme-ventures-nexus</id>
        <url>https://nexus.supremeventures.ca/repository/maven-releases/</url>
    </repository>
</repositories>

<dependencies>
    <dependency> <!-- SVLib -->
        <groupId>not.savage</groupId>
        <artifactId>SVCommonLib</artifactId>
        <version>1.0.8</version>
        <scope>provided</scope>
    </dependency>
    <dependency> <!-- SMP Guilds -->
        <groupId>not.savage</groupId>
        <artifactId>ShockGuilds</artifactId>
        <version>1.0.3</version>
        <scope>provided</scope>
    </dependency>
</dependencies>
```

{% endtab %}

{% tab title="Gradle" %}

```gradle
repositories {
    maven {
        url "https://nexus.supremeventures.ca/repository/maven-releases/"
    }
}

dependencies {
    // Gucci Commons
    compileOnly group: 'not.savage', name: 'SVCommonLib', version: '1.0.8'
    
    // Gucci Guilds
    compileOnly group: 'not.savage', name: 'ShockGuilds', version: '1.0.3'
}
```

{% endtab %}
{% endtabs %}

## Guilds API

Interacting with `Guild` object - Stores info about a given guild. Members, Roles, Leader and more.

```java
// Getting a Guild from the database (cached)
Guild guild = Guilds.getInstance()
                    .get("guild-id")
                    .orElse(Guilds.getInstance().getWilderness());

if (guildOne.isWilderness()) { 
    // No Guild Check
}

// Create a new guild
Guild guildTwo = Guilds.getInstance().createNewPlayerGuild(String tag, UUID creator);

// Creating a System Guild:
guildTwo.setLeaderName("System"); // optional
guildTwo.setSystemGuild(true);

// Comparing Guilds
if (guildTwo.getIdentifier().equals(guildOne.get().getIdentifier())) {} // Tags change

// Checking Permissions
boolean hasAccessToAction = guildTwo.hasPermission(GuildPlayer, PermissibleAction);

// Checking Relations
Relation relation = guildOne.getRelationTo(guildTwo); // Relation or Peaceful
```

Interacting with `GuildPlayer` - Stores guild data about a given player.

```java
// Getting a GuildPlayer from the database (cached)
Optional<GuildPlayer> guildPlayerOne = GuildPlayers.getInstance().get(UUID uuid);

// Async API
GuildPlayers.getInstance().getByFieldAsync("username", context.getArgument(0).parse(String.class).get())
        .thenAcceptSync(playerQuery -> {
            if (playerQuery.isEmpty()) {
                Language.sendMessage(context.getPlayer(), Core.getInstance().getLang().getGeneric().getGenericMemberNotInGuild());
                return;
            }
            
            GuildPlayer gp = playerQuery.get();
            // Do something - This method is executed "sync" once complete.
        });

// GuildPlayer should never return empty optionals as the player is created when joining
// Still safe to check if the optional is present as errors or poor execution could
// result in a empty optional for a player.

if (guildPlayerOne.isEmpty()) {
    // Error/Bug - Should report to us if this happens
}

GuildPlayer gp = guildPlayerOne.get();
Guild guild = gp.getGuild(); // Guild or wilderness
boolean isAdminBypassing = gp.isAdminBypassing();
boolean isGuildChatting = gp.isGuildChatting();
```

Interacting with the claim board `Board` - Stores info about claims and the map.

```java
// Getting the guild that claims a specific chunk 
Guild guildAt = Board.getInstance().getGuildAt(e.getBlock().getLocation());

// Side Note, ChunkCoords How-To
new ChunkCoords(Block)
new ChunkCoords(Location)
new ChunkCoords(Player)
new ChunkCoords(String worldName, int x, int z)

// Getting all the claims of a given Guild
Set<ChunkCoords> allClaims = Board.getInstance().getAllClaims(String guildId);

// Claiming a chunk for a Guild
Board.getInstance().claim(String guildId, ChunkCoords chunk);

// Unclaiming a chunk for a Guild - No guild needed as it goes back to wilderness.
Board.getInstance().unclaim(ChunkCoords chunk);
Board.getInstance().unclaimAll(String guildId);
```


# Player Levels 💲10.00

Java Version: 21 | Game Version 1.20.5+

A simple, yet rewarding game concept for players. Simply be online and vote to receive freebies from the server. That's exactly what this plugin does. Players are incentivized to stay online and vote for the server in order to level up and gain free rewards.&#x20;

## Key Features

* PlaceholderAPI Support
* Unlimited custom levels
* Real-time Updating Menus & Placeholders
* Placeholder Script Engine System
  * Create unique level requirements using our scripting system which uses PlaceholderAPI placeholders to detect and level up players.
* Hide Locked Levels
* Levels Rewards & Commands

## Config Options

<table data-card-size="large" data-column-title-hidden data-view="cards" data-full-width="true"><thead><tr><th align="center"></th><th align="center"></th><th data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center">General Configuration</td><td align="center"><code>/plugins/ShockPlayerLevels/config.yml</code></td><td></td><td>ssssss</td><td><a href="https://bin.supremeventures.ca/gucci-player-levels-config">https://bin.supremeventures.ca/gucci-player-levels-config</a></td></tr></tbody></table>

## Dependencies & Support

**Required Dependencies:** [SVCommonsLib](https://supremeventures.ca/discord), [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)

**Optional Dependencies:**

*Looking for additional Support? Open a ticket in our* [*Discord*](https://supremeventures.ca/discord)*.*


# Commands & Permissions

List of commands & permissions for Shock Player Levels

## Level Commands

<table data-full-width="true"><thead><tr><th width="147">Command</th><th width="237">Permission</th><th>Description</th></tr></thead><tbody><tr><td><code>/level</code></td><td><code>levels.commands</code></td><td>Access the levels GUI &#x26; info about levels</td></tr></tbody></table>

## Admin Commands

<table data-full-width="true"><thead><tr><th width="237">Command</th><th width="233">Permission</th><th>Description</th></tr></thead><tbody><tr><td><code>/leveladmin level</code></td><td><code>gucci.levels.admin</code></td><td>Check the level of a given player</td></tr><tr><td><code>/leveladmin set</code></td><td><code>gucci.levels.admin</code></td><td>Set the level of a given player</td></tr><tr><td><code>/leveladmin reload</code></td><td><code>gucci.levels.admin</code></td><td>Reload configs</td></tr></tbody></table>


# Placeholders

Placeholders provided by PlaceholderAPI

<table data-full-width="true"><thead><tr><th width="307">Placeholder (%placeholder%)</th><th>Description</th></tr></thead><tbody><tr><td><code>levels_level</code></td><td>Players current level</td></tr></tbody></table>


# Placeholder Scripts

Levels Configuration Scripting System

### What is it?

The levels scripting engine uses PlaceholderAPI placeholders to determine if level experience is being gained. This is to prevent long standing issues with adding support for dozens of plugins & dozens of plugins requiring support for our plugins.

### How to Use

Each level can have unlimited requirements, each on its own line in the config.

```yaml
levels:
  '1':
    ...
    comparisons:
    - '%guccistats_player;;VOTE% >= 3'
    - '%guccistats_player;;PLAYER_TIME_CONNECTED_r% >= 3600'
```

Each requirement has 2 parts. Either side can be a PlaceholderAPI placeholder - with its `%%` formatting. Each comparison has the following requirements

* Must be in the following format
  * `<placeholder or value> <operator> <placeholder or value>`
  * The values & operators must be separated by a space<br>
* Both sides of the comparison must be the same type
  * Both sides (after placeholders are parsed) must be in the same format.&#x20;
  * Our scripts currently support the following type comparisons natively.&#x20;
    * `UUID` - Comparing UUID's (Player UUID's, Factions, Guilds etc)
    * `Number` - Comparing 2 Numbers (1, 100, 1.1)
    * `String` - Comparing 2 Strings (Usernames, Values etc)<br>
* Both values must be separated by a valid comparison operator.
  * `==` Checks if both sides are the same/equal. Supports Strings, Numbers, and UUID.
  * `!=` Checks if the 2 sides do not equal each other. Supports Strings, Numbers, and UUID.
  * `>=` Checks if the left side is greater then or equal to the right. Supports Numbers.
  * `<=` Checks if the left side is less then or equal to the right side. Supports Numbers.
  * `>` Checks if the left side is greater then the right side. Supports Numbers.
  * `<` Checks if the left side is less then the right side. Supports Numbers.


# Commons

Core Developer Library

### What is Commons?

Commons is a core developer library that all Supreme Ventures plugin use. Commons handles a large portion of your plugin's features automatically behind the scenes so our developers don't have to write as much boring and repetitive code.&#x20;

* Menus - Menu animations, failed action items, etc
* Commands - Help menus, and argument handling
* Database Engine - Our custom database interface (data storage)
* Configs - Reads & writes with plugin configs
* Leaderboards - Managing, refreshing, and accessing.
* Hundreds of misc utility functions and classes

### Does this change anything on my server?

Yes and no. Commons helps to eliminate duplicate class loading at runtime. Basically, if we just included Commons inside of every plugin, every plugin would load its own version of all the common classes, potentially having 8 - 20 copies of some classes. If our plugins depend on it instead, all plugins share the same set of classes saving memory when using a lot of the Gucci plugins at the same time. This has an adverse effect when only using one or two plugins. Commons has a lot of stuff in it, and one or two plugins won't use the majority of the classes, in turn, wasting ram.


