Merge pull request 'feat/chat-style' (#1) from Redstone/core-fork:feat/chat-style into master

Reviewed-on: http://forge.kentoj.de/scrow/core/pulls/1
Reviewed-by: kento2 <kento@placeq.com>
This commit is contained in:
kento2 2026-07-06 18:04:38 +02:00
commit 2621210862
6 changed files with 33 additions and 442 deletions

1
.gitignore vendored
View file

@ -12,6 +12,7 @@ run/
.idea/jarRepositories.xml .idea/jarRepositories.xml
.idea/compiler.xml .idea/compiler.xml
.idea/libraries/ .idea/libraries/
.idea/*
*.iws *.iws
*.iml *.iml
*.ipr *.ipr

35
.idea/gradle.xml generated
View file

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<compositeConfiguration>
<compositeBuild compositeDefinitionSource="SCRIPT">
<builds>
<build path="$PROJECT_DIR$/../build-logic" name="build-logic">
<projects>
<project path="$PROJECT_DIR$/../build-logic" />
<project path="$PROJECT_DIR$/../build-logic/convention" />
</projects>
</build>
</builds>
</compositeBuild>
</compositeConfiguration>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$/../build-logic" />
<option value="$PROJECT_DIR$/../build-logic/convention" />
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/core-bukkit-api" />
<option value="$PROJECT_DIR$/core-bukkit-impl" />
<option value="$PROJECT_DIR$/core-lib" />
<option value="$PROJECT_DIR$/core-velocity-api" />
<option value="$PROJECT_DIR$/core-velocity-impl" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

7
.idea/vcs.xml generated
View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$/../build-logic" vcs="Git" />
</component>
</project>

400
.idea/workspace.xml generated
View file

@ -1,400 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="56c685a1-f609-4ffd-a951-849beb2a7f8d" name="Changes" comment=".">
<change afterPath="$PROJECT_DIR$/core-bukkit-impl/run/eula.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/scrow/BaseDependenciesConvention.kt" beforeDir="false" afterPath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/scrow/BaseDependenciesConvention.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/CoreImplPlugin.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/CoreImplPlugin.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/ScrowAPISurface.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/ScrowAPISurface.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/command/economy/CoinsCommand.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/utils/EnvUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/utils/EnvUtils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gradle/libs.versions.toml" beforeDir="false" afterPath="$PROJECT_DIR$/gradle/libs.versions.toml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$">
<ProjectState />
</projectState>
<projectState path="$PROJECT_DIR$/build-logic">
<ProjectState />
</projectState>
</component>
<component name="ExternalProjectsManager">
<system id="GRADLE">
<state>
<task path="$PROJECT_DIR$">
<activation />
</task>
<task path="$PROJECT_DIR$/core-lib">
<activation />
</task>
<task path="$PROJECT_DIR$/core-bukkit-impl">
<activation />
</task>
<task path="$PROJECT_DIR$/core-bukkit-api">
<activation />
</task>
<task path="$PROJECT_DIR$/core-velocity-impl">
<activation />
</task>
<projects_view>
<tree_state>
<expand>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="core" type="f1a62948:ProjectNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="core" type="f1a62948:ProjectNode" />
<item name="core" type="2d1252cf:ModuleNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="core" type="f1a62948:ProjectNode" />
<item name="core" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="core" type="f1a62948:ProjectNode" />
<item name="core" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
<item name="build" type="c8890929:TasksNode$1" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="core" type="f1a62948:ProjectNode" />
<item name="core" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
<item name="publishing" type="c8890929:TasksNode$1" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="core" type="f1a62948:ProjectNode" />
<item name="core" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
<item name="run paper" type="c8890929:TasksNode$1" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="core" type="f1a62948:ProjectNode" />
<item name="core" type="2d1252cf:ModuleNode" />
<item name="core-lib" type="2d1252cf:ModuleNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="core" type="f1a62948:ProjectNode" />
<item name="core" type="2d1252cf:ModuleNode" />
<item name="core-lib" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="core" type="f1a62948:ProjectNode" />
<item name="core" type="2d1252cf:ModuleNode" />
<item name="core-lib" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
<item name="publishing" type="c8890929:TasksNode$1" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="core" type="f1a62948:ProjectNode" />
<item name="core" type="2d1252cf:ModuleNode" />
<item name="core-velocity-impl" type="2d1252cf:ModuleNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="core" type="f1a62948:ProjectNode" />
<item name="core" type="2d1252cf:ModuleNode" />
<item name="core-velocity-impl" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="core" type="f1a62948:ProjectNode" />
<item name="core" type="2d1252cf:ModuleNode" />
<item name="core-velocity-impl" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
<item name="build" type="c8890929:TasksNode$1" />
</path>
</expand>
<select />
</tree_state>
</projects_view>
</state>
</system>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Kotlin Class" />
<option value="Interface" />
<option value="package-info" />
<option value="Class" />
<option value="Kotlin File" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
<option name="ROOT_SYNC" value="SYNC" />
</component>
<component name="GradleScriptDefinitionsStorage" workingDir="$PROJECT_DIR$" gradleHome="$USER_HOME$/.gradle/wrapper/dists/gradle-8.11-bin/c4te04g51qsyw1bxcb929u7br/gradle-8.11" javaHome="/usr/lib/jvm/openjdk21" gradleVersion="8.11" />
<component name="HighlightingSettingsPerFile">
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/io.projectreactor/reactor-core/3.8.5/ed6c3f423d84bf282e50a4f7432a8d65af321efb/reactor-core-3.8.5-sources.jar!/reactor/core/publisher/Mono.java" root0="SKIP_INSPECTION" />
</component>
<component name="ProblemsViewState">
<option name="autoscrollToSource" value="true" />
<option name="selectedTabId" value="ProjectErrors" />
</component>
<component name="ProjectColorInfo">{
&quot;customColor&quot;: &quot;&quot;,
&quot;associatedIndex&quot;: 0
}</component>
<component name="ProjectId" id="3FjIFMmEgYbcwxMNHxWXQRQn8hy" />
<component name="ProjectLevelVcsManager">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"Gradle.Download Sources.executor": "Run",
"Gradle.core [:core-velocity-impl:shadowJar].executor": "Run",
"Gradle.core [a].executor": "Run",
"Gradle.core [buildEnvironment].executor": "Run",
"Gradle.core [build].executor": "Run",
"Gradle.core [clean publishCoreLibPublicationToScrowRepository].executor": "Run",
"Gradle.core [clean].executor": "Run",
"Gradle.core [publishAllPublicationsToScrowRepository].executor": "Run",
"Gradle.core [publishCoreLibPublicationToScrowRepository].executor": "Run",
"Gradle.core [publish].executor": "Run",
"Gradle.core [runServer].executor": "Run",
"Gradle.core:core-bukkit-api [build].executor": "Run",
"Gradle.core:core-bukkit-api [clean].executor": "Run",
"Gradle.core:core-bukkit-impl [build].executor": "Run",
"Gradle.core:core-lib [publishAllPublicationsToScrowRepository].executor": "Run",
"Gradle.core:core-lib [publishCoreLibPublicationToMavenLocal].executor": "Run",
"Gradle.core:core-lib [publishCoreLibPublicationToScrowRepository].executor": "Run",
"Gradle.core:core-velocity-impl [build].executor": "Run",
"Gradle.core:core-velocity-impl [classes].executor": "Run",
"Gradle.core:core-velocity-impl [clean].executor": "Run",
"Gradle.core:core-velocity-impl [shadowJar].executor": "Run",
"ModuleVcsDetector.initialDetectionPerformed": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
"RunOnceActivity.git.unshallow": "true",
"git-widget-placeholder": "master",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "/home/a/src/scrow/core",
"project.structure.last.edited": "Modules",
"project.structure.proportion": "0.15",
"project.structure.side.proportion": "0.6268199",
"settings.editor.selected.configurable": "preferences.pluginManager"
}
}]]></component>
<component name="RecentsManager">
<key name="CreateClassDialog.RecentsKey">
<recent name="de.kentoj.scrow.bukkit.economy.command" />
<recent name="de.kentoj.scrowlib.messaging" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/core-lib" />
<recent name="$PROJECT_DIR$/build-logic/gradle" />
</key>
<key name="ExtractSuperBase.RECENT_KEYS">
<recent name="de.kentoj.scrow.bukkit.region" />
</key>
<key name="CopyKotlinDeclarationDialog.RECENTS_KEY">
<recent name="scrow" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="de.kentoj.scrow.bukkit.player" />
<recent name="de.kentoj.scrow.bukkit.friends.command" />
<recent name="de.kentoj.scrowlib.messaging" />
<recent name="de.kentoj.scrow.bukkit.region.event" />
</key>
</component>
<component name="RunAnythingCache">
<option name="myCommands">
<command value="gradlew clean" />
<command value="./gradlew :core-velocity-impl:shadowJar --info" />
<command value="./gradlew :core-velocity-impl:shadowJar --rerun-tasks" />
<command value="gradlew buildEnvironment" />
<command value="./gradlew clean publishCoreLibPublicationToScrowRepository" />
</option>
</component>
<component name="RunManager" selected="Gradle.core [runServer]">
<configuration name="core [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="build" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
<configuration name="core [clean publishCoreLibPublicationToScrowRepository]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="clean" />
<option value="publishCoreLibPublicationToScrowRepository" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
<configuration name="core [publish]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="publish" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
<configuration name="core:core-lib [publishCoreLibPublicationToScrowRepository]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/core-lib" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="publishCoreLibPublicationToScrowRepository" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
<configuration default="true" type="JetRunConfigurationType">
<module name="kotlin.scripts.KotlinSettingsScript.build-logic:settings.gradle.kts" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="KotlinStandaloneScriptRunConfigurationType">
<module name="core" />
<option name="filePath" />
<method v="2" />
</configuration>
<list>
<item itemvalue="Gradle.core [runServer]" />
<item itemvalue="Gradle.core [build]" />
<item itemvalue="Gradle.core [clean publishCoreLibPublicationToScrowRepository]" />
<item itemvalue="Gradle.core [publish]" />
<item itemvalue="Gradle.core:core-lib [publishCoreLibPublicationToScrowRepository]" />
</list>
<recent_temporary>
<list>
<item itemvalue="Gradle.core [runServer]" />
<item itemvalue="Gradle.core [build]" />
<item itemvalue="Gradle.core [publish]" />
<item itemvalue="Gradle.core [clean publishCoreLibPublicationToScrowRepository]" />
<item itemvalue="Gradle.core:core-lib [publishCoreLibPublicationToScrowRepository]" />
</list>
</recent_temporary>
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="56c685a1-f609-4ffd-a951-849beb2a7f8d" name="Changes" comment="" />
<created>1782581947132</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1782581947132</updated>
</task>
<task id="LOCAL-00001" summary=".">
<option name="closed" value="true" />
<created>1782666067624</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1782666067624</updated>
</task>
<task id="LOCAL-00002" summary=".">
<option name="closed" value="true" />
<created>1782673270039</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1782673270039</updated>
</task>
<task id="LOCAL-00003" summary="fix: unable to leave regions when unloaded">
<option name="closed" value="true" />
<created>1782675674934</created>
<option name="number" value="00003" />
<option name="presentableId" value="LOCAL-00003" />
<option name="project" value="LOCAL" />
<updated>1782675674934</updated>
</task>
<option name="localTasksCounter" value="4" />
<servers />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="fix: unable to leave regions when unloaded" />
<MESSAGE value="currently refactoring a lot" />
<MESSAGE value="move some stuff around" />
<MESSAGE value="cleaned up build process" />
<MESSAGE value="." />
<option name="LAST_COMMIT_MESSAGE" value="." />
</component>
</project>

View file

@ -6,6 +6,7 @@ import de.kentoj.scrow.bukkit.command.instance.InstanceCache;
import de.kentoj.scrow.bukkit.command.instance.InstanceCommand; import de.kentoj.scrow.bukkit.command.instance.InstanceCommand;
import de.kentoj.scrow.bukkit.command.instance.LobbyCommand; import de.kentoj.scrow.bukkit.command.instance.LobbyCommand;
import de.kentoj.scrow.bukkit.command.instance.PlayCommand; import de.kentoj.scrow.bukkit.command.instance.PlayCommand;
import de.kentoj.scrow.bukkit.listener.ChatStyleListener;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import java.io.IOException; import java.io.IOException;
@ -28,6 +29,9 @@ public class CoreImplPlugin extends JavaPlugin {
ScrowAPI.getCommandApi().register(new LobbyCommand().getRootNode()); ScrowAPI.getCommandApi().register(new LobbyCommand().getRootNode());
} }
// Listeners
getServer().getPluginManager().registerEvents(new ChatStyleListener(), this);
// TODO/FIXME // TODO/FIXME
//registerServer(); //registerServer();
} }

View file

@ -0,0 +1,28 @@
package de.kentoj.scrow.bukkit.listener;
import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class ChatStyleListener implements Listener {
@EventHandler
public void onChat(AsyncChatEvent event) {
Player player = event.getPlayer();
Component formattedMessage = formatMessage(player, event.message());
event.renderer((source, sourceDisplayName, message, viewer) -> formattedMessage);
}
private Component formatMessage(Player player, Component message) {
return Component.text()
.append(player.displayName()
.append(Component.text(": "))
.color(NamedTextColor.GRAY))
.append(message.color(NamedTextColor.WHITE))
.build();
}
}