Skip to content

Commit 0f8e45e

Browse files
committed
- init to 26.1.2
1 parent 2f1d02b commit 0f8e45e

6 files changed

Lines changed: 122 additions & 260 deletions

File tree

.gitignore

Lines changed: 4 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -1,113 +1,5 @@
1-
# User-specific stuff
2-
.idea/
3-
4-
*.iml
5-
*.ipr
6-
*.iws
7-
8-
# IntelliJ
9-
out/
10-
11-
# Compiled class file
12-
*.class
13-
14-
# Log file
15-
*.log
16-
17-
# BlueJ files
18-
*.ctxt
19-
20-
# Package Files #
21-
*.jar
22-
*.war
23-
*.nar
24-
*.ear
25-
*.zip
26-
*.tar.gz
27-
*.rar
28-
29-
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
30-
hs_err_pid*
31-
32-
*~
33-
34-
# temporary files which can be created if a process still has a handle open of a deleted file
35-
.fuse_hidden*
36-
37-
# KDE directory preferences
38-
.directory
39-
40-
# Linux trash folder which might appear on any partition or disk
41-
.Trash-*
42-
43-
# .nfs files are created when an open file is removed but is still being accessed
44-
.nfs*
45-
46-
# General
471
.DS_Store
48-
.AppleDouble
49-
.LSOverride
50-
51-
# Icon must end with two \r
52-
Icon
53-
54-
# Thumbnails
55-
._*
56-
57-
# Files that might appear in the root of a volume
58-
.DocumentRevisions-V100
59-
.fseventsd
60-
.Spotlight-V100
61-
.TemporaryItems
62-
.Trashes
63-
.VolumeIcon.icns
64-
.com.apple.timemachine.donotpresent
65-
66-
# Directories potentially created on remote AFP share
67-
.AppleDB
68-
.AppleDesktop
69-
Network Trash Folder
70-
Temporary Items
71-
.apdisk
72-
73-
# Windows thumbnail cache files
74-
Thumbs.db
75-
Thumbs.db:encryptable
76-
ehthumbs.db
77-
ehthumbs_vista.db
78-
79-
# Dump file
80-
*.stackdump
81-
82-
# Folder config file
83-
[Dd]esktop.ini
84-
85-
# Recycle Bin used on file shares
86-
$RECYCLE.BIN/
87-
88-
# Windows Installer files
89-
*.cab
90-
*.msi
91-
*.msix
92-
*.msm
93-
*.msp
94-
95-
# Windows shortcuts
96-
*.lnk
97-
98-
target/
99-
100-
pom.xml.tag
101-
pom.xml.releaseBackup
102-
pom.xml.versionsBackup
103-
pom.xml.next
104-
105-
release.properties
106-
dependency-reduced-pom.xml
107-
buildNumber.properties
108-
.mvn/timing.properties
109-
.mvn/wrapper/maven-wrapper.jar
110-
.flattened-pom.xml
111-
112-
# Common working directory
113-
run/
2+
.gradle/
3+
build/
4+
out/
5+
/servers/

README.md

Lines changed: 86 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,90 @@
1-
# EndCrystals
2-
1MB Helper plugin
1+
# 1MB-EndCrystals
32

4-
This is a helper for my server to prevent grief by players. Separate from other protection plugins, I want to make sure that end crystals we place for decoration purposes don't cause certain damage, nor that they can get griefed by other players.
3+
`1MB-EndCrystals` is a small Paper plugin for one job: let end crystals behave like end crystals, but never let them break blocks. It also optionally protects decorative crystals from players and player-fired projectiles, independent from WorldGuard or any other region plugin.
54

6-
## Versions
5+
This refresh targets Java 25 and has been built for modern Paper installs, with validation intended for:
76

8-
The 1.x old version got updated now to 1.16.5, which seems fine.
7+
- Paper `1.21.11`
8+
- Paper `26.1.2`
99

10-
The 1.16.5 update got updated to Spigot 1.17, and has been tested.
10+
The produced jar is named:
11+
12+
`1MB-EndCrystals-v2.0.1-021-v25-26.1.2.jar`
13+
14+
## What It Does
15+
16+
- Clears end crystal block damage without cancelling the whole explosion event
17+
- Optionally blocks players from breaking protected crystals
18+
- Optionally blocks player projectiles from breaking protected crystals
19+
- Keeps The End configurable so dragon-fight style gameplay can stay intact if desired
20+
- Stores config in a shared home-folder location: `~/plugins/1MB-EndCrystals/config.yml`
21+
- Supports `/_endcrystals reload`
22+
- Supports `/_endcrystals toggle <setting> [true|false]` for live boolean config toggles
23+
- Supports `/_endcrystals debug` for runtime/build/config diagnostics
24+
25+
## Commands
26+
27+
- `/_endcrystals debug`
28+
- `/_endcrystals reload`
29+
- `/_endcrystals toggle`
30+
- `/_endcrystals toggle protection.prevent-block-damage`
31+
- `/_endcrystals toggle debug.log-block-protection true`
32+
33+
Aliases:
34+
35+
- `/endcrystals`
36+
- `/ec`
37+
38+
## Permissions
39+
40+
- `1mb.endcrystals.admin`
41+
- `1mb.endcrystals.debug`
42+
- `1mb.endcrystals.reload`
43+
- `1mb.endcrystals.toggle`
44+
- `1mb.endcrystals.bypass`
45+
46+
`1mb.endcrystals.admin` grants the command permissions. `1mb.endcrystals.bypass` allows a player to break otherwise protected crystals.
47+
48+
## Config
49+
50+
The plugin reads and writes its main config here:
51+
52+
`~/plugins/1MB-EndCrystals/config.yml`
53+
54+
That makes it easy to share one config across multiple local servers started by the same user account.
55+
56+
Important defaults:
57+
58+
- `protection.prevent-block-damage: true`
59+
- `protection.prevent-player-break: true`
60+
- `protection.prevent-projectile-break: true`
61+
- `protection.allow-player-break-in-the-end: true`
62+
- `protection.clear-explosion-yield: true`
63+
64+
Live toggle keys are listed in the config under `live-toggles`. Those settings can be changed immediately with `/_endcrystals toggle ...` and also refresh when you run `/_endcrystals reload`.
65+
66+
## Build
67+
68+
If the local Paper `1.21.11` API jar is available in `servers/Server-One-Paper-1.21.11`, Gradle uses that directly for offline local builds. Otherwise it falls back to the Paper Maven repository.
69+
70+
Build with:
71+
72+
```bash
73+
./gradlew build
74+
```
75+
76+
Output jar:
77+
78+
`build/libs/1MB-EndCrystals-v2.0.1-021-v25-26.1.2.jar`
79+
80+
## Install
81+
82+
1. Build the jar.
83+
2. Copy it into a Paper server's `plugins/` folder.
84+
3. Start the server once so the shared config is created under `~/plugins/1MB-EndCrystals/`.
85+
4. Use `/_endcrystals debug` to verify runtime information.
86+
5. Use `/_endcrystals reload` after editing the config.
87+
88+
## Testing Notes
89+
90+
The plugin is meant to be testable without WorldGuard present. If an end crystal explodes near normal blocks, the explosion should still happen but the blocks should remain intact while the plugin is enabled.

pom.xml

Lines changed: 0 additions & 78 deletions
This file was deleted.

src/main/java/com/mrfloris/endcrystals/Events.java

Lines changed: 0 additions & 43 deletions
This file was deleted.

src/main/java/com/mrfloris/endcrystals/pluginEvents.java

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/main/resources/plugin.yml

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,34 @@
1-
name: ${project.artifactId}
2-
version: ${project.version}
3-
main: com.mrfloris.endcrystals.pluginEvents
4-
api-version: 1.17
5-
prefix: ${project.name}
1+
name: ${pluginName}
2+
version: ${pluginVersion}
3+
main: com.mrfloris.endcrystals.EndCrystalsPlugin
4+
api-version: "1.21"
5+
prefix: ${pluginName}
66
author: adrianwowk
77
authors: [mrfloris, the456gamer]
8-
description: ${project.description}
9-
website: ${project.url}
8+
description: ${pluginDescription}
9+
website: ${website}
10+
commands:
11+
_endcrystals:
12+
description: End crystal protection admin commands
13+
usage: /_endcrystals <debug|reload|toggle>
14+
aliases: [endcrystals, ec]
15+
permissions:
16+
1mb.endcrystals.admin:
17+
description: Grants every 1MB-EndCrystals admin command
18+
default: op
19+
children:
20+
1mb.endcrystals.debug: true
21+
1mb.endcrystals.reload: true
22+
1mb.endcrystals.toggle: true
23+
1mb.endcrystals.debug:
24+
description: Allows the debug subcommand
25+
default: op
26+
1mb.endcrystals.reload:
27+
description: Allows the reload subcommand
28+
default: op
29+
1mb.endcrystals.toggle:
30+
description: Allows live config toggles
31+
default: op
32+
1mb.endcrystals.bypass:
33+
description: Allows breaking protected end crystals
34+
default: op

0 commit comments

Comments
 (0)