Skip to content

Commit 3cdac3e

Browse files
committed
Initial code commit
0 parents  commit 3cdac3e

22 files changed

Lines changed: 1183 additions & 0 deletions
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Bug report (latest versions ONLY)
3+
about: Create a bug report to get the bug fixed as soon as possible.
4+
title: Bug summary - Plugin version - MC version
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
### Description
11+
As detailed and descriptive as you can make it. If possible, attach photos and/or videos.
12+
13+
### How to reproduce
14+
An ordered list of steps of how and where you experienced the bug; include what you were doing before, side effects, etc.
15+
16+
### Expected result
17+
Exactly what you expected to happen, in detail.
18+
19+
### Log file link
20+
Don't paste the whole log here!! Just copy and paste it into https://mclo.gs, then just upload and paste the copied link. Logs are located in your Minecraft Server directory under `/logs` and `/crash-reports`.
21+
22+
### Additional context
23+
Anything else that could possibly be relevant to this issue.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an addition or change
4+
title: Suggestion summary goes here
5+
labels: suggestion
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. (ex. I'm always frustrated when [...])
12+
13+
**Describe the solution you'd like**
14+
A clear and detailed description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

.github/workflows/build.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Automatically builds the project and runs any configured tests for every push
2+
# and submitted pull request. This can help catch issues that only occur on
3+
# certain platforms or Java versions, and provides a first line of defense
4+
# against bad commits.
5+
6+
name: build
7+
on:
8+
# Don't build if only text-based files were changed.
9+
# Prevents waiting for unnecessary checks/actions
10+
push:
11+
paths-ignore:
12+
- '**.md'
13+
- '**.txt'
14+
pull_request:
15+
paths-ignore:
16+
- '**.md'
17+
- '**.txt'
18+
19+
jobs:
20+
build:
21+
strategy:
22+
matrix:
23+
java: [
24+
21 # Latest Java LTS & minimum supported by Minecraft
25+
]
26+
# and run on the latest dists of Linux, MacOS, and Windows
27+
os: [ubuntu-latest, windows-latest, macos-latest]
28+
runs-on: ${{ matrix.os }}
29+
steps:
30+
- name: checkout repository
31+
uses: actions/checkout@v4
32+
33+
- name: setup jdk ${{ matrix.java }}
34+
uses: actions/setup-java@v4
35+
with:
36+
java-version: ${{ matrix.java }}
37+
distribution: temurin
38+
39+
- name: setup gradle
40+
uses: gradle/actions/setup-gradle@v4
41+
with:
42+
gradle-version: wrapper
43+
44+
- name: make gradle wrapper executable
45+
if: ${{ runner.os != 'Windows' }}
46+
run: chmod +x ./gradlew
47+
48+
- name: build
49+
run: ./gradlew build --info --stacktrace
50+
51+
- name: capture build artifacts
52+
if: ${{ runner.os == 'Linux' && matrix.java == '21' }} # Only upload artifacts built from latest java on one OS
53+
uses: actions/upload-artifact@v4
54+
with:
55+
name: jars
56+
path: |
57+
build/libs/
58+
build/devlibs/
59+
!build/devlibs/*-sources.jar

.gitignore

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

CONTRIBUTING.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Contributing
2+
3+
Contributions to this project are [released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) to the public under the [project's open source license](LICENSE.md).
4+
5+
# We love pull requests. Here's a quick guide
6+
7+
1. Check for [existing issues](https://github.com/tricrotism/BuildUtils/issues) for duplicates and confirm that it hasn't been fixed already in the [main branch](https://github.com/tricrotism/BuildUtils/commits/master)
8+
2. Fork the repo, and clone it locally.
9+
3. Create a new branch for your contribution
10+
4. Push to your fork and submit a pull request
11+
12+
# Some things that will increase the chance that your pull request is accepted
13+
14+
* Update the documentation: code comments, example code, guides. Basically, update everything affected by your contribution.
15+
* Include any information that would be relevant to reproducing bugs, use cases for new features, etc.
16+
17+
# Pull Request Reviews & releasing
18+
19+
* If you plan on implementing a new feature, make sure you create a new branch formatted as `feature/feature-name`.
20+
* If you plan on fixing a bug, make sure you create a new branch formatted as `fix/bug-name`.
21+
* If you plan on enhancing the codebase, make sure you create a new branch formatted as `enhance/feature-name`.

LICENSE.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Sage Kummer
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# BuildUtils
2+
3+
This is a collection of commands that may or may not be useful for some build servers!
4+
5+
## Commands
6+
- `/teleportworld <world> [void/terrain]`
7+
- **Description**: This command will teleport you to an already created world by that name. If the world does not exist, it will create a new world with that name.
8+
- **Permission**: `butil.teleportworld` | Default: `op`
9+
- **Aliases**: `tpw`, `tpworld`
10+
- **Arguments**:
11+
- **world**: The name of the world you want to teleport to.
12+
- **void/terrain**: Generator type. If `void` is specified, the world will be a void world. If `terrain` is specified, the world will be a normal terrain world.
13+
- **Examples**:
14+
- `/tpw pvp_arena`
15+
- `/tpw wild terrain`
16+
- `/worldlist`
17+
- **Description**: This command will list all the worlds that are currently loaded on the server.
18+
- **Permission**: `butil.teleportworld` | Default: `op`
19+
- **Aliases**: `wl`, `worlds`, `listworlds`
20+
- `/setviewdistance <distance> [target]`
21+
- **Description**: This command will set the view distance of the specified player (or the sender) to the specified distance.
22+
- **Permission**: `butil.setviewdistance` | Default: `op`
23+
- **Other Player Permissions**: `butil.setviewdistance.others` | Default: `op`
24+
- **Arguments**:
25+
- **distance**: The view distance you want to set. **Must be between 2 and 32**.
26+
- **target**: The player you want to set the view distance for. If not specified, the sender will be the target.
27+
- **Examples**:
28+
- `/setviewdistance 16`
29+
- `/setviewdistance 8 Notch`
30+
- `/getviewdistance [target]`
31+
- **Description**: This command will get the view distance of the specified player (or the sender).
32+
- **Permission**: `butil.getviewdistance` | Default: `op`
33+
- **Other Player Permissions**: `butil.getviewdistance.others` | Default: `op`
34+
- **Arguments**:
35+
- **target**: The player you want to get the view distance for. If not specified, the sender will be the target.
36+
- **Examples**:
37+
- `/getviewdistance`
38+
- `/getviewdistance Notch`
39+
40+
**This project is licensed under the terms of the MIT license. See the [LICENSE.md](LICENSE.md) file for more information.**

build.gradle.kts

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
plugins {
2+
kotlin("jvm") version "2.1.20-Beta1"
3+
id("com.github.johnrengelman.shadow") version "8.1.1"
4+
id("net.minecrell.plugin-yml.bukkit") version "0.6.0"
5+
}
6+
7+
group = "com.tricrotism"
8+
version = "1.0"
9+
10+
repositories {
11+
mavenCentral()
12+
maven("https://repo.papermc.io/repository/maven-public/") {
13+
name = "papermc-repo"
14+
}
15+
maven("https://oss.sonatype.org/content/groups/public/") {
16+
name = "sonatype"
17+
}
18+
}
19+
20+
dependencies {
21+
compileOnly("io.papermc.paper:paper-api:1.21.4-R0.1-SNAPSHOT")
22+
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
23+
24+
//Cloud dependencies
25+
implementation("org.incendo:cloud-core:2.0.0-SNAPSHOT")
26+
implementation("org.incendo:cloud-paper:2.0.0-SNAPSHOT")
27+
implementation("org.incendo:cloud-kotlin-extensions:2.0.0-SNAPSHOT")
28+
implementation("org.incendo:cloud-kotlin-coroutines:2.0.0-SNAPSHOT")
29+
implementation("org.incendo:cloud-kotlin-coroutines-annotations:2.0.0-SNAPSHOT")
30+
}
31+
32+
val targetJavaVersion = 21
33+
kotlin {
34+
jvmToolchain(targetJavaVersion)
35+
}
36+
37+
tasks.build {
38+
dependsOn("shadowJar")
39+
}
40+
41+
tasks.processResources {
42+
val props = mapOf("version" to version)
43+
inputs.properties(props)
44+
filteringCharset = "UTF-8"
45+
filesMatching("plugin.yml") {
46+
expand(props)
47+
}
48+
}
49+
50+
bukkit {
51+
main = "com.tricrotism.BuildUtils"
52+
authors = listOf("tricrotism").sorted()
53+
version = getVersion().toString()
54+
apiVersion = "1.21"
55+
}

gradle.properties

Whitespace-only changes.

gradle/wrapper/gradle-wrapper.jar

42.4 KB
Binary file not shown.

0 commit comments

Comments
 (0)