Skip to content

Commit 684ffd6

Browse files
Merge pull request #18 from WizardlyBump17/new-command-system-1.20.6-2
New command system 1.20.6 2
2 parents 949a401 + ebcdfa0 commit 684ffd6

200 files changed

Lines changed: 14626 additions & 2717 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1-
name: Publish to GitHub Packages
1+
name: Build and upload
22

33
on:
4+
push:
5+
pull_request:
6+
types:
7+
- opened
8+
- reopened
9+
workflow_dispatch:
410
release:
511
types:
6-
- published
7-
push:
8-
branches:
9-
- new-command-system-1.20.6
12+
- created
1013

1114
env:
1215
USERNAME: ${{ github.actor }}
@@ -17,13 +20,12 @@ jobs:
1720
build:
1821
runs-on: ubuntu-latest
1922
permissions:
20-
contents: write
21-
packages: write
23+
contents: read
2224
steps:
2325
- name: Get current date
2426
run: echo "WLIB_BUILD_DATE=$(date +'%Y-%m-%d_%H-%M-%S')" >> "$GITHUB_ENV"
2527
- name: Get snapshot number
26-
run: echo "WLIB_SNAPSHOT_NUMBER=$((${{ github.run_number }}+${{ github.run_attempt }}))" >> $GITHUB_ENV
28+
run: echo "WLIB_SNAPSHOT_NUMBER=$((${{ github.run_number }}+${{ github.run_attempt }}+68))" >> $GITHUB_ENV
2729
- uses: actions/checkout@v4
2830
- name: Set up JDK 21
2931
uses: actions/setup-java@v4
@@ -48,5 +50,27 @@ jobs:
4850
for file in */build/libs/*.jar; do
4951
gh release upload ${{ github.event.release.tag_name }} $file
5052
done
51-
- name: Publish
53+
publish:
54+
runs-on: ubuntu-latest
55+
permissions:
56+
contents: write
57+
packages: write
58+
if: ${{ github.event_name != 'pull_request' }}
59+
needs:
60+
- build
61+
steps:
62+
- name: Get current date
63+
run: echo "WLIB_BUILD_DATE=$(date +'%Y-%m-%d_%H-%M-%S')" >> "$GITHUB_ENV"
64+
- name: Get snapshot number
65+
run: echo "WLIB_SNAPSHOT_NUMBER=$((${{ github.run_number }}+${{ github.run_attempt }}+68))" >> $GITHUB_ENV
66+
- uses: actions/checkout@v4
67+
- name: Set up JDK 21
68+
uses: actions/setup-java@v4
69+
with:
70+
java-version: 21
71+
distribution: temurin
72+
- name: Setup Gradle
73+
uses: gradle/actions/setup-gradle@v4
74+
- name: Clean, Build and Publish
5275
run: ./gradlew publish
76+

.github/workflows/build.yml

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

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
**/build/
22
.idea/
33
.gradle/
4+
/build.properties

build.gradle

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
2-
id("com.gradleup.shadow") version "8.3.2"
2+
id("com.gradleup.shadow") version "9.2.2"
33
id 'maven-publish'
4+
id("systems.manifold.manifold-gradle-plugin") version "0.0.2-alpha" apply false
45
}
56

67
subprojects {
@@ -9,7 +10,7 @@ subprojects {
910
apply plugin: 'maven-publish'
1011

1112
group = 'com.wizardlybump17.wlib'
12-
version = "1.6.8-ncs-1.20.6+" + ("true".equalsIgnoreCase(System.getenv("WLIB_SNAPSHOT")) ? "-SNAPSHOT." + System.getenv("WLIB_SNAPSHOT_NUMBER") : "")
13+
version = "1.6.8-ncs-2-1.20.6+" + ("true".equalsIgnoreCase(System.getenv("WLIB_SNAPSHOT")) ? "-SNAPSHOT." + System.getenv("WLIB_SNAPSHOT_NUMBER") : "")
1314

1415
repositories {
1516
mavenLocal()
@@ -20,9 +21,6 @@ subprojects {
2021
}
2122
}
2223

23-
sourceCompatibility = '21'
24-
targetCompatibility = '21'
25-
2624
tasks {
2725
compileJava {
2826
options.encoding = 'UTF-8'
@@ -38,26 +36,22 @@ subprojects {
3836

3937
java {
4038
withSourcesJar()
39+
sourceCompatibility = 21
40+
targetCompatibility = 21
4141
}
4242
}
4343

4444
subprojects {
4545
dependencies {
46-
testImplementation(platform("org.junit:junit-bom:5.10.3"))
47-
testImplementation("org.junit.jupiter:junit-jupiter:5.10.3")
46+
testImplementation(platform("org.junit:junit-bom:6.0.0"))
47+
testImplementation("org.junit.jupiter:junit-jupiter")
48+
testImplementation("org.junit.platform:junit-platform-launcher")
4849
}
4950

5051
test {
5152
useJUnitPlatform()
5253
}
5354

54-
if (project.name == 'versions' || project.name.matches('v\\d_\\d+_R\\d+')) {
55-
tasks.withType(PublishToMavenRepository).configureEach {
56-
it.enabled = false
57-
}
58-
return
59-
}
60-
6155
publishing {
6256
repositories {
6357
maven {
@@ -72,23 +66,10 @@ subprojects {
7266
publications {
7367
gpr(MavenPublication) {
7468
from(components.java)
75-
pom.withXml {
76-
asNode().dependencies.dependency.each { dep ->
77-
if (dep.artifactId.last().value().last().matches('v\\d_\\d+_R\\d+'))
78-
dep.parent().remove(dep)
79-
}
80-
}
8169
}
8270
}
8371
}
8472

85-
dependencies {
86-
testImplementation(
87-
platform('org.junit:junit-bom:5.10.2'),
88-
'org.junit.jupiter:junit-jupiter:5.10.2'
89-
)
90-
}
91-
9273
test {
9374
useJUnitPlatform()
9475
testLogging {

bukkit-utils/src/main/java/com/wizardlybump17/wlib/util/bukkit/MiniMessageUtil.java

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
11
package com.wizardlybump17.wlib.util.bukkit;
22

3+
import com.google.gson.JsonNull;
4+
import com.google.gson.JsonPrimitive;
5+
import com.wizardlybump17.wlib.util.StringUtil;
36
import net.kyori.adventure.text.Component;
7+
import net.kyori.adventure.text.TextComponent;
48
import net.kyori.adventure.text.minimessage.MiniMessage;
59
import net.kyori.adventure.text.minimessage.tag.Tag;
610
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
711
import org.jetbrains.annotations.NotNull;
12+
import org.jetbrains.annotations.Nullable;
813

914
import java.util.Map;
1015

1116
public final class MiniMessageUtil {
1217

18+
private static final @NotNull TextComponent NULL = Component.text("null");
19+
1320
private MiniMessageUtil() {
1421
}
1522

@@ -21,18 +28,60 @@ private MiniMessageUtil() {
2128
TagResolver[] resolvers = new TagResolver[placeholders.size()];
2229
int resolverIndex = 0;
2330
for (Map.Entry<String, Object> entry : placeholders.entrySet()) {
24-
String key = entry.getKey();
31+
String key = StringUtil.pascalToCamel(entry.getKey());
2532
Object value = entry.getValue();
2633
resolvers[resolverIndex++] = TagResolver.builder()
2734
.tag(
2835
key,
29-
Tag.inserting(value instanceof Component component ? component : Component.text(String.valueOf(value)))
36+
Tag.inserting(getInsertion(value))
37+
)
38+
.build();
39+
}
40+
return miniMessage.deserialize(message, resolvers);
41+
}
42+
43+
public static @NotNull Component getMessage(@NotNull String message, @NotNull String placeholderKey, @NotNull Object placeholderValue, @NotNull String prefix, @NotNull Map<String , ?> additionalPlaceholders) {
44+
MiniMessage miniMessage = MiniMessage.miniMessage();
45+
if (additionalPlaceholders.isEmpty())
46+
return getMessage(message, Map.of(placeholderKey, placeholderValue));
47+
48+
TagResolver[] resolvers = new TagResolver[additionalPlaceholders.size() + 1];
49+
int resolverIndex = 0;
50+
for (Map.Entry<String, ?> entry : additionalPlaceholders.entrySet()) {
51+
String key = StringUtil.pascalToCamel(entry.getKey());
52+
Object value = entry.getValue();
53+
resolvers[resolverIndex++] = TagResolver.builder()
54+
.tag(
55+
prefix + key,
56+
Tag.inserting(getInsertion(value))
3057
)
3158
.build();
3259
}
60+
resolvers[resolverIndex] = TagResolver.builder()
61+
.tag(
62+
prefix + placeholderKey,
63+
Tag.inserting(getInsertion(placeholderValue))
64+
)
65+
.build();
3366
return miniMessage.deserialize(message, resolvers);
3467
}
3568

69+
private static @NotNull Component getInsertion(@Nullable Object object) {
70+
if (object == null)
71+
return NULL;
72+
73+
return switch (object) {
74+
case Component component -> component;
75+
case JsonPrimitive jsonPrimitive -> Component.text(jsonPrimitive.getAsString());
76+
case JsonNull ignored -> NULL;
77+
default -> Component.text(String.valueOf(object));
78+
};
79+
}
80+
81+
public static @NotNull Component getMessage(@NotNull String message, @NotNull String placeholderKey, @NotNull Object placeholderValue, @NotNull Map<String , ?> additionalPlaceholders) {
82+
return getMessage(message, placeholderKey, placeholderValue, "", additionalPlaceholders);
83+
}
84+
3685
public static @NotNull Component getMessage(@NotNull String message) {
3786
return getMessage(message, Map.of());
3887
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package com.wizardlybump17.wlib.util.bukkit.collector;
2+
3+
import net.kyori.adventure.text.Component;
4+
import org.jetbrains.annotations.NotNull;
5+
6+
import java.util.Objects;
7+
import java.util.Set;
8+
import java.util.function.BiConsumer;
9+
import java.util.function.BinaryOperator;
10+
import java.util.function.Function;
11+
import java.util.function.Supplier;
12+
import java.util.stream.Collector;
13+
14+
public class ComponentCollector implements Collector<Component, Component[], Component> {
15+
16+
public static final @NotNull ComponentCollector COMMA = new ComponentCollector(Component.text(", "));
17+
public static final @NotNull ComponentCollector NEW_LINE = new ComponentCollector(Component.text("\n"));
18+
public static final @NotNull ComponentCollector EMPTY = new ComponentCollector(Component.empty());
19+
20+
private final @NotNull Component separator;
21+
22+
public ComponentCollector(@NotNull Component separator) {
23+
this.separator = separator;
24+
}
25+
26+
@Override
27+
public @NotNull Supplier<Component[]> supplier() {
28+
return () -> new Component[1];
29+
}
30+
31+
@Override
32+
public @NotNull BiConsumer<Component[], Component> accumulator() {
33+
return (array, component) -> {
34+
if (array[0] == null)
35+
array[0] = component;
36+
else
37+
array[0] = array[0].append(separator).append(component);
38+
};
39+
}
40+
41+
@Override
42+
public @NotNull BinaryOperator<Component[]> combiner() {
43+
return (left, right) -> {
44+
if (left[0] == null)
45+
left[0] = right[0];
46+
else
47+
left[0] = left[0].append(separator).append(right[0]);
48+
return left;
49+
};
50+
}
51+
52+
@Override
53+
public @NotNull Function<Component[], Component> finisher() {
54+
return array -> Objects.requireNonNullElseGet(array[0], Component::empty);
55+
}
56+
57+
@Override
58+
public @NotNull Set<Characteristics> characteristics() {
59+
return Set.of();
60+
}
61+
62+
public @NotNull Component getSeparator() {
63+
return separator;
64+
}
65+
}

bungee/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ dependencies {
88
compileOnly(
99
'org.projectlombok:lombok:1.18.32',
1010
'org.jetbrains:annotations:23.0.0',
11-
'net.md-5:bungeecord-api:1.18-R0.1-SNAPSHOT',
11+
'net.md-5:bungeecord-api:1.21-R0.3',
1212
)
1313
annotationProcessor('org.projectlombok:lombok:1.18.32')
1414
implementation(

bungee/src/main/java/com/wizardlybump17/wlib/bungee/command/BungeeCommand.java

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

0 commit comments

Comments
 (0)