currently refactoring a lot
This commit is contained in:
parent
31eb8a92eb
commit
ea6ae529cc
32 changed files with 205 additions and 185 deletions
6
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
6
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<profile version="1.0">
|
||||||
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="UsePropertyAccessSyntax" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
||||||
|
</profile>
|
||||||
|
</component>
|
||||||
196
.idea/workspace.xml
generated
196
.idea/workspace.xml
generated
|
|
@ -5,37 +5,27 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="56c685a1-f609-4ffd-a951-849beb2a7f8d" name="Changes" comment="currently refactoring a lot">
|
<list default="true" id="56c685a1-f609-4ffd-a951-849beb2a7f8d" name="Changes" comment="currently refactoring a lot">
|
||||||
<change afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/instancemanager/command/InstanceCommand.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/de/kentoj/scrow/BaseDependenciesConvention.kt" beforeDir="false" afterPath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/de/kentoj/scrow/BaseDependenciesConvention.kt" afterDir="false" />
|
||||||
<change afterPath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/instancemanager/InstanceManagerImpl.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/de/kentoj/scrow/DatabaseConvention.kt" beforeDir="false" afterPath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/de/kentoj/scrow/DatabaseConvention.kt" afterDir="false" />
|
||||||
<change afterPath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/messaging/SyncRequestHandler.java" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/utils/ResultUtils.java" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/privmsg/PrivMsgHandler.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/../build-logic/convention/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/../build-logic/convention/build.gradle.kts" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/de/kentoj/scrow/ReactorConvention.kt" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-bukkit-api/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-api/build.gradle.kts" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-bukkit-api/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-api/build.gradle.kts" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-bukkit-api/src/main/java/de/kentoj/scrow/bukkit/ScrowAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-api/src/main/java/de/kentoj/scrow/bukkit/ScrowAPI.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-bukkit-api/src/main/java/de/kentoj/scrow/bukkit/ScrowAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-api/src/main/java/de/kentoj/scrow/bukkit/ScrowAPI.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-bukkit-api/src/main/java/de/kentoj/scrow/bukkit/minigame/MinigameInfo.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-api/src/main/java/de/kentoj/scrow/bukkit/minigame/MinigameInfo.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/build.gradle.kts" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/build.gradle.kts" 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/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/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/crown/CrownCommand.java" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/crown/CrownDeployServerLiteral.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/instancemanager/command/InstanceDeployLiteral.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/crown/CrownDestroyServerLiteral.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/instancemanager/command/InstanceDestroyLiteral.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/crown/CrownListServersLiteral.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/instancemanager/command/InstanceListLiteral.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/economy/command/CoinsCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/economy/command/CoinsCommand.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/economy/command/CoinsCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/economy/command/CoinsCommand.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/friends/command/FriendCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/friends/command/FriendCommand.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/economy/command/CoinsGetLiteral.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/economy/command/CoinsGetLiteral.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/friends/command/FriendAddLiteral.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/friends/command/FriendAddLiteral.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/friends/command/FriendRemoveLiteral.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/friends/command/FriendRemoveLiteral.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/friends/command/FriendRequestsLiteral.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/friends/command/FriendRequestsLiteral.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/instancemanager/command/InstanceDeployLiteral.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/instancemanager/command/InstanceDeployLiteral.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/instancemanager/command/InstanceDestroyLiteral.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/instancemanager/command/InstanceDestroyLiteral.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/playermanager/PlayerManagerImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/playermanager/PlayerManagerImpl.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/playermanager/PlayerManagerImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/playermanager/PlayerManagerImpl.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/server/LobbyCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/server/LobbyCommand.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/server/PlayCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/server/PlayCommand.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/server/PlayCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-bukkit-impl/src/main/java/de/kentoj/scrow/bukkit/server/PlayCommand.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-lib/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/core-lib/build.gradle.kts" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-lib/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/core-lib/build.gradle.kts" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/connection/DatabaseConnectionFactory.java" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/connection/DatabaseConnectionFactoryImpl.java" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/convention/ScrowMessageStyle.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/convention/ScrowMessageStyle.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/convention/ScrowMessageStyle.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/convention/ScrowMessageStyle.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/messaging/RequestHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/messaging/RequestHandler.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/instancemanager/InstanceManagerImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/instancemanager/InstanceManagerImpl.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/servermanager/InstanceManager.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/instancemanager/InstanceManager.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/messaging/MessageBroker.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/messaging/MessageBroker.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/servermanager/InstanceManagerImpl.java" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/servermanager/ServerInstance.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-lib/src/main/java/de/kentoj/scrowlib/instancemanager/ServerInstance.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core-velocity-api/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-api/build.gradle.kts" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-velocity-api/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-api/build.gradle.kts" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-velocity-api/src/main/java/de/kentoj/scrow/velocity/ScrowAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-api/src/main/java/de/kentoj/scrow/velocity/ScrowAPI.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-velocity-api/src/main/java/de/kentoj/scrow/velocity/ScrowAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-api/src/main/java/de/kentoj/scrow/velocity/ScrowAPI.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-velocity-impl/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/build.gradle.kts" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-velocity-impl/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/build.gradle.kts" afterDir="false" />
|
||||||
|
|
@ -43,8 +33,9 @@
|
||||||
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/ScrowAPISurface.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/ScrowAPISurface.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/ScrowAPISurface.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/ScrowAPISurface.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/command/OnlineCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/command/OnlineCommand.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/command/OnlineCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/command/OnlineCommand.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/privmsg/MsgCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/privmsg/MsgCommand.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/privmsg/MsgCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/privmsg/MsgCommand.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/privmsg/PrivmsgHelper.java" beforeDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/privmsg/PrivMsgHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/privmsg/PrivMsgHandler.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/privmsg/ReplyCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/privmsg/ReplyCommand.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/privmsg/ReplyCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/privmsg/ReplyCommand.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/server/SendPlayerWatchdog.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/server/SendPlayerWatchdog.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/server/ServerRegisterWatchdog.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/server/ServerRegisterWatchdog.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/server/ServerRegisterWatchdog.java" beforeDir="false" afterPath="$PROJECT_DIR$/core-velocity-impl/src/main/java/de/kentoj/scrow/corevelocity/server/ServerRegisterWatchdog.java" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
|
@ -75,6 +66,9 @@
|
||||||
<task path="$PROJECT_DIR$/core-bukkit-api">
|
<task path="$PROJECT_DIR$/core-bukkit-api">
|
||||||
<activation />
|
<activation />
|
||||||
</task>
|
</task>
|
||||||
|
<task path="$PROJECT_DIR$/core-velocity-impl">
|
||||||
|
<activation />
|
||||||
|
</task>
|
||||||
<projects_view>
|
<projects_view>
|
||||||
<tree_state>
|
<tree_state>
|
||||||
<expand>
|
<expand>
|
||||||
|
|
@ -104,22 +98,22 @@
|
||||||
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
|
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
|
||||||
<item name="core" type="f1a62948:ProjectNode" />
|
<item name="core" type="f1a62948:ProjectNode" />
|
||||||
<item name="core" type="2d1252cf:ModuleNode" />
|
<item name="core" type="2d1252cf:ModuleNode" />
|
||||||
<item name="core-lib" type="2d1252cf:ModuleNode" />
|
<item name="core-velocity-impl" type="2d1252cf:ModuleNode" />
|
||||||
</path>
|
</path>
|
||||||
<path>
|
<path>
|
||||||
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
|
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
|
||||||
<item name="core" type="f1a62948:ProjectNode" />
|
<item name="core" type="f1a62948:ProjectNode" />
|
||||||
<item name="core" type="2d1252cf:ModuleNode" />
|
<item name="core" type="2d1252cf:ModuleNode" />
|
||||||
<item name="core-lib" type="2d1252cf:ModuleNode" />
|
<item name="core-velocity-impl" type="2d1252cf:ModuleNode" />
|
||||||
<item name="Tasks" type="e4a08cd1:TasksNode" />
|
<item name="Tasks" type="e4a08cd1:TasksNode" />
|
||||||
</path>
|
</path>
|
||||||
<path>
|
<path>
|
||||||
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
|
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
|
||||||
<item name="core" type="f1a62948:ProjectNode" />
|
<item name="core" type="f1a62948:ProjectNode" />
|
||||||
<item name="core" type="2d1252cf:ModuleNode" />
|
<item name="core" type="2d1252cf:ModuleNode" />
|
||||||
<item name="core-lib" type="2d1252cf:ModuleNode" />
|
<item name="core-velocity-impl" type="2d1252cf:ModuleNode" />
|
||||||
<item name="Tasks" type="e4a08cd1:TasksNode" />
|
<item name="Tasks" type="e4a08cd1:TasksNode" />
|
||||||
<item name="publishing" type="c8890929:TasksNode$1" />
|
<item name="build" type="c8890929:TasksNode$1" />
|
||||||
</path>
|
</path>
|
||||||
</expand>
|
</expand>
|
||||||
<select />
|
<select />
|
||||||
|
|
@ -162,15 +156,21 @@
|
||||||
<component name="PropertiesComponent"><![CDATA[{
|
<component name="PropertiesComponent"><![CDATA[{
|
||||||
"keyToString": {
|
"keyToString": {
|
||||||
"Gradle.Download Sources.executor": "Run",
|
"Gradle.Download Sources.executor": "Run",
|
||||||
|
"Gradle.core [:core-velocity-impl:shadowJar].executor": "Run",
|
||||||
"Gradle.core [build].executor": "Run",
|
"Gradle.core [build].executor": "Run",
|
||||||
"Gradle.core [clean].executor": "Run",
|
"Gradle.core [clean].executor": "Run",
|
||||||
"Gradle.core [publishAllPublicationsToScrowRepository].executor": "Run",
|
"Gradle.core [publishAllPublicationsToScrowRepository].executor": "Run",
|
||||||
"Gradle.core [publishCoreLibPublicationToScrowRepository].executor": "Run",
|
"Gradle.core [publishCoreLibPublicationToScrowRepository].executor": "Run",
|
||||||
"Gradle.core:core-bukkit-api [build].executor": "Run",
|
"Gradle.core:core-bukkit-api [build].executor": "Run",
|
||||||
"Gradle.core:core-bukkit-api [clean].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 [publishAllPublicationsToScrowRepository].executor": "Run",
|
||||||
"Gradle.core:core-lib [publishCoreLibPublicationToMavenLocal].executor": "Run",
|
"Gradle.core:core-lib [publishCoreLibPublicationToMavenLocal].executor": "Run",
|
||||||
"Gradle.core:core-lib [publishCoreLibPublicationToScrowRepository].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",
|
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
||||||
|
|
@ -204,9 +204,33 @@
|
||||||
<component name="RunAnythingCache">
|
<component name="RunAnythingCache">
|
||||||
<option name="myCommands">
|
<option name="myCommands">
|
||||||
<command value="gradlew clean" />
|
<command value="gradlew clean" />
|
||||||
|
<command value="./gradlew :core-velocity-impl:shadowJar --info" />
|
||||||
|
<command value="./gradlew :core-velocity-impl:shadowJar --rerun-tasks" />
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager" selected="Gradle.core [build]">
|
<component name="RunManager" selected="Gradle.core [build]">
|
||||||
|
<configuration name="core [:core-velocity-impl:shadowJar]" 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="--info" />
|
||||||
|
<option name="taskDescriptions">
|
||||||
|
<list />
|
||||||
|
</option>
|
||||||
|
<option name="taskNames">
|
||||||
|
<list>
|
||||||
|
<option value=":core-velocity-impl:shadowJar" />
|
||||||
|
</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 [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
|
<configuration name="core [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
|
||||||
<ExternalSystemSettings>
|
<ExternalSystemSettings>
|
||||||
<option name="executionName" />
|
<option name="executionName" />
|
||||||
|
|
@ -229,10 +253,54 @@
|
||||||
<RunAsTest>false</RunAsTest>
|
<RunAsTest>false</RunAsTest>
|
||||||
<method v="2" />
|
<method v="2" />
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration name="core [clean]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
|
<configuration name="core:core-bukkit-impl [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
|
||||||
<ExternalSystemSettings>
|
<ExternalSystemSettings>
|
||||||
<option name="executionName" />
|
<option name="executionName" />
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$/core-bukkit-impl" />
|
||||||
|
<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:core-velocity-impl [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
|
||||||
|
<ExternalSystemSettings>
|
||||||
|
<option name="executionName" />
|
||||||
|
<option name="externalProjectPath" value="$PROJECT_DIR$/core-velocity-impl" />
|
||||||
|
<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:core-velocity-impl [clean]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
|
||||||
|
<ExternalSystemSettings>
|
||||||
|
<option name="executionName" />
|
||||||
|
<option name="externalProjectPath" value="$PROJECT_DIR$/core-velocity-impl" />
|
||||||
<option name="externalSystemIdString" value="GRADLE" />
|
<option name="externalSystemIdString" value="GRADLE" />
|
||||||
<option name="scriptParameters" />
|
<option name="scriptParameters" />
|
||||||
<option name="taskDescriptions">
|
<option name="taskDescriptions">
|
||||||
|
|
@ -251,72 +319,6 @@
|
||||||
<RunAsTest>false</RunAsTest>
|
<RunAsTest>false</RunAsTest>
|
||||||
<method v="2" />
|
<method v="2" />
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration name="core:core-lib [publishAllPublicationsToScrowRepository]" 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="publishAllPublicationsToScrowRepository" />
|
|
||||||
</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 [publishCoreLibPublicationToMavenLocal]" 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="publishCoreLibPublicationToMavenLocal" />
|
|
||||||
</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">
|
<configuration default="true" type="JetRunConfigurationType">
|
||||||
<module name="kotlin.scripts.KotlinSettingsScript.build-logic:settings.gradle.kts" />
|
<module name="kotlin.scripts.KotlinSettingsScript.build-logic:settings.gradle.kts" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
|
|
@ -331,10 +333,10 @@
|
||||||
<recent_temporary>
|
<recent_temporary>
|
||||||
<list>
|
<list>
|
||||||
<item itemvalue="Gradle.core [build]" />
|
<item itemvalue="Gradle.core [build]" />
|
||||||
<item itemvalue="Gradle.core [clean]" />
|
<item itemvalue="Gradle.core [:core-velocity-impl:shadowJar]" />
|
||||||
<item itemvalue="Gradle.core:core-lib [publishCoreLibPublicationToScrowRepository]" />
|
<item itemvalue="Gradle.core:core-velocity-impl [build]" />
|
||||||
<item itemvalue="Gradle.core:core-lib [publishCoreLibPublicationToMavenLocal]" />
|
<item itemvalue="Gradle.core:core-velocity-impl [clean]" />
|
||||||
<item itemvalue="Gradle.core:core-lib [publishAllPublicationsToScrowRepository]" />
|
<item itemvalue="Gradle.core:core-bukkit-impl [build]" />
|
||||||
</list>
|
</list>
|
||||||
</recent_temporary>
|
</recent_temporary>
|
||||||
</component>
|
</component>
|
||||||
|
|
|
||||||
5
Makefile
Normal file
5
Makefile
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
all:
|
||||||
|
./gradlew build
|
||||||
|
|
||||||
|
install:
|
||||||
|
cp core-bukkit-impl/build/libs/core-bukkit-impl-all.jar /var/scrow/ /var/scrow/
|
||||||
|
|
@ -18,15 +18,14 @@ repositories {
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api(project(":core-lib"))
|
api(project(":core-lib"))
|
||||||
api("io.papermc.paper:paper-api:1.21.11-rc3-R0.1-SNAPSHOT")
|
compileOnly("io.papermc.paper:paper-api:1.21.11-rc3-R0.1-SNAPSHOT")
|
||||||
|
|
||||||
// https://mvnrepository.com/artifact/io.nats/jnats
|
// https://mvnrepository.com/artifact/io.nats/jnats
|
||||||
api("io.nats:jnats:2.25.2")
|
api("io.nats:jnats:2.25.2")
|
||||||
|
|
||||||
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-core
|
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-core
|
||||||
api("de.kentoj.scrow:kencommandapi-core:0.23")
|
api("de.kentoj.scrow:kencommandapi-core:0.28")
|
||||||
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-bukkit
|
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-bukkit
|
||||||
api("de.kentoj.scrow:kencommandapi-bukkit:0.23")
|
api("de.kentoj.scrow:kencommandapi-bukkit:0.28")
|
||||||
}
|
}
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import de.kentoj.scrow.bukkit.misc.EconomyService;
|
||||||
import de.kentoj.scrow.bukkit.misc.PlayerManager;
|
import de.kentoj.scrow.bukkit.misc.PlayerManager;
|
||||||
import de.kentoj.scrow.bukkit.region.RegionManager;
|
import de.kentoj.scrow.bukkit.region.RegionManager;
|
||||||
import de.kentoj.scrowlib.instancemanager.InstanceManager;
|
import de.kentoj.scrowlib.instancemanager.InstanceManager;
|
||||||
|
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||||
import io.nats.client.Connection;
|
import io.nats.client.Connection;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
@ -33,7 +34,7 @@ public class ScrowAPI {
|
||||||
@Getter
|
@Getter
|
||||||
private static FriendRequestService friendRequestService;
|
private static FriendRequestService friendRequestService;
|
||||||
@Getter
|
@Getter
|
||||||
private static Connection nats;
|
private static MessageBroker messageBroker;
|
||||||
@Getter
|
@Getter
|
||||||
private static InstanceManager instanceManager;
|
private static InstanceManager instanceManager;
|
||||||
@Getter
|
@Getter
|
||||||
|
|
@ -64,8 +65,8 @@ public class ScrowAPI {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiStatus.Internal
|
@ApiStatus.Internal
|
||||||
public static void setNats(Connection nats) {
|
public static void setMessageBroker(MessageBroker messageBroker) {
|
||||||
ScrowAPI.nats = nats;
|
ScrowAPI.messageBroker = messageBroker;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiStatus.Internal
|
@ApiStatus.Internal
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,17 @@ repositories {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
compileOnly("io.papermc.paper:paper-api:1.21.11-rc3-R0.1-SNAPSHOT")
|
||||||
implementation(project(":core-bukkit-api"))
|
implementation(project(":core-bukkit-api"))
|
||||||
|
|
||||||
|
// https://mvnrepository.com/artifact/org.mongodb/bson
|
||||||
|
implementation("org.mongodb:bson:5.8.0")
|
||||||
|
// https://mvnrepository.com/artifact/io.nats/jnats
|
||||||
|
implementation("io.nats:jnats:2.25.2")
|
||||||
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-core
|
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-core
|
||||||
implementation("de.kentoj.scrow:kencommandapi-core:0.23")
|
implementation("de.kentoj.scrow:kencommandapi-core:0.28")
|
||||||
|
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-bukkit
|
||||||
|
implementation("de.kentoj.scrow:kencommandapi-bukkit:0.28")
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks {
|
tasks {
|
||||||
|
|
@ -37,9 +44,7 @@ tasks {
|
||||||
tasks.processResources {
|
tasks.processResources {
|
||||||
filesMatching("plugin.yml") {
|
filesMatching("plugin.yml") {
|
||||||
expand(
|
expand(
|
||||||
mapOf(
|
mapOf("version" to project.version.toString())
|
||||||
"version" to project.version.toString()
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import de.kentoj.scrow.bukkit.server.LobbyCommand;
|
||||||
import de.kentoj.scrow.bukkit.server.PlayCommand;
|
import de.kentoj.scrow.bukkit.server.PlayCommand;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import java.io.FileDescriptor;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.channels.FileChannel;
|
import java.nio.channels.FileChannel;
|
||||||
|
|
@ -34,12 +35,12 @@ public class CoreImplPlugin extends JavaPlugin {
|
||||||
|
|
||||||
new RegionTask(new RegionPlayerTracker()).runTaskTimer(this, 10, 10);
|
new RegionTask(new RegionPlayerTracker()).runTaskTimer(this, 10, 10);
|
||||||
|
|
||||||
registerServer();
|
// TODO/FIXME
|
||||||
|
//registerServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerServer() {
|
private void registerServer() {
|
||||||
var opts = new OpenOption[]{StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.CREATE, StandardOpenOption.WRITE};
|
try (var file = FileChannel.open(Path.of("/proc/self/fd/4"), StandardOpenOption.WRITE)) {
|
||||||
try (var file = FileChannel.open(Path.of("/proc/self/fd/3"), opts)) {
|
|
||||||
//noinspection ResultOfMethodCallIgnored
|
//noinspection ResultOfMethodCallIgnored
|
||||||
file.write(ByteBuffer.wrap(new byte[]{'\n'}));
|
file.write(ByteBuffer.wrap(new byte[]{'\n'}));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,10 @@ import de.kentoj.scrow.bukkit.friends.friendship.InMemoryFriendshipService;
|
||||||
import de.kentoj.scrow.bukkit.friends.friendship.PostgresFriendshipService;
|
import de.kentoj.scrow.bukkit.friends.friendship.PostgresFriendshipService;
|
||||||
import de.kentoj.scrow.bukkit.friends.request.InMemoryFriendRequestService;
|
import de.kentoj.scrow.bukkit.friends.request.InMemoryFriendRequestService;
|
||||||
import de.kentoj.scrow.bukkit.friends.request.PostgresFriendRequestService;
|
import de.kentoj.scrow.bukkit.friends.request.PostgresFriendRequestService;
|
||||||
|
import de.kentoj.scrow.bukkit.playermanager.PlayerManagerImpl;
|
||||||
import de.kentoj.scrow.bukkit.region.RegionManagerImpl;
|
import de.kentoj.scrow.bukkit.region.RegionManagerImpl;
|
||||||
import de.kentoj.scrowlib.instancemanager.InstanceManagerImpl;
|
import de.kentoj.scrowlib.instancemanager.InstanceManagerImpl;
|
||||||
|
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||||
import de.kentoj.scrowlib.utils.EnvUtils;
|
import de.kentoj.scrowlib.utils.EnvUtils;
|
||||||
import io.nats.client.Nats;
|
import io.nats.client.Nats;
|
||||||
import io.nats.client.Options;
|
import io.nats.client.Options;
|
||||||
|
|
@ -31,7 +33,7 @@ public class ScrowAPISurface {
|
||||||
.server(natsHost)
|
.server(natsHost)
|
||||||
.pedantic()
|
.pedantic()
|
||||||
.build();
|
.build();
|
||||||
ScrowAPI.setNats(Nats.connect(options));
|
ScrowAPI.setMessageBroker(new MessageBroker(Nats.connect(options)));
|
||||||
} catch (IOException | InterruptedException e) {
|
} catch (IOException | InterruptedException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -40,9 +42,10 @@ public class ScrowAPISurface {
|
||||||
ScrowAPI.setJdbi(Jdbi.create(EnvUtils.envOrThrow("HOST_POSTGRES")));
|
ScrowAPI.setJdbi(Jdbi.create(EnvUtils.envOrThrow("HOST_POSTGRES")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ScrowAPI.setPlayerManager(new PlayerManagerImpl());
|
||||||
ScrowAPI.setRegionManager(new RegionManagerImpl());
|
ScrowAPI.setRegionManager(new RegionManagerImpl());
|
||||||
ScrowAPI.setCommandApi(new CommandAPI(plugin));
|
ScrowAPI.setCommandApi(new CommandAPI(plugin));
|
||||||
ScrowAPI.setInstanceManager(new InstanceManagerImpl(ScrowAPI.getNats()));
|
ScrowAPI.setInstanceManager(new InstanceManagerImpl(ScrowAPI.getMessageBroker()));
|
||||||
ScrowAPI.setEconomyService(ScrowAPI.getJdbi() != null ?
|
ScrowAPI.setEconomyService(ScrowAPI.getJdbi() != null ?
|
||||||
new PostgresEconomyService() : new InMemoryEconomyService());
|
new PostgresEconomyService() : new InMemoryEconomyService());
|
||||||
ScrowAPI.setFriendRequestService(ScrowAPI.getJdbi() != null ?
|
ScrowAPI.setFriendRequestService(ScrowAPI.getJdbi() != null ?
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ import de.kentoj.scrowlib.convention.ScrowMessageStyle;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
|
@ -29,6 +28,7 @@ public class CoinsCommand implements CommandExecutor<CommandSender> {
|
||||||
style = ScrowMessageStyle.GENERIC;
|
style = ScrowMessageStyle.GENERIC;
|
||||||
rootNode = CommandNode.rootNode(style, "coins", "bal", "balance");
|
rootNode = CommandNode.rootNode(style, "coins", "bal", "balance");
|
||||||
rootNode.setPermission("command.coins.get.self");
|
rootNode.setPermission("command.coins.get.self");
|
||||||
|
rootNode.setExecutor(this);
|
||||||
|
|
||||||
var setLiteral = new CoinsSetLiteral(style).getLiteral();
|
var setLiteral = new CoinsSetLiteral(style).getLiteral();
|
||||||
setLiteral.setPermission("command.coins.set");
|
setLiteral.setPermission("command.coins.set");
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ public class CoinsGetLiteral implements CommandExecutor<CommandSender> {
|
||||||
playerArg = CommandArgument.arg("player", OfflinePlayerArgumentType.getInstance());
|
playerArg = CommandArgument.arg("player", OfflinePlayerArgumentType.getInstance());
|
||||||
playerArg.setDefaultValueProvider(sender -> (OfflinePlayer) sender);
|
playerArg.setDefaultValueProvider(sender -> (OfflinePlayer) sender);
|
||||||
|
|
||||||
literal = CommandNode.node("set");
|
literal = CommandNode.node("get");
|
||||||
literal.addArgument(playerArg);
|
literal.addArgument(playerArg);
|
||||||
literal.setExecutor(this);
|
literal.setExecutor(this);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -74,9 +74,9 @@ public class FriendAddLiteral implements CommandExecutor<CommandSender> {
|
||||||
.saveFriendship(new FriendshipImpl(self.getUniqueId(), other.getUniqueId(), Instant.now()))
|
.saveFriendship(new FriendshipImpl(self.getUniqueId(), other.getUniqueId(), Instant.now()))
|
||||||
)))
|
)))
|
||||||
.runSync(() -> {
|
.runSync(() -> {
|
||||||
self.sendMessage(style.ok("You are now friends with " + other.getName()));
|
self.sendMessage(style.ok("You are now friends with " + other.getName() + "."));
|
||||||
if (other.getPlayer() != null)
|
if (other.getPlayer() != null)
|
||||||
other.getPlayer().sendMessage(style.ok("You are now friends with " + self.getName()));
|
other.getPlayer().sendMessage(style.ok("You are now friends with " + self.getName() + "."));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,8 +39,8 @@ public class FriendRemoveLiteral implements CommandExecutor<CommandSender> {
|
||||||
ScrowAPI.getFriendshipService().deleteFriendship(friend.getUniqueId(), player.getUniqueId()))
|
ScrowAPI.getFriendshipService().deleteFriendship(friend.getUniqueId(), player.getUniqueId()))
|
||||||
.<Result<Object, String>>mapSync(deleted -> {
|
.<Result<Object, String>>mapSync(deleted -> {
|
||||||
if (!deleted)
|
if (!deleted)
|
||||||
return Results.failure("You are not friends with " + friend.getName());
|
return Results.failure("You are not friends with " + friend.getName() + ".");
|
||||||
ctx.getSender().sendMessage(style.ok("You have ended the friendship with " + friend.getName()));
|
ctx.getSender().sendMessage(style.ok("You have ended the friendship with " + friend.getName() + "."));
|
||||||
return Results.success(new Object());
|
return Results.success(new Object());
|
||||||
}).toFuture();
|
}).toFuture();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ public class FriendRequestsLiteral implements CommandExecutor<CommandSender> {
|
||||||
|
|
||||||
public FriendRequestsLiteral(ScrowMessageStyle style) {
|
public FriendRequestsLiteral(ScrowMessageStyle style) {
|
||||||
this.style = style;
|
this.style = style;
|
||||||
literal = CommandNode.node("requests", "list-requests");
|
literal = CommandNode.node("requests");
|
||||||
literal.setExecutor(this);
|
literal.setExecutor(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -40,7 +40,7 @@ public class FriendRequestsLiteral implements CommandExecutor<CommandSender> {
|
||||||
return Tasks.supplyAsync(() ->
|
return Tasks.supplyAsync(() ->
|
||||||
ScrowAPI.getFriendRequestService().getFriendRequestsTo(sender.getUniqueId()))
|
ScrowAPI.getFriendRequestService().getFriendRequestsTo(sender.getUniqueId()))
|
||||||
.<Result<Object, String>>mapAsync(list -> {
|
.<Result<Object, String>>mapAsync(list -> {
|
||||||
if (list.isEmpty()) return Results.failure("You have no friend requests");
|
if (list.isEmpty()) return Results.failure("You have no friend requests.");
|
||||||
var requesters = list.stream().sorted(this::compareByAge).map(fr -> Bukkit.getOfflinePlayer(fr.getFrom()).getName());
|
var requesters = list.stream().sorted(this::compareByAge).map(fr -> Bukkit.getOfflinePlayer(fr.getFrom()).getName());
|
||||||
|
|
||||||
sender.sendMessage(formatList(requesters.toList()));
|
sender.sendMessage(formatList(requesters.toList()));
|
||||||
|
|
|
||||||
|
|
@ -35,11 +35,11 @@ public class InstanceDeployLiteral implements CommandExecutor<CommandSender> {
|
||||||
@Override
|
@Override
|
||||||
public CompletableFuture<Result<Object, String>> execute(CommandContext<CommandSender> ctx) {
|
public CompletableFuture<Result<Object, String>> execute(CommandContext<CommandSender> ctx) {
|
||||||
var template = ctx.getArg(templateArg);
|
var template = ctx.getArg(templateArg);
|
||||||
ctx.getSender().sendMessage(style.ok("Deploying instance... this may take a while"));
|
ctx.getSender().sendMessage(style.ok("Deploying instance... this may take a while."));
|
||||||
return Tasks.supplyAsync(() ->
|
return Tasks.supplyAsync(() ->
|
||||||
ScrowAPI.getInstanceManager().deployInstance(template))
|
ScrowAPI.getInstanceManager().deployInstance(template))
|
||||||
.<Result<Object, String>>mapSync(instance -> {
|
.<Result<Object, String>>mapSync(instance -> {
|
||||||
ctx.getSender().sendMessage(style.ok("Deployed instance of " + template + " with handle " + instance.getHandle()));
|
ctx.getSender().sendMessage(style.ok("Deployed instance of " + template + " with handle " + instance.getHandle() + "."));
|
||||||
// FIXME handle unknown server
|
// FIXME handle unknown server
|
||||||
return Results.success(new Object());
|
return Results.success(new Object());
|
||||||
}).toFuture();
|
}).toFuture();
|
||||||
|
|
|
||||||
|
|
@ -44,8 +44,8 @@ public class InstanceDestroyLiteral implements CommandExecutor<CommandSender> {
|
||||||
return Tasks.supplyAsync(() -> ScrowAPI.getInstanceManager().destroyInstance(handle))
|
return Tasks.supplyAsync(() -> ScrowAPI.getInstanceManager().destroyInstance(handle))
|
||||||
.<Result<Object, String>>mapSync(found -> {
|
.<Result<Object, String>>mapSync(found -> {
|
||||||
if (!found)
|
if (!found)
|
||||||
return Results.failure("No instance with that handle found");
|
return Results.failure("No instance with that handle found.");
|
||||||
ctx.getSender().sendMessage(style.ok("Destroyed server with handle " + handle));
|
ctx.getSender().sendMessage(style.ok("Destroyed server with handle " + handle + "."));
|
||||||
return Results.success(new Object());
|
return Results.success(new Object());
|
||||||
}).toFuture();
|
}).toFuture();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package de.kentoj.scrow.bukkit.playermanager;
|
package de.kentoj.scrow.bukkit.playermanager;
|
||||||
|
|
||||||
|
import de.kentoj.scrow.bukkit.ScrowAPI;
|
||||||
import de.kentoj.scrow.bukkit.misc.PlayerManager;
|
import de.kentoj.scrow.bukkit.misc.PlayerManager;
|
||||||
import de.kentoj.scrowlib.messaging.MessageBroker;
|
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||||
import de.kentoj.scrowlib.utils.ResultUtils;
|
import de.kentoj.scrowlib.utils.ResultUtils;
|
||||||
|
|
@ -11,7 +12,7 @@ import java.util.UUID;
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class PlayerManagerImpl implements PlayerManager {
|
public class PlayerManagerImpl implements PlayerManager {
|
||||||
|
|
||||||
private final MessageBroker messageBroker;
|
private final MessageBroker messageBroker = ScrowAPI.getMessageBroker();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPlayer(UUID playerId, String instanceHandle) {
|
public void sendPlayer(UUID playerId, String instanceHandle) {
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ public class PlayCommand implements CommandExecutor<CommandSender> {
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.orElse(null);
|
.orElse(null);
|
||||||
if (instance == null)
|
if (instance == null)
|
||||||
return Results.failure("No instance for " + gamemode + " found");
|
return Results.failure("No instance for " + gamemode + " found.");
|
||||||
|
|
||||||
return Results.ofCallable(() -> {
|
return Results.ofCallable(() -> {
|
||||||
ScrowAPI.getPlayerManager().sendPlayer(player.getUniqueId(), instance.getHandle());
|
ScrowAPI.getPlayerManager().sendPlayer(player.getUniqueId(), instance.getHandle());
|
||||||
|
|
|
||||||
|
|
@ -15,15 +15,15 @@ repositories {
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// https://mvnrepository.com/artifact/io.nats/jnats
|
// https://mvnrepository.com/artifact/io.nats/jnats
|
||||||
implementation("io.nats:jnats:2.25.2")
|
|
||||||
api("io.nats:jnats:2.25.2")
|
api("io.nats:jnats:2.25.2")
|
||||||
|
|
||||||
// https://mvnrepository.com/artifact/org.mongodb/bson
|
// https://mvnrepository.com/artifact/org.mongodb/bson
|
||||||
implementation("org.mongodb:bson:5.8.0")
|
|
||||||
api("org.mongodb:bson:5.8.0")
|
api("org.mongodb:bson:5.8.0")
|
||||||
|
|
||||||
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-core
|
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-core
|
||||||
api("de.kentoj.scrow:kencommandapi-core:0.23")
|
api("de.kentoj.scrow:kencommandapi-core:0.28")
|
||||||
|
|
||||||
|
compileOnly("net.kyori:adventure-api:5.2.0")
|
||||||
}
|
}
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,9 @@ import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
import net.kyori.adventure.text.format.TextColor;
|
import net.kyori.adventure.text.format.TextColor;
|
||||||
import net.kyori.adventure.text.format.TextDecoration;
|
import net.kyori.adventure.text.format.TextDecoration;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class ScrowMessageStyle implements MessageStyle {
|
public class ScrowMessageStyle implements MessageStyle {
|
||||||
|
|
||||||
public static ScrowMessageStyle GENERIC = new ScrowMessageStyle("Scrow", NamedTextColor.WHITE);
|
public static ScrowMessageStyle GENERIC = new ScrowMessageStyle("Scrow", TextColor.color(0xe5377f));
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final Component prefix;
|
private final Component prefix;
|
||||||
|
|
@ -24,8 +22,7 @@ public class ScrowMessageStyle implements MessageStyle {
|
||||||
this.prefixText = prefixText;
|
this.prefixText = prefixText;
|
||||||
this.prefixColor = prefixColor;
|
this.prefixColor = prefixColor;
|
||||||
this.prefix = Component.text(prefixText)
|
this.prefix = Component.text(prefixText)
|
||||||
.color(prefixColor)
|
.color(prefixColor);
|
||||||
.decorate(TextDecoration.BOLD);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package de.kentoj.scrowlib.instancemanager;
|
package de.kentoj.scrowlib.instancemanager;
|
||||||
|
|
||||||
import de.kentoj.scrowlib.messaging.MessageBroker;
|
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||||
import io.nats.client.Connection;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.bson.Document;
|
import org.bson.Document;
|
||||||
import org.jspecify.annotations.Nullable;
|
import org.jspecify.annotations.Nullable;
|
||||||
|
|
||||||
|
|
@ -9,14 +9,11 @@ import java.util.List;
|
||||||
|
|
||||||
import static de.kentoj.scrowlib.utils.ResultUtils.unwrap;
|
import static de.kentoj.scrowlib.utils.ResultUtils.unwrap;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class InstanceManagerImpl implements InstanceManager {
|
public class InstanceManagerImpl implements InstanceManager {
|
||||||
|
|
||||||
private final MessageBroker messageBroker;
|
private final MessageBroker messageBroker;
|
||||||
|
|
||||||
public InstanceManagerImpl(Connection natsCon) {
|
|
||||||
messageBroker = new MessageBroker(natsCon);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ServerInstance deployInstance(String template) {
|
public ServerInstance deployInstance(String template) {
|
||||||
var result = messageBroker.request("instance.deploy", new Document("template", template));
|
var result = messageBroker.request("instance.deploy", new Document("template", template));
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import org.bson.Document;
|
||||||
|
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class MessageBroker {
|
public class MessageBroker {
|
||||||
|
|
@ -26,6 +27,15 @@ public class MessageBroker {
|
||||||
nats.publish(subject, ResultRepository.toBytes(result));
|
nats.publish(subject, ResultRepository.toBytes(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* subscribes to a subject, handler may run asynchronously
|
||||||
|
*/
|
||||||
|
public void subscribe(String subject, Consumer<Document> handler) {
|
||||||
|
dispatcher.subscribe(subject, msg -> {
|
||||||
|
executor.submit(() -> handler.accept(DocumentRepository.fromMessage(msg)));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void handle(String subject, RequestHandler handler) {
|
public void handle(String subject, RequestHandler handler) {
|
||||||
dispatcher.subscribe(subject, msg -> {
|
dispatcher.subscribe(subject, msg -> {
|
||||||
if (msg.getReplyTo() == null) {
|
if (msg.getReplyTo() == null) {
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,9 @@ dependencies {
|
||||||
api("com.velocitypowered:velocity-api:3.5.0-SNAPSHOT")
|
api("com.velocitypowered:velocity-api:3.5.0-SNAPSHOT")
|
||||||
|
|
||||||
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-core
|
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-core
|
||||||
api("de.kentoj.scrow:kencommandapi-core:0.23")
|
api("de.kentoj.scrow:kencommandapi-core:0.28")
|
||||||
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-velocity
|
// http://forge.kentoj.de/scrow/-/packages/maven/de.kentoj.scrow:kencommandapi-velocity
|
||||||
api("de.kentoj.scrow:kencommandapi-velocity:0.23")
|
api("de.kentoj.scrow:kencommandapi-velocity:0.28")
|
||||||
}
|
}
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ package de.kentoj.scrow.velocity;
|
||||||
|
|
||||||
import de.kentoj.kencommandapi.CommandAPI;
|
import de.kentoj.kencommandapi.CommandAPI;
|
||||||
import de.kentoj.scrowlib.instancemanager.InstanceManager;
|
import de.kentoj.scrowlib.instancemanager.InstanceManager;
|
||||||
import io.nats.client.Connection;
|
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
@ -17,7 +17,7 @@ public class ScrowAPI {
|
||||||
@Getter
|
@Getter
|
||||||
private static CommandAPI commandApi;
|
private static CommandAPI commandApi;
|
||||||
@Getter
|
@Getter
|
||||||
private static Connection nats;
|
private static MessageBroker messageBroker;
|
||||||
@Getter
|
@Getter
|
||||||
private static InstanceManager instanceManager;
|
private static InstanceManager instanceManager;
|
||||||
|
|
||||||
|
|
@ -27,8 +27,8 @@ public class ScrowAPI {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiStatus.Internal
|
@ApiStatus.Internal
|
||||||
public static void setNats(Connection nats) {
|
public static void setMessageBroker(MessageBroker messageBroker) {
|
||||||
ScrowAPI.nats = nats;
|
ScrowAPI.messageBroker = messageBroker;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiStatus.Internal
|
@ApiStatus.Internal
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,9 @@ repositories {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":core-velocity-api"))
|
implementation(project(":core-velocity-api")) {
|
||||||
|
isTransitive = true
|
||||||
|
}
|
||||||
// https://docs.papermc.io/velocity/dev/creating-your-first-plugin/
|
// https://docs.papermc.io/velocity/dev/creating-your-first-plugin/
|
||||||
annotationProcessor("com.velocitypowered:velocity-api:3.5.0-SNAPSHOT")
|
annotationProcessor("com.velocitypowered:velocity-api:3.5.0-SNAPSHOT")
|
||||||
|
|
||||||
|
|
@ -25,6 +27,10 @@ dependencies {
|
||||||
implementation("com.github.ben-manes.caffeine:caffeine:3.2.4")
|
implementation("com.github.ben-manes.caffeine:caffeine:3.2.4")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.build {
|
||||||
|
dependsOn("shadowJar")
|
||||||
|
}
|
||||||
|
|
||||||
val generateBuildInfo by tasks.registering {
|
val generateBuildInfo by tasks.registering {
|
||||||
val outputDir = layout.buildDirectory.dir("generated/sources/buildInfo")
|
val outputDir = layout.buildDirectory.dir("generated/sources/buildInfo")
|
||||||
outputs.dir(outputDir)
|
outputs.dir(outputDir)
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
)
|
)
|
||||||
@Log
|
@Log
|
||||||
public class CoreVelocityPlugin {
|
public class CoreVelocityPlugin {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public CoreVelocityPlugin(ProxyServer server) {
|
public CoreVelocityPlugin(ProxyServer server) {
|
||||||
ScrowAPISurface.initScrowAPI(server, true);
|
ScrowAPISurface.initScrowAPI(server, true);
|
||||||
|
|
@ -38,8 +37,8 @@ public class CoreVelocityPlugin {
|
||||||
cmds.register(new OnlineCommand(server).getRootNode());
|
cmds.register(new OnlineCommand(server).getRootNode());
|
||||||
}
|
}
|
||||||
|
|
||||||
var registerWatchdog = new ServerRegisterWatchdog(ScrowAPI.getNats(), server);
|
var registerWatchdog = new ServerRegisterWatchdog(ScrowAPI.getMessageBroker(), server);
|
||||||
var sendPlayerWatchdog = new SendPlayerWatchdog(ScrowAPI.getNats(), server);
|
var sendPlayerWatchdog = new SendPlayerWatchdog(ScrowAPI.getMessageBroker(), server);
|
||||||
registerWatchdog.listen();
|
registerWatchdog.listen();
|
||||||
sendPlayerWatchdog.listen();
|
sendPlayerWatchdog.listen();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.velocitypowered.api.proxy.ProxyServer;
|
||||||
import de.kentoj.kencommandapi.CommandAPI;
|
import de.kentoj.kencommandapi.CommandAPI;
|
||||||
import de.kentoj.scrow.velocity.ScrowAPI;
|
import de.kentoj.scrow.velocity.ScrowAPI;
|
||||||
import de.kentoj.scrowlib.instancemanager.InstanceManagerImpl;
|
import de.kentoj.scrowlib.instancemanager.InstanceManagerImpl;
|
||||||
|
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||||
import de.kentoj.scrowlib.utils.EnvUtils;
|
import de.kentoj.scrowlib.utils.EnvUtils;
|
||||||
import io.nats.client.Nats;
|
import io.nats.client.Nats;
|
||||||
import io.nats.client.Options;
|
import io.nats.client.Options;
|
||||||
|
|
@ -23,7 +24,7 @@ public class ScrowAPISurface {
|
||||||
.server(natsHost)
|
.server(natsHost)
|
||||||
.pedantic()
|
.pedantic()
|
||||||
.build();
|
.build();
|
||||||
ScrowAPI.setNats(Nats.connect(options));
|
ScrowAPI.setMessageBroker(new MessageBroker(Nats.connect(options)));
|
||||||
} catch (IOException | InterruptedException e) {
|
} catch (IOException | InterruptedException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
@ -32,7 +33,7 @@ public class ScrowAPISurface {
|
||||||
ScrowAPI.setJdbi(Jdbi.create(EnvUtils.envOrThrow("HOST_POSTGRES")));
|
ScrowAPI.setJdbi(Jdbi.create(EnvUtils.envOrThrow("HOST_POSTGRES")));
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrowAPI.setInstanceManager(new InstanceManagerImpl(ScrowAPI.getNats()));
|
ScrowAPI.setInstanceManager(new InstanceManagerImpl(ScrowAPI.getMessageBroker()));
|
||||||
|
|
||||||
ScrowAPI.setCommandApi(new CommandAPI(server));
|
ScrowAPI.setCommandApi(new CommandAPI(server));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,18 +8,16 @@ import de.kentoj.kencommandapi.api.invocation.CommandContext;
|
||||||
import de.kentoj.kencommandapi.api.invocation.SyncCommandExecutor;
|
import de.kentoj.kencommandapi.api.invocation.SyncCommandExecutor;
|
||||||
import de.kentoj.kencommandapi.api.node.CommandNode;
|
import de.kentoj.kencommandapi.api.node.CommandNode;
|
||||||
import de.kentoj.kencommandapi.api.node.RootCommandNode;
|
import de.kentoj.kencommandapi.api.node.RootCommandNode;
|
||||||
import de.kentoj.kencommandapi.api.platform.MessageStyle;
|
|
||||||
import de.kentoj.scrowlib.convention.ScrowMessageStyle;
|
import de.kentoj.scrowlib.convention.ScrowMessageStyle;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.kyori.adventure.text.Component;
|
|
||||||
|
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class OnlineCommand implements SyncCommandExecutor<CommandSource> {
|
public class OnlineCommand implements SyncCommandExecutor<CommandSource> {
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final RootCommandNode<CommandSource> rootNode;
|
private final RootCommandNode<CommandSource> rootNode;
|
||||||
|
private final ScrowMessageStyle style = ScrowMessageStyle.GENERIC;
|
||||||
private final ProxyServer server;
|
private final ProxyServer server;
|
||||||
|
|
||||||
public OnlineCommand(ProxyServer server) {
|
public OnlineCommand(ProxyServer server) {
|
||||||
|
|
@ -32,9 +30,9 @@ public class OnlineCommand implements SyncCommandExecutor<CommandSource> {
|
||||||
public Result<Object, String> executeSync(CommandContext<CommandSource> ctx) {
|
public Result<Object, String> executeSync(CommandContext<CommandSource> ctx) {
|
||||||
int cnt = server.getPlayerCount();
|
int cnt = server.getPlayerCount();
|
||||||
var msg = cnt != 1
|
var msg = cnt != 1
|
||||||
? "There are currently " + cnt + " players online"
|
? "There are currently " + cnt + " players online."
|
||||||
: "There is currently 1 player online";
|
: "There is currently 1 player online.";
|
||||||
ctx.getSender().sendMessage(Component.text(msg));
|
ctx.getSender().sendMessage(style.ok(msg));
|
||||||
return Results.success(new Object());
|
return Results.success(new Object());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ public class MsgCommand implements SyncCommandExecutor<CommandSource> {
|
||||||
var sender = (Player) ctx.getSender();
|
var sender = (Player) ctx.getSender();
|
||||||
|
|
||||||
var isMessagingSelf = target.getUniqueId().equals(sender.getUniqueId());
|
var isMessagingSelf = target.getUniqueId().equals(sender.getUniqueId());
|
||||||
if (isMessagingSelf) return Results.failure("You can't message yourself");
|
if (isMessagingSelf) return Results.failure("You can't message yourself.");
|
||||||
|
|
||||||
cache.setLastTarget(sender.getUniqueId(), target.getUniqueId());
|
cache.setLastTarget(sender.getUniqueId(), target.getUniqueId());
|
||||||
privMsgHandler.handle(sender, target, msg);
|
privMsgHandler.handle(sender, target, msg);
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ public class PrivMsgHandler {
|
||||||
private final ScrowMessageStyle style;
|
private final ScrowMessageStyle style;
|
||||||
|
|
||||||
public void handle(Player player, Player target, String msg) {
|
public void handle(Player player, Player target, String msg) {
|
||||||
target.sendMessage(style.ok(text(player.getUsername() + " -> You:").append(Component.text(msg))));
|
target.sendMessage(style.ok(text(player.getUsername() + " -> You: ").append(Component.text(msg))));
|
||||||
player.sendMessage(style.ok(text("You -> " + player.getUsername()).append(Component.text(msg))));
|
player.sendMessage(style.ok(text("You -> " + player.getUsername() + ": ").append(Component.text(msg))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,11 +39,13 @@ public class ReplyCommand implements SyncCommandExecutor<CommandSource> {
|
||||||
public Result<Object, String> executeSync(CommandContext<CommandSource> ctx) {
|
public Result<Object, String> executeSync(CommandContext<CommandSource> ctx) {
|
||||||
var sender = (Player) ctx.getSender();
|
var sender = (Player) ctx.getSender();
|
||||||
var targetId = cache.getLastTarget(sender.getUniqueId());
|
var targetId = cache.getLastTarget(sender.getUniqueId());
|
||||||
|
if (targetId == null)
|
||||||
|
return Results.failure("You didn't messaged anyone recently. Use /msg first");
|
||||||
var target = server.getPlayer(targetId).orElse(null);
|
var target = server.getPlayer(targetId).orElse(null);
|
||||||
var msg = ctx.getArg(msgArg);
|
var msg = ctx.getArg(msgArg);
|
||||||
|
|
||||||
if (target == null)
|
if (target == null)
|
||||||
return Results.failure("The player you last messaged is no longer online");
|
return Results.failure("The player you last messaged is no longer online.");
|
||||||
cache.setLastTarget(sender.getUniqueId(), target.getUniqueId());
|
cache.setLastTarget(sender.getUniqueId(), target.getUniqueId());
|
||||||
privMsgHandler.handle(sender, target, msg);
|
privMsgHandler.handle(sender, target, msg);
|
||||||
return Results.success(new Object());
|
return Results.success(new Object());
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.leakyabstractions.result.core.Results;
|
||||||
import com.velocitypowered.api.proxy.ProxyServer;
|
import com.velocitypowered.api.proxy.ProxyServer;
|
||||||
import de.kentoj.scrowlib.messaging.MessageBroker;
|
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||||
import io.nats.client.Connection;
|
import io.nats.client.Connection;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.bson.Document;
|
import org.bson.Document;
|
||||||
|
|
||||||
|
|
@ -14,16 +15,12 @@ import java.util.concurrent.CompletionStage;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class SendPlayerWatchdog {
|
public class SendPlayerWatchdog {
|
||||||
|
|
||||||
private final MessageBroker natsRepo;
|
private final MessageBroker natsRepo;
|
||||||
private final ProxyServer server;
|
private final ProxyServer server;
|
||||||
|
|
||||||
public SendPlayerWatchdog(Connection nats, ProxyServer server) {
|
|
||||||
this.natsRepo = new MessageBroker(nats);
|
|
||||||
this.server = server;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void listen() {
|
public void listen() {
|
||||||
natsRepo.handle("players.send", doc -> sendPlayer(
|
natsRepo.handle("players.send", doc -> sendPlayer(
|
||||||
doc.get("playerId", UUID.class),
|
doc.get("playerId", UUID.class),
|
||||||
|
|
|
||||||
|
|
@ -1,44 +1,34 @@
|
||||||
package de.kentoj.scrow.corevelocity.server;
|
package de.kentoj.scrow.corevelocity.server;
|
||||||
|
|
||||||
import com.leakyabstractions.result.core.Results;
|
|
||||||
import com.velocitypowered.api.proxy.ProxyServer;
|
import com.velocitypowered.api.proxy.ProxyServer;
|
||||||
import com.velocitypowered.api.proxy.server.ServerInfo;
|
import com.velocitypowered.api.proxy.server.ServerInfo;
|
||||||
import de.kentoj.scrowlib.messaging.MessageBroker;
|
import de.kentoj.scrowlib.messaging.MessageBroker;
|
||||||
import de.kentoj.scrowlib.messaging.SyncRequestHandler;
|
|
||||||
import io.nats.client.Connection;
|
import io.nats.client.Connection;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.java.Log;
|
import lombok.extern.java.Log;
|
||||||
import org.bson.Document;
|
|
||||||
|
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
|
|
||||||
@Log
|
@Log
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class ServerRegisterWatchdog {
|
public class ServerRegisterWatchdog {
|
||||||
|
|
||||||
private final MessageBroker natsRepo;
|
private final MessageBroker natsRepo;
|
||||||
private final ProxyServer server;
|
private final ProxyServer server;
|
||||||
|
|
||||||
public ServerRegisterWatchdog(Connection nats, ProxyServer server) {
|
|
||||||
this.natsRepo = new MessageBroker(nats);
|
|
||||||
this.server = server;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void listen() {
|
public void listen() {
|
||||||
natsRepo.handle("event.instance.up", (SyncRequestHandler) doc -> {
|
natsRepo.subscribe("event.instance.up", doc -> {
|
||||||
var handle = doc.getString("handle");
|
var handle = doc.getString("handle");
|
||||||
var port = doc.getInteger("port");
|
var port = doc.getInteger("port");
|
||||||
return Results.ofCallable(() -> {
|
server.unregisterServer(new ServerInfo(handle, new InetSocketAddress(port)));
|
||||||
server.registerServer(new ServerInfo(handle, new InetSocketAddress(port)));
|
log.info("registered server " + handle);
|
||||||
return new Document();
|
|
||||||
}).mapFailure(Throwable::getMessage);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
natsRepo.handle("event.instance.down", (SyncRequestHandler) doc -> {
|
natsRepo.subscribe("event.instance.down", doc -> {
|
||||||
var handle = doc.getString("handle");
|
var handle = doc.getString("handle");
|
||||||
var port = doc.getInteger("port");
|
var port = doc.getInteger("port");
|
||||||
return Results.ofCallable(() -> {
|
server.unregisterServer(new ServerInfo(handle, new InetSocketAddress(port)));
|
||||||
server.unregisterServer(new ServerInfo(handle, new InetSocketAddress(port)));
|
log.info("unregistered server " + handle);
|
||||||
return new Document();
|
|
||||||
}).mapFailure(Throwable::getMessage);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue