JackFred2 / JacksServerSideTweaks

MIT License
5 stars 1 forks source link

Jacks Server Side Tweaks

A collection of gameplay features that are not required on a client.

All features can be configured via the /jsst command.

Features

All features can be enabled or disabled using /jsst <feature> (enable/disable).

Item Editor

By far the largest feature, this provides an easy-to-use, extensive interface for modifying items.

A GIF showing a 'Legendary Greataxe' being made with enchantments beyond vanilla limits

Currently supports the following:

and more as ideas come in.

To begin, run the command `/jsst itemEditor hand` to change the item in your hand, or `.. itemEditor item ` to use a template. ![An gif showing various pages of the item editor](https://i.imgur.com/o9W3oM4.gif) This feature will only show editors possibly usable with the given item. #### Labels Enchantments, Potion Effects and Attribute Modifiers have been given custom labels to help see them at a glance; however I can not provide defaults to every modded enchantment out there. If you want to add your own (either in your mod or a datapack), you can create a corresponding JSON file under `data/jsst/item_editor_labels/.json`. In this JSON file, there is a single JSON object with another JSON object under the key `values`. In this values object, there should be a list of **ID**: **LabelDefinition** pairs; you can find the ID by enabling `enabledDevTools` and browsing said menu. **LabelDefinition** is defined as either a minecraft item ID such as `minecraft:diamond_pickaxe`, or a full ItemStack JSON which you can get from an existing stack by the `enabledDevTools`-only Stack JSON Printer. You can replace the entire vanilla set by adding `replace: true` alongside the `values` tag at the top level. For a better explained example, see [JSST's base files](https://github.com/JackFred2/JacksServerSideTweaks/tree/1.19/src/main/resources/data/jsst/item_editor_labels). #### Config | Option | Description | Default | Valid Options | |-----------------|------------------------------|---------|-----------------| | enabledDevTools | Enable dev-specific editors. | `true` | `true`, `false` |

Portable Crafting

Lets you use crafting tables by right-clicking with them.

Valid items to check are contained in the [jsst:items/crafting_tables](https://github.com/JackFred2/JacksServerSideTweaks/blob/1.19/src/main/resources/data/jsst/tags/items/crafting_tables.json) tag, which can be extended using data packs or the Command Defined Datapack feature below. #### Config | Option | Description | Default | Valid Options | |-----------|----------------------------------------------------------------|---------|-----------------| | sneakOnly | Whether players need to sneak to use crafting tables as items. | `false` | `true`, `false` |

World Container Names

A collection of named containers with their names floating above, along with a diamond sword above a barrel

Adds floating labels above containers from either the container name or item count.

Uses the new Display Entities from 23w06a. To give a name to a container, rename it in an anvil. You can use the format `[item:]` to display an item instead, using the same syntax as the `/give` command. Examples: - `[item:minecraft:golden_apple]` - `[item:potion{Potion:"night_vision"}]` If you give a container the name `[max-count]`, the item displayed will update to the highest-count item in the container every time it is opened. #### Admin To clean up if you ever remove JSST, you can run the following command to remove lingering display entities: `/kill @e[tag=jsst_world_container_name]` #### Config | Option | Description | Default | Valid Options | |----------------------|-----------------------------------------------|----------|----------------------| | facingMode | How labels should face the player. | `CENTER` | `CENTER`, `VERTICAL` | | labelRangeMultiplier | Multiplier for the distance labels are shown. | `1` | `[0.25, 4]` |

Display Items

A collection of colour wool on pedestals that do not despawn.

Lets you make items for display that don't despawn by renaming them to [display] in an anvil.

Useful for shops or showcases. Plays a chime sound if a display item is successfully made. **Warning**: This does not prevent the item from being destroyed in other ways, such as cactus, lava, `/kill`, cleanup plugins, or being moved with hoppers or water. #### Admin To 'take ownership' of nearby items, run the following command: `/execute as @e[type=item,tag=jsst_display_item,distance=..5] run data modify entity @s Owner set from entity @p UUID` #### Config | Option | Description | Default | Valid Options | |-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---------|-----------------| | ownerPickupOnly | Should only the player who dropped the item be able to pick it back up. | `true` | `true`, `false` | | operatorOnly | Should only server operators be allowed to create display items? Does not apply in single player. Recommended to enable ownerPickupOnly if this is true. | `false` | `true`, `false` |

Command Defined Datapack

Lets you create and manage a datapack folder via in-game commands.

Currently, only supports tags. Designed to help configure mods game features using tags such as `minecraft:enderman_holdable`, or `jsst:crafting_tables`, or just creating tags for your server easier. `/jsst cdd save` - Manually saves a copy of the current datapack in-memory. Should not be required in most cases as other commands that modify the pack call this directly. #### Tags See also: [Tag JSON Format](https://minecraft.fandom.com/wiki/Tag#JSON_format) Base command: `/jsst cdd tag ` `` defines which registry the tags should be looked up through. For example, you'll want `minecraft:item` to modify item tags or `minecraft:block` for block tags. - `.. listTags [filter]` - Lists all tags that are registered for this registry. - `.. list ` - Lists all elements in a given tag. This is after tags have been 'flattened' i.e. tags referenced by other tags are not shown. - `.. add value [isOptional]` - Adds an element to a `` in the datapack. - `.. add tag [isOptional]` - Adds a reference to `` in `` in the datapack. - `.. remove ` - Removes an element from `` in the datapack. This does **not** let you remove items from tags defined elsewhere; use `setReplace` below to overwrite them. - `.. setReplace ` - Marks `` to overwrite other tags with the same name. ##### Example (Adding nether stars to the crafting table list for Portable Crafting above) 1. `/jsst cdd tag minecraft:item add jsst:crafting_tables value minecraft:nether_star` 2. `/datapack enable "file/jsstCDD"` on first generation 3. `/reload`

Banner Writing

Easily write sentences with a stack of blank banners and a command.

Running a command and writing 'kingdom' effortlessly.

To start, simply use the command `/jsst bannerWriter start `. This will add a tag to the banners you are holding, which lets the mod know what to replace. Uses the letters and numbers from https://www.gamergeeks.net/apps/minecraft/banners/. Supported letters: `abcdefghijklmnopqrstuvwxyz0123456789 .,+-*/'"=!:`

Sapling Replanter

Sapling items try to plant themselves instead of de-spawning. Tries to space them out, and includes support for dark oak saplings.

Example of replanted saplings, spaced out by a block.

#### Config | Option | Description | Default | Valid Options | |-----------------|-----------------------------------------------------------------------------------------------------------------|---------|-----------------| | spacingEnabled | Should saplings try to space themself out? | `true` | `true`, `false` | | minimumDistance | Minimum blocks between saplings. Requires `spacingEnabled`. Dark Oak has it's own handling. | `1` | `[1, 3]` | | searchRange | Horizontal distance that saplings search for a valid position. Vertically, always checks layer above and below. | `3` | `[1, 4]` | | maxPerStack | Maximum number of saplings to plant per dropped stack; the rest are discarded. | `5` | `[1, 64]` |

Beacon Range Multiplier

Beacons can have a multiplier to their range added.

A beacon granting it's effect well over the vanilla 20 block range

For reference, various ranges for beacons are: | Level | Vanilla Range in Blocks | 1.5x (mod default) | 4x | 8x | |-------|-------------------------|--------------------|-----|-----| | 1 | 20 | 30 | 80 | 160 | | 2 | 30 | 45 | 120 | 240 | | 3 | 40 | 60 | 160 | 320 | | 4 | 50 | 75 | 200 | 400 | #### Config | Option | Description | Default | Valid Options | |-----------------|--------------------------------------------------------|---------|---------------| | rangeMultiplier | What multiplier should be given to the beacon's range? | `1.5` | [0.5, 8] |