├── .github
├── ISSUE_TEMPLATE
│ ├── other.md
│ └── bug_report.yml
└── workflows
│ ├── build-all.yml
│ ├── publish-forge-1.21.5.yml
│ ├── publish-forge-1.20.1.yml
│ ├── publish-forge-1.19.x.yml
│ ├── publish-forge-1.20.x.yml
│ ├── publish-fabric-1.21.5.yml
│ ├── publish-forge-1.18.x.yml
│ ├── publish-fabric-1.20.1.yml
│ ├── publish-forge-1.21.x.yml
│ ├── publish-fabric-1.19.x.yml
│ ├── publish-fabric-1.20.x.yml
│ ├── publish-fabric-1.18.x.yml
│ ├── publish-fabric-1.21.x.yml
│ ├── build-1.18.x.yml
│ ├── build-1.19.x.yml
│ ├── build-1.20.1.yml
│ ├── build-1.20.x.yml
│ ├── build-1.21.5.yml
│ ├── build-1.21.x.yml
│ └── publish-all.yml
├── mc2discord-1.18.x
├── buildSrc
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ └── kotlin
│ │ └── readProperties.kt
├── common
│ ├── src
│ │ └── main
│ │ │ ├── resources
│ │ │ ├── pack.mcmeta
│ │ │ ├── mc2discord.accesswidener
│ │ │ └── mc2discord.mixins.json
│ │ │ └── java
│ │ │ └── fr
│ │ │ └── denisd3d
│ │ │ └── mc2discord
│ │ │ └── minecraft
│ │ │ ├── commands
│ │ │ └── DiscordCommandImpl.java
│ │ │ └── mixin
│ │ │ └── CommandFunctionCommandEntryMixin.java
│ └── build.gradle.kts
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── forge
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── META-INF
│ │ │ ├── accesstransformer.cfg
│ │ │ └── mods.toml
│ │ └── mc2discord.forge.mixins.json
│ │ └── java
│ │ └── fr
│ │ └── denisd3d
│ │ └── mc2discord
│ │ └── forge
│ │ └── Mc2DiscordForge.java
├── .gitignore
├── .gitattributes
├── .idea
│ └── scopes
│ │ ├── Forge_sources.xml
│ │ └── Fabric_sources.xml
├── gradle.properties
├── fabric
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── mc2discord.fabric.mixins.json
│ │ └── fabric.mod.json
│ │ └── java
│ │ └── fr
│ │ └── denisd3d
│ │ └── mc2discord
│ │ └── fabric
│ │ ├── events
│ │ ├── ServerChatCallback.java
│ │ ├── PlayerDeathCallback.java
│ │ ├── PlayerCompletedAdvancementCallback.java
│ │ └── CommandExecuteCallback.java
│ │ ├── mixin
│ │ ├── ServerPlayerMixin.java
│ │ ├── ServerGamePacketListenerImplMixin.java
│ │ ├── PlayerAdvancementsMixin.java
│ │ └── CommandsMixin.java
│ │ └── Mc2DiscordFabric.java
└── settings.gradle
├── mc2discord-1.19.x
├── buildSrc
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ └── kotlin
│ │ └── readProperties.kt
├── common
│ ├── src
│ │ └── main
│ │ │ ├── resources
│ │ │ ├── pack.mcmeta
│ │ │ ├── mc2discord.accesswidener
│ │ │ └── mc2discord.mixins.json
│ │ │ └── java
│ │ │ └── fr
│ │ │ └── denisd3d
│ │ │ └── mc2discord
│ │ │ └── minecraft
│ │ │ ├── commands
│ │ │ └── DiscordCommandImpl.java
│ │ │ └── mixin
│ │ │ └── CommandFunctionCommandEntryMixin.java
│ └── build.gradle.kts
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── forge
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── META-INF
│ │ │ ├── accesstransformer.cfg
│ │ │ └── mods.toml
│ │ └── mc2discord.forge.mixins.json
│ │ └── java
│ │ └── fr
│ │ └── denisd3d
│ │ └── mc2discord
│ │ └── forge
│ │ └── Mc2DiscordForge.java
├── .gitignore
├── .gitattributes
├── .idea
│ └── scopes
│ │ ├── Forge_sources.xml
│ │ └── Fabric_sources.xml
├── gradle.properties
├── fabric
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── mc2discord.fabric.mixins.json
│ │ └── fabric.mod.json
│ │ └── java
│ │ └── fr
│ │ └── denisd3d
│ │ └── mc2discord
│ │ └── fabric
│ │ ├── events
│ │ ├── PlayerDeathCallback.java
│ │ ├── PlayerCompletedAdvancementCallback.java
│ │ └── CommandExecuteCallback.java
│ │ ├── mixin
│ │ ├── ServerPlayerMixin.java
│ │ ├── CommandsMixin.java
│ │ └── PlayerAdvancementsMixin.java
│ │ └── Mc2DiscordFabric.java
└── settings.gradle
├── mc2discord-1.20.1
├── buildSrc
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ └── kotlin
│ │ └── readProperties.kt
├── common
│ ├── src
│ │ └── main
│ │ │ ├── resources
│ │ │ ├── pack.mcmeta
│ │ │ ├── mc2discord.accesswidener
│ │ │ └── mc2discord.mixins.json
│ │ │ └── java
│ │ │ └── fr
│ │ │ └── denisd3d
│ │ │ └── mc2discord
│ │ │ └── minecraft
│ │ │ ├── commands
│ │ │ └── DiscordCommandImpl.java
│ │ │ └── mixin
│ │ │ └── CommandFunctionCommandEntryMixin.java
│ └── build.gradle.kts
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── forge
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── META-INF
│ │ │ ├── accesstransformer.cfg
│ │ │ └── mods.toml
│ │ └── mc2discord.forge.mixins.json
│ │ └── java
│ │ └── fr
│ │ └── denisd3d
│ │ └── mc2discord
│ │ └── forge
│ │ └── Mc2DiscordForge.java
├── .gitignore
├── .gitattributes
├── .idea
│ └── scopes
│ │ ├── Forge_sources.xml
│ │ └── Fabric_sources.xml
├── gradle.properties
├── fabric
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── mc2discord.fabric.mixins.json
│ │ └── fabric.mod.json
│ │ └── java
│ │ └── fr
│ │ └── denisd3d
│ │ └── mc2discord
│ │ └── fabric
│ │ ├── events
│ │ ├── PlayerDeathCallback.java
│ │ ├── PlayerCompletedAdvancementCallback.java
│ │ └── CommandExecuteCallback.java
│ │ ├── mixin
│ │ ├── ServerPlayerMixin.java
│ │ ├── CommandsMixin.java
│ │ └── PlayerAdvancementsMixin.java
│ │ └── Mc2DiscordFabric.java
└── settings.gradle
├── mc2discord-1.20.x
├── buildSrc
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ └── kotlin
│ │ └── readProperties.kt
├── common
│ ├── src
│ │ └── main
│ │ │ ├── resources
│ │ │ ├── pack.mcmeta
│ │ │ ├── mc2discord.accesswidener
│ │ │ └── mc2discord.mixins.json
│ │ │ └── java
│ │ │ └── fr
│ │ │ └── denisd3d
│ │ │ └── mc2discord
│ │ │ └── minecraft
│ │ │ ├── commands
│ │ │ └── DiscordCommandImpl.java
│ │ │ └── mixin
│ │ │ └── EmoteCommandsMixin.java
│ └── build.gradle.kts
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── forge
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── META-INF
│ │ │ ├── accesstransformer.cfg
│ │ │ └── mods.toml
│ │ └── mc2discord.forge.mixins.json
│ │ └── java
│ │ └── fr
│ │ └── denisd3d
│ │ └── mc2discord
│ │ └── forge
│ │ └── Mc2DiscordForge.java
├── .gitignore
├── .gitattributes
├── .idea
│ └── scopes
│ │ ├── Forge_sources.xml
│ │ └── Fabric_sources.xml
├── fabric
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── mc2discord.fabric.mixins.json
│ │ └── fabric.mod.json
│ │ └── java
│ │ └── fr
│ │ └── denisd3d
│ │ └── mc2discord
│ │ └── fabric
│ │ ├── events
│ │ ├── PlayerDeathCallback.java
│ │ ├── PlayerCompletedAdvancementCallback.java
│ │ └── CommandExecuteCallback.java
│ │ ├── mixin
│ │ ├── ServerPlayerMixin.java
│ │ ├── CommandsMixin.java
│ │ └── PlayerAdvancementsMixin.java
│ │ └── Mc2DiscordFabric.java
├── gradle.properties
└── settings.gradle
├── mc2discord-1.21.5
├── buildSrc
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ └── kotlin
│ │ └── readProperties.kt
├── common
│ ├── src
│ │ └── main
│ │ │ ├── resources
│ │ │ ├── pack.mcmeta
│ │ │ ├── mc2discord.accesswidener
│ │ │ └── mc2discord.mixins.json
│ │ │ └── java
│ │ │ └── fr
│ │ │ └── denisd3d
│ │ │ └── mc2discord
│ │ │ └── minecraft
│ │ │ ├── commands
│ │ │ └── DiscordCommandImpl.java
│ │ │ └── mixin
│ │ │ └── EmoteCommandsMixin.java
│ └── build.gradle.kts
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── forge
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── META-INF
│ │ │ ├── accesstransformer.cfg
│ │ │ └── mods.toml
│ │ └── mc2discord.forge.mixins.json
│ │ └── java
│ │ └── fr
│ │ └── denisd3d
│ │ └── mc2discord
│ │ └── forge
│ │ └── Mc2DiscordForge.java
├── .gitignore
├── .gitattributes
├── .idea
│ └── scopes
│ │ ├── Forge_sources.xml
│ │ └── Fabric_sources.xml
├── fabric
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── mc2discord.fabric.mixins.json
│ │ └── fabric.mod.json
│ │ └── java
│ │ └── fr
│ │ └── denisd3d
│ │ └── mc2discord
│ │ └── fabric
│ │ ├── events
│ │ ├── PlayerDeathCallback.java
│ │ ├── PlayerCompletedAdvancementCallback.java
│ │ └── CommandExecuteCallback.java
│ │ ├── mixin
│ │ ├── ServerPlayerMixin.java
│ │ ├── CommandsMixin.java
│ │ └── PlayerAdvancementsMixin.java
│ │ └── Mc2DiscordFabric.java
├── gradle.properties
└── settings.gradle
├── mc2discord-1.21.x
├── buildSrc
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ └── kotlin
│ │ └── readProperties.kt
├── common
│ ├── src
│ │ └── main
│ │ │ ├── resources
│ │ │ ├── pack.mcmeta
│ │ │ ├── mc2discord.accesswidener
│ │ │ └── mc2discord.mixins.json
│ │ │ └── java
│ │ │ └── fr
│ │ │ └── denisd3d
│ │ │ └── mc2discord
│ │ │ └── minecraft
│ │ │ └── commands
│ │ │ └── DiscordCommandImpl.java
│ └── build.gradle.kts
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── forge
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── META-INF
│ │ │ ├── accesstransformer.cfg
│ │ │ └── mods.toml
│ │ └── mc2discord.forge.mixins.json
│ │ └── java
│ │ └── fr
│ │ └── denisd3d
│ │ └── mc2discord
│ │ └── forge
│ │ └── Mc2DiscordForge.java
├── .gitignore
├── .gitattributes
├── .idea
│ └── scopes
│ │ ├── Forge_sources.xml
│ │ └── Fabric_sources.xml
├── fabric
│ └── src
│ │ └── main
│ │ ├── resources
│ │ ├── mc2discord.fabric.mixins.json
│ │ └── fabric.mod.json
│ │ └── java
│ │ └── fr
│ │ └── denisd3d
│ │ └── mc2discord
│ │ └── fabric
│ │ ├── events
│ │ ├── PlayerDeathCallback.java
│ │ ├── PlayerCompletedAdvancementCallback.java
│ │ └── CommandExecuteCallback.java
│ │ ├── mixin
│ │ ├── ServerPlayerMixin.java
│ │ ├── CommandsMixin.java
│ │ └── PlayerAdvancementsMixin.java
│ │ └── Mc2DiscordFabric.java
├── gradle.properties
└── settings.gradle
├── mc2discord-core
├── .gitignore
├── src
│ └── main
│ │ ├── java
│ │ └── fr
│ │ │ └── denisd3d
│ │ │ └── mc2discord
│ │ │ └── core
│ │ │ ├── config
│ │ │ ├── General.java
│ │ │ ├── Features.java
│ │ │ ├── converters
│ │ │ │ ├── RandomString.java
│ │ │ │ ├── SnowflakeConverter.java
│ │ │ │ ├── SnowflakeArrayConverter.java
│ │ │ │ └── RandomStringConverter.java
│ │ │ ├── Presence.java
│ │ │ ├── Channels.java
│ │ │ ├── StatusChannels.java
│ │ │ ├── Messages.java
│ │ │ └── Commands.java
│ │ │ ├── storage
│ │ │ ├── HiddenPlayerEntry.java
│ │ │ ├── UserStorageEntry.java
│ │ │ ├── LinkedPlayerEntry.java
│ │ │ ├── HiddenPlayerList.java
│ │ │ └── LinkedPlayerList.java
│ │ │ ├── entities
│ │ │ ├── MessageEntity.java
│ │ │ ├── PlayerEntity.java
│ │ │ ├── AdvancementEntity.java
│ │ │ ├── DeathEntity.java
│ │ │ ├── LogEntity.java
│ │ │ ├── MemberEntity.java
│ │ │ └── Entity.java
│ │ │ └── Vars.java
│ │ └── resources
│ │ └── assets
│ │ └── mc2discord
│ │ └── m2d-lang
│ │ └── core
│ │ ├── ru_ru.json
│ │ ├── zh_cn.json
│ │ ├── ko_kr.json
│ │ ├── tr_tr.json
│ │ └── fr_fr.json
└── build.gradle.kts
├── CHANGELOG.md
├── shared.properties
└── update.json
/.github/ISSUE_TEMPLATE/other.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 💡 Other
3 | about: For everything except bug report
4 | ---
5 |
--------------------------------------------------------------------------------
/mc2discord-1.18.x/buildSrc/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | `kotlin-dsl`
3 | }
4 |
5 | repositories {
6 | mavenCentral()
7 | }
--------------------------------------------------------------------------------
/mc2discord-1.19.x/buildSrc/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | `kotlin-dsl`
3 | }
4 |
5 | repositories {
6 | mavenCentral()
7 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/buildSrc/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | `kotlin-dsl`
3 | }
4 |
5 | repositories {
6 | mavenCentral()
7 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/buildSrc/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | `kotlin-dsl`
3 | }
4 |
5 | repositories {
6 | mavenCentral()
7 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/buildSrc/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | `kotlin-dsl`
3 | }
4 |
5 | repositories {
6 | mavenCentral()
7 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/buildSrc/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | `kotlin-dsl`
3 | }
4 |
5 | repositories {
6 | mavenCentral()
7 | }
--------------------------------------------------------------------------------
/mc2discord-1.18.x/common/src/main/resources/pack.mcmeta:
--------------------------------------------------------------------------------
1 | {
2 | "pack": {
3 | "description": "${modId}",
4 | "pack_format": 8
5 | }
6 | }
--------------------------------------------------------------------------------
/mc2discord-1.18.x/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DenisD3D/Mc2Discord/HEAD/mc2discord-1.18.x/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/mc2discord-1.19.x/common/src/main/resources/pack.mcmeta:
--------------------------------------------------------------------------------
1 | {
2 | "pack": {
3 | "description": "${modId}",
4 | "pack_format": 8
5 | }
6 | }
--------------------------------------------------------------------------------
/mc2discord-1.19.x/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DenisD3D/Mc2Discord/HEAD/mc2discord-1.19.x/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/mc2discord-1.20.1/common/src/main/resources/pack.mcmeta:
--------------------------------------------------------------------------------
1 | {
2 | "pack": {
3 | "description": "${modId}",
4 | "pack_format": 8
5 | }
6 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DenisD3D/Mc2Discord/HEAD/mc2discord-1.20.1/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/mc2discord-1.20.x/common/src/main/resources/pack.mcmeta:
--------------------------------------------------------------------------------
1 | {
2 | "pack": {
3 | "description": "${modId}",
4 | "pack_format": 8
5 | }
6 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DenisD3D/Mc2Discord/HEAD/mc2discord-1.20.x/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/mc2discord-1.21.5/common/src/main/resources/pack.mcmeta:
--------------------------------------------------------------------------------
1 | {
2 | "pack": {
3 | "description": "${modId}",
4 | "pack_format": 8
5 | }
6 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DenisD3D/Mc2Discord/HEAD/mc2discord-1.21.5/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/mc2discord-1.21.x/common/src/main/resources/pack.mcmeta:
--------------------------------------------------------------------------------
1 | {
2 | "pack": {
3 | "description": "${modId}",
4 | "pack_format": 8
5 | }
6 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DenisD3D/Mc2Discord/HEAD/mc2discord-1.21.x/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/mc2discord-core/.gitignore:
--------------------------------------------------------------------------------
1 | # Ignore Gradle project-specific cache directory
2 | .gradle
3 |
4 | # Ignore Gradle build output directory
5 | build
6 |
7 | # Ignore Idea cache directory
8 | .idea
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## 4.2.6 update
2 | + 1.21.5 support
3 | + fix death message being always generic on fabric (thanks to CavanCheeta)
4 | + add missing `${attachements}` variable in `minecraft_chat_format`
5 |
--------------------------------------------------------------------------------
/mc2discord-1.18.x/buildSrc/src/main/kotlin/readProperties.kt:
--------------------------------------------------------------------------------
1 | import java.io.File
2 | import java.util.*
3 |
4 | fun readProperties(propertiesFile: File) = Properties().apply {
5 | propertiesFile.inputStream().use { fis ->
6 | load(fis)
7 | }
8 | }
--------------------------------------------------------------------------------
/mc2discord-1.19.x/buildSrc/src/main/kotlin/readProperties.kt:
--------------------------------------------------------------------------------
1 | import java.io.File
2 | import java.util.*
3 |
4 | fun readProperties(propertiesFile: File) = Properties().apply {
5 | propertiesFile.inputStream().use { fis ->
6 | load(fis)
7 | }
8 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/buildSrc/src/main/kotlin/readProperties.kt:
--------------------------------------------------------------------------------
1 | import java.io.File
2 | import java.util.*
3 |
4 | fun readProperties(propertiesFile: File) = Properties().apply {
5 | propertiesFile.inputStream().use { fis ->
6 | load(fis)
7 | }
8 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/buildSrc/src/main/kotlin/readProperties.kt:
--------------------------------------------------------------------------------
1 | import java.io.File
2 | import java.util.*
3 |
4 | fun readProperties(propertiesFile: File) = Properties().apply {
5 | propertiesFile.inputStream().use { fis ->
6 | load(fis)
7 | }
8 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/buildSrc/src/main/kotlin/readProperties.kt:
--------------------------------------------------------------------------------
1 | import java.io.File
2 | import java.util.*
3 |
4 | fun readProperties(propertiesFile: File) = Properties().apply {
5 | propertiesFile.inputStream().use { fis ->
6 | load(fis)
7 | }
8 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/buildSrc/src/main/kotlin/readProperties.kt:
--------------------------------------------------------------------------------
1 | import java.io.File
2 | import java.util.*
3 |
4 | fun readProperties(propertiesFile: File) = Properties().apply {
5 | propertiesFile.inputStream().use { fis ->
6 | load(fis)
7 | }
8 | }
--------------------------------------------------------------------------------
/mc2discord-1.18.x/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/mc2discord-1.19.x/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/mc2discord-1.20.1/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/mc2discord-1.20.x/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/mc2discord-1.21.5/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/mc2discord-1.21.x/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/mc2discord-1.18.x/forge/src/main/resources/META-INF/accesstransformer.cfg:
--------------------------------------------------------------------------------
1 | public net.minecraft.world.damagesource.CombatTracker f_19277_ # mob
2 | public net.minecraft.server.MinecraftServer f_129745_ # playerDataStorage
3 | public net.minecraft.world.level.storage.PlayerDataStorage f_78427_ # playerDir
--------------------------------------------------------------------------------
/mc2discord-1.19.x/forge/src/main/resources/META-INF/accesstransformer.cfg:
--------------------------------------------------------------------------------
1 | public net.minecraft.world.damagesource.CombatTracker f_19277_ # mob
2 | public net.minecraft.server.MinecraftServer f_129745_ # playerDataStorage
3 | public net.minecraft.world.level.storage.PlayerDataStorage f_78427_ # playerDir
--------------------------------------------------------------------------------
/mc2discord-1.20.1/forge/src/main/resources/META-INF/accesstransformer.cfg:
--------------------------------------------------------------------------------
1 | public net.minecraft.world.damagesource.CombatTracker f_19277_ # mob
2 | public net.minecraft.server.MinecraftServer f_129745_ # playerDataStorage
3 | public net.minecraft.world.level.storage.PlayerDataStorage f_78427_ # playerDir
--------------------------------------------------------------------------------
/mc2discord-1.20.x/forge/src/main/resources/META-INF/accesstransformer.cfg:
--------------------------------------------------------------------------------
1 | public net.minecraft.world.damagesource.CombatTracker f_19277_ # mob
2 | public net.minecraft.server.MinecraftServer f_129745_ # playerDataStorage
3 | public net.minecraft.world.level.storage.PlayerDataStorage f_78427_ # playerDir
--------------------------------------------------------------------------------
/mc2discord-1.21.5/forge/src/main/resources/META-INF/accesstransformer.cfg:
--------------------------------------------------------------------------------
1 | public net.minecraft.world.damagesource.CombatTracker f_19277_ # mob
2 | public net.minecraft.server.MinecraftServer f_129745_ # playerDataStorage
3 | public net.minecraft.world.level.storage.PlayerDataStorage f_78427_ # playerDir
--------------------------------------------------------------------------------
/mc2discord-1.21.x/forge/src/main/resources/META-INF/accesstransformer.cfg:
--------------------------------------------------------------------------------
1 | public net.minecraft.world.damagesource.CombatTracker f_19277_ # mob
2 | public net.minecraft.server.MinecraftServer f_129745_ # playerDataStorage
3 | public net.minecraft.world.level.storage.PlayerDataStorage f_78427_ # playerDir
--------------------------------------------------------------------------------
/mc2discord-1.18.x/.gitignore:
--------------------------------------------------------------------------------
1 | # eclipse
2 | bin
3 | *.launch
4 | .settings
5 | .metadata
6 | .classpath
7 | .project
8 |
9 | # idea
10 | out
11 | *.ipr
12 | *.iws
13 | *.iml
14 | .idea/*
15 | !.idea/scopes
16 |
17 | # gradle
18 | build
19 | .gradle
20 |
21 | # other
22 | eclipse
23 | run
24 |
--------------------------------------------------------------------------------
/mc2discord-1.19.x/.gitignore:
--------------------------------------------------------------------------------
1 | # eclipse
2 | bin
3 | *.launch
4 | .settings
5 | .metadata
6 | .classpath
7 | .project
8 |
9 | # idea
10 | out
11 | *.ipr
12 | *.iws
13 | *.iml
14 | .idea/*
15 | !.idea/scopes
16 |
17 | # gradle
18 | build
19 | .gradle
20 |
21 | # other
22 | eclipse
23 | run
24 |
--------------------------------------------------------------------------------
/mc2discord-1.20.1/.gitignore:
--------------------------------------------------------------------------------
1 | # eclipse
2 | bin
3 | *.launch
4 | .settings
5 | .metadata
6 | .classpath
7 | .project
8 |
9 | # idea
10 | out
11 | *.ipr
12 | *.iws
13 | *.iml
14 | .idea/*
15 | !.idea/scopes
16 |
17 | # gradle
18 | build
19 | .gradle
20 |
21 | # other
22 | eclipse
23 | run
24 |
--------------------------------------------------------------------------------
/mc2discord-1.20.x/.gitignore:
--------------------------------------------------------------------------------
1 | # eclipse
2 | bin
3 | *.launch
4 | .settings
5 | .metadata
6 | .classpath
7 | .project
8 |
9 | # idea
10 | out
11 | *.ipr
12 | *.iws
13 | *.iml
14 | .idea/*
15 | !.idea/scopes
16 |
17 | # gradle
18 | build
19 | .gradle
20 |
21 | # other
22 | eclipse
23 | run
24 |
--------------------------------------------------------------------------------
/mc2discord-1.21.5/.gitignore:
--------------------------------------------------------------------------------
1 | # eclipse
2 | bin
3 | *.launch
4 | .settings
5 | .metadata
6 | .classpath
7 | .project
8 |
9 | # idea
10 | out
11 | *.ipr
12 | *.iws
13 | *.iml
14 | .idea/*
15 | !.idea/scopes
16 |
17 | # gradle
18 | build
19 | .gradle
20 |
21 | # other
22 | eclipse
23 | run
24 |
--------------------------------------------------------------------------------
/mc2discord-1.21.x/.gitignore:
--------------------------------------------------------------------------------
1 | # eclipse
2 | bin
3 | *.launch
4 | .settings
5 | .metadata
6 | .classpath
7 | .project
8 |
9 | # idea
10 | out
11 | *.ipr
12 | *.iws
13 | *.iml
14 | .idea/*
15 | !.idea/scopes
16 |
17 | # gradle
18 | build
19 | .gradle
20 |
21 | # other
22 | eclipse
23 | run
24 |
--------------------------------------------------------------------------------
/mc2discord-1.18.x/.gitattributes:
--------------------------------------------------------------------------------
1 | * text eol=lf
2 | *.bat text eol=crlf
3 | *.patch text eol=lf
4 | *.java text eol=lf
5 | *.gradle text eol=crlf
6 | *.png binary
7 | *.gif binary
8 | *.exe binary
9 | *.dll binary
10 | *.jar binary
11 | *.lzma binary
12 | *.zip binary
13 | *.pyd binary
14 | *.cfg text eol=lf
15 | *.jks binary
--------------------------------------------------------------------------------
/mc2discord-1.19.x/.gitattributes:
--------------------------------------------------------------------------------
1 | * text eol=lf
2 | *.bat text eol=crlf
3 | *.patch text eol=lf
4 | *.java text eol=lf
5 | *.gradle text eol=crlf
6 | *.png binary
7 | *.gif binary
8 | *.exe binary
9 | *.dll binary
10 | *.jar binary
11 | *.lzma binary
12 | *.zip binary
13 | *.pyd binary
14 | *.cfg text eol=lf
15 | *.jks binary
--------------------------------------------------------------------------------
/mc2discord-1.20.1/.gitattributes:
--------------------------------------------------------------------------------
1 | * text eol=lf
2 | *.bat text eol=crlf
3 | *.patch text eol=lf
4 | *.java text eol=lf
5 | *.gradle text eol=crlf
6 | *.png binary
7 | *.gif binary
8 | *.exe binary
9 | *.dll binary
10 | *.jar binary
11 | *.lzma binary
12 | *.zip binary
13 | *.pyd binary
14 | *.cfg text eol=lf
15 | *.jks binary
--------------------------------------------------------------------------------
/mc2discord-1.20.x/.gitattributes:
--------------------------------------------------------------------------------
1 | * text eol=lf
2 | *.bat text eol=crlf
3 | *.patch text eol=lf
4 | *.java text eol=lf
5 | *.gradle text eol=crlf
6 | *.png binary
7 | *.gif binary
8 | *.exe binary
9 | *.dll binary
10 | *.jar binary
11 | *.lzma binary
12 | *.zip binary
13 | *.pyd binary
14 | *.cfg text eol=lf
15 | *.jks binary
--------------------------------------------------------------------------------
/mc2discord-1.21.5/.gitattributes:
--------------------------------------------------------------------------------
1 | * text eol=lf
2 | *.bat text eol=crlf
3 | *.patch text eol=lf
4 | *.java text eol=lf
5 | *.gradle text eol=crlf
6 | *.png binary
7 | *.gif binary
8 | *.exe binary
9 | *.dll binary
10 | *.jar binary
11 | *.lzma binary
12 | *.zip binary
13 | *.pyd binary
14 | *.cfg text eol=lf
15 | *.jks binary
--------------------------------------------------------------------------------
/mc2discord-1.21.x/.gitattributes:
--------------------------------------------------------------------------------
1 | * text eol=lf
2 | *.bat text eol=crlf
3 | *.patch text eol=lf
4 | *.java text eol=lf
5 | *.gradle text eol=crlf
6 | *.png binary
7 | *.gif binary
8 | *.exe binary
9 | *.dll binary
10 | *.jar binary
11 | *.lzma binary
12 | *.zip binary
13 | *.pyd binary
14 | *.cfg text eol=lf
15 | *.jks binary
--------------------------------------------------------------------------------
/mc2discord-1.18.x/forge/src/main/resources/mc2discord.forge.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.forge.mixin",
5 | "refmap": "${modId}.refmap.json",
6 | "compatibilityLevel": "JAVA_17",
7 | "mixins": [
8 | ],
9 | "injectors": {
10 | "defaultRequire": 1
11 | }
12 | }
--------------------------------------------------------------------------------
/mc2discord-1.19.x/forge/src/main/resources/mc2discord.forge.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.forge.mixin",
5 | "refmap": "${modId}.refmap.json",
6 | "compatibilityLevel": "JAVA_17",
7 | "mixins": [
8 | ],
9 | "injectors": {
10 | "defaultRequire": 1
11 | }
12 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/forge/src/main/resources/mc2discord.forge.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.forge.mixin",
5 | "refmap": "${modId}.refmap.json",
6 | "compatibilityLevel": "JAVA_17",
7 | "mixins": [
8 | ],
9 | "injectors": {
10 | "defaultRequire": 1
11 | }
12 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/forge/src/main/resources/mc2discord.forge.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.forge.mixin",
5 | "refmap": "${modId}.refmap.json",
6 | "compatibilityLevel": "JAVA_17",
7 | "mixins": [
8 | ],
9 | "injectors": {
10 | "defaultRequire": 1
11 | }
12 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/forge/src/main/resources/mc2discord.forge.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.forge.mixin",
5 | "refmap": "${modId}.refmap.json",
6 | "compatibilityLevel": "JAVA_17",
7 | "mixins": [
8 | ],
9 | "injectors": {
10 | "defaultRequire": 1
11 | }
12 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/forge/src/main/resources/mc2discord.forge.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.forge.mixin",
5 | "refmap": "${modId}.refmap.json",
6 | "compatibilityLevel": "JAVA_17",
7 | "mixins": [
8 | ],
9 | "injectors": {
10 | "defaultRequire": 1
11 | }
12 | }
--------------------------------------------------------------------------------
/mc2discord-1.18.x/.idea/scopes/Forge_sources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/mc2discord-1.19.x/.idea/scopes/Forge_sources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/mc2discord-1.20.1/.idea/scopes/Forge_sources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/mc2discord-1.20.x/.idea/scopes/Forge_sources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/mc2discord-1.21.5/.idea/scopes/Forge_sources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/mc2discord-1.21.x/.idea/scopes/Forge_sources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/shared.properties:
--------------------------------------------------------------------------------
1 | modId=mc2discord
2 | modName=Mc2Discord
3 | modGroup=fr.denisd3d.mc2discord
4 | modAuthors=DenisD3D
5 | modDescription=Link your Minecraft chat with your Discord server
6 | modIssueTrackerUrl=https://github.com/DenisD3D/Mc2Discord/issues
7 | modUpdateJsonUrl=https://raw.githubusercontent.com/DenisD3D/Mc2Discord/main/update.json
8 | modDisplayUrl=https://www.curseforge.com/minecraft/mc-mods/mc2discord
9 |
--------------------------------------------------------------------------------
/mc2discord-1.18.x/common/src/main/resources/mc2discord.accesswidener:
--------------------------------------------------------------------------------
1 | accessWidener v1 named
2 | accessible field net/minecraft/world/damagesource/CombatTracker mob Lnet/minecraft/world/entity/LivingEntity;
3 | accessible field net/minecraft/server/MinecraftServer playerDataStorage Lnet/minecraft/world/level/storage/PlayerDataStorage;
4 | accessible field net/minecraft/world/level/storage/PlayerDataStorage playerDir Ljava/io/File;
--------------------------------------------------------------------------------
/mc2discord-1.19.x/common/src/main/resources/mc2discord.accesswidener:
--------------------------------------------------------------------------------
1 | accessWidener v1 named
2 | accessible field net/minecraft/world/damagesource/CombatTracker mob Lnet/minecraft/world/entity/LivingEntity;
3 | accessible field net/minecraft/server/MinecraftServer playerDataStorage Lnet/minecraft/world/level/storage/PlayerDataStorage;
4 | accessible field net/minecraft/world/level/storage/PlayerDataStorage playerDir Ljava/io/File;
--------------------------------------------------------------------------------
/mc2discord-1.20.1/common/src/main/resources/mc2discord.accesswidener:
--------------------------------------------------------------------------------
1 | accessWidener v1 named
2 | accessible field net/minecraft/world/damagesource/CombatTracker mob Lnet/minecraft/world/entity/LivingEntity;
3 | accessible field net/minecraft/server/MinecraftServer playerDataStorage Lnet/minecraft/world/level/storage/PlayerDataStorage;
4 | accessible field net/minecraft/world/level/storage/PlayerDataStorage playerDir Ljava/io/File;
--------------------------------------------------------------------------------
/mc2discord-1.20.x/common/src/main/resources/mc2discord.accesswidener:
--------------------------------------------------------------------------------
1 | accessWidener v1 named
2 | accessible field net/minecraft/world/damagesource/CombatTracker mob Lnet/minecraft/world/entity/LivingEntity;
3 | accessible field net/minecraft/server/MinecraftServer playerDataStorage Lnet/minecraft/world/level/storage/PlayerDataStorage;
4 | accessible field net/minecraft/world/level/storage/PlayerDataStorage playerDir Ljava/io/File;
--------------------------------------------------------------------------------
/mc2discord-1.21.5/common/src/main/resources/mc2discord.accesswidener:
--------------------------------------------------------------------------------
1 | accessWidener v1 named
2 | accessible field net/minecraft/world/damagesource/CombatTracker mob Lnet/minecraft/world/entity/LivingEntity;
3 | accessible field net/minecraft/server/MinecraftServer playerDataStorage Lnet/minecraft/world/level/storage/PlayerDataStorage;
4 | accessible field net/minecraft/world/level/storage/PlayerDataStorage playerDir Ljava/io/File;
--------------------------------------------------------------------------------
/mc2discord-1.21.x/common/src/main/resources/mc2discord.accesswidener:
--------------------------------------------------------------------------------
1 | accessWidener v1 named
2 | accessible field net/minecraft/world/damagesource/CombatTracker mob Lnet/minecraft/world/entity/LivingEntity;
3 | accessible field net/minecraft/server/MinecraftServer playerDataStorage Lnet/minecraft/world/level/storage/PlayerDataStorage;
4 | accessible field net/minecraft/world/level/storage/PlayerDataStorage playerDir Ljava/io/File;
--------------------------------------------------------------------------------
/mc2discord-1.18.x/common/src/main/resources/mc2discord.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.minecraft.mixin",
5 | "compatibilityLevel": "JAVA_17",
6 | "refmap": "${modId}.refmap.json",
7 | "mixins": [
8 | "CommandFunctionCommandEntryMixin",
9 | "PlayerListMixin"
10 | ],
11 | "injectors": {
12 | "defaultRequire": 1
13 | }
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/mc2discord-1.19.x/common/src/main/resources/mc2discord.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.minecraft.mixin",
5 | "compatibilityLevel": "JAVA_17",
6 | "refmap": "${modId}.refmap.json",
7 | "mixins": [
8 | "CommandFunctionCommandEntryMixin",
9 | "PlayerListMixin"
10 | ],
11 | "injectors": {
12 | "defaultRequire": 1
13 | }
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/mc2discord-1.20.1/common/src/main/resources/mc2discord.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.minecraft.mixin",
5 | "compatibilityLevel": "JAVA_17",
6 | "refmap": "${modId}.refmap.json",
7 | "mixins": [
8 | "CommandFunctionCommandEntryMixin",
9 | "PlayerListMixin"
10 | ],
11 | "injectors": {
12 | "defaultRequire": 1
13 | }
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/mc2discord-1.18.x/gradle.properties:
--------------------------------------------------------------------------------
1 | # Gradle
2 | org.gradle.jvmargs=-Xmx3G
3 | org.gradle.parallel=true
4 |
5 | # Common
6 | javaVersion=17
7 | minecraftVersion=1.18.2
8 | minecraftDisplayVersion=1.18.x
9 |
10 | # Fabric
11 | fabricLoaderVersion=0.14.22
12 | fabricVersion=0.76.0+1.18.2
13 | fabricMinecraftVersionRange=1.18.x
14 |
15 | # Forge
16 | forgeVersion=40.2.10
17 | forgeVersionRange=[38,)
18 | forgeMinecraftVersionRange=[1.18,1.19)
--------------------------------------------------------------------------------
/mc2discord-1.20.1/gradle.properties:
--------------------------------------------------------------------------------
1 | # Gradle
2 | org.gradle.jvmargs=-Xmx3G
3 | org.gradle.parallel=true
4 |
5 | # Common
6 | javaVersion=17
7 | minecraftVersion=1.20.1
8 | minecraftDisplayVersion=1.20.1
9 |
10 | # Fabric
11 | fabricLoaderVersion=0.14.22
12 | fabricVersion=0.90.7+1.20.1
13 | fabricMinecraftVersionRange=1.20.x
14 |
15 | # Forge
16 | forgeVersion=47.2.0
17 | forgeVersionRange=[46,)
18 | forgeMinecraftVersionRange=[1.20,1.20.1]
--------------------------------------------------------------------------------
/mc2discord-1.19.x/gradle.properties:
--------------------------------------------------------------------------------
1 | # Gradle
2 | org.gradle.jvmargs=-Xmx3G
3 | org.gradle.parallel=true
4 |
5 | # Common
6 | javaVersion=17
7 | minecraftVersion=1.19.4
8 | minecraftDisplayVersion=1.19.x
9 |
10 | # Fabric
11 | fabricLoaderVersion=0.14.22
12 | fabricVersion=0.87.0+1.19.4
13 | fabricMinecraftVersionRange=1.19.x
14 |
15 | # Forge
16 | forgeVersion=45.1.19
17 | forgeVersionRange=[41,)
18 | forgeMinecraftVersionRange=[1.19,1.20)
19 |
--------------------------------------------------------------------------------
/mc2discord-1.19.x/fabric/src/main/resources/mc2discord.fabric.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.fabric.mixin",
5 | "compatibilityLevel": "JAVA_17",
6 | "refmap": "${modId}.refmap.json",
7 | "mixins": [
8 | "CommandsMixin",
9 | "PlayerAdvancementsMixin",
10 | "ServerPlayerMixin"
11 | ],
12 | "injectors": {
13 | "defaultRequire": 1
14 | }
15 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/fabric/src/main/resources/mc2discord.fabric.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.fabric.mixin",
5 | "compatibilityLevel": "JAVA_17",
6 | "refmap": "${modId}.refmap.json",
7 | "mixins": [
8 | "CommandsMixin",
9 | "PlayerAdvancementsMixin",
10 | "ServerPlayerMixin"
11 | ],
12 | "injectors": {
13 | "defaultRequire": 1
14 | }
15 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/common/src/main/resources/mc2discord.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.minecraft.mixin",
5 | "compatibilityLevel": "JAVA_17",
6 | "refmap": "${modId}.refmap.json",
7 | "mixins": [
8 | "EmoteCommandsMixin",
9 | "PlayerListMixin",
10 | "SayCommandMixin",
11 | "TellrawCommandMixin"
12 | ],
13 | "injectors": {
14 | "defaultRequire": 1
15 | }
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/mc2discord-1.20.x/fabric/src/main/resources/mc2discord.fabric.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.fabric.mixin",
5 | "compatibilityLevel": "JAVA_17",
6 | "refmap": "${modId}.refmap.json",
7 | "mixins": [
8 | "CommandsMixin",
9 | "PlayerAdvancementsMixin",
10 | "ServerPlayerMixin"
11 | ],
12 | "injectors": {
13 | "defaultRequire": 1
14 | }
15 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/common/src/main/resources/mc2discord.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.minecraft.mixin",
5 | "compatibilityLevel": "JAVA_17",
6 | "refmap": "${modId}.refmap.json",
7 | "mixins": [
8 | "EmoteCommandsMixin",
9 | "PlayerListMixin",
10 | "SayCommandMixin",
11 | "TellrawCommandMixin"
12 | ],
13 | "injectors": {
14 | "defaultRequire": 1
15 | }
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/mc2discord-1.21.5/fabric/src/main/resources/mc2discord.fabric.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.fabric.mixin",
5 | "compatibilityLevel": "JAVA_17",
6 | "refmap": "${modId}.refmap.json",
7 | "mixins": [
8 | "CommandsMixin",
9 | "PlayerAdvancementsMixin",
10 | "ServerPlayerMixin"
11 | ],
12 | "injectors": {
13 | "defaultRequire": 1
14 | }
15 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/common/src/main/resources/mc2discord.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.minecraft.mixin",
5 | "compatibilityLevel": "JAVA_17",
6 | "refmap": "${modId}.refmap.json",
7 | "mixins": [
8 | "EmoteCommandsMixin",
9 | "PlayerListMixin",
10 | "SayCommandMixin",
11 | "TellrawCommandMixin"
12 | ],
13 | "injectors": {
14 | "defaultRequire": 1
15 | }
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/mc2discord-1.21.x/fabric/src/main/resources/mc2discord.fabric.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.fabric.mixin",
5 | "compatibilityLevel": "JAVA_17",
6 | "refmap": "${modId}.refmap.json",
7 | "mixins": [
8 | "CommandsMixin",
9 | "PlayerAdvancementsMixin",
10 | "ServerPlayerMixin"
11 | ],
12 | "injectors": {
13 | "defaultRequire": 1
14 | }
15 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/gradle.properties:
--------------------------------------------------------------------------------
1 | # Gradle
2 | org.gradle.jvmargs=-Xmx3G
3 | org.gradle.parallel=true
4 |
5 | # Common
6 | javaVersion=21
7 | minecraftVersion=1.20.6
8 | minecraftDisplayVersion=1.20.6
9 |
10 | # Fabric
11 | fabricLoaderVersion=0.15.11
12 | fabricVersion=0.98.0+1.20.6
13 | fabricMinecraftVersionRange=~1.20.6
14 | # ~1.x.1 <-> 1.x.1, 1.x.2, ...
15 |
16 | # Forge
17 | forgeVersion=50.0.22
18 | forgeVersionRange=[46,)
19 | forgeMinecraftVersionRange=[1.20.6,1.21)
--------------------------------------------------------------------------------
/mc2discord-1.18.x/.idea/scopes/Fabric_sources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/mc2discord-1.19.x/.idea/scopes/Fabric_sources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/mc2discord-1.20.1/.idea/scopes/Fabric_sources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/mc2discord-1.20.x/.idea/scopes/Fabric_sources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/mc2discord-1.21.5/.idea/scopes/Fabric_sources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/mc2discord-1.21.5/gradle.properties:
--------------------------------------------------------------------------------
1 | # Gradle
2 | org.gradle.jvmargs=-Xmx3G
3 | org.gradle.parallel=true
4 |
5 | # Common
6 | javaVersion=21
7 | minecraftVersion=1.21.5
8 | minecraftDisplayVersion=1.21.5
9 |
10 | # Fabric
11 | fabricLoaderVersion=0.16.14
12 | fabricVersion=0.121.0+1.21.5
13 | fabricMinecraftVersionRange=~1.21
14 | # ~1.x.1 <-> 1.x.1, 1.x.2, ...
15 |
16 | # Forge
17 | forgeVersion=55.0.9
18 | forgeVersionRange=[53,)
19 | forgeMinecraftVersionRange=[1.21.2,1.22)
20 |
--------------------------------------------------------------------------------
/mc2discord-1.21.x/.idea/scopes/Fabric_sources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/mc2discord-1.21.x/gradle.properties:
--------------------------------------------------------------------------------
1 | # Gradle
2 | org.gradle.jvmargs=-Xmx3G
3 | org.gradle.parallel=true
4 |
5 | # Common
6 | javaVersion=21
7 | minecraftVersion=1.21.4
8 | minecraftDisplayVersion=1.21.x
9 |
10 | # Fabric
11 | fabricLoaderVersion=0.16.9
12 | fabricVersion=0.113.0+1.21.4
13 | fabricMinecraftVersionRange=~1.21
14 | # ~1.x.1 <-> 1.x.1, 1.x.2, ...
15 |
16 | # Forge
17 | forgeVersion=54.0.12
18 | forgeVersionRange=[53,)
19 | forgeMinecraftVersionRange=[1.21.2,1.22)
20 |
--------------------------------------------------------------------------------
/mc2discord-1.18.x/fabric/src/main/resources/mc2discord.fabric.mixins.json:
--------------------------------------------------------------------------------
1 | {
2 | "required": true,
3 | "minVersion": "0.8",
4 | "package": "fr.denisd3d.mc2discord.fabric.mixin",
5 | "compatibilityLevel": "JAVA_17",
6 | "refmap": "${modId}.refmap.json",
7 | "mixins": [
8 | "CommandsMixin",
9 | "PlayerAdvancementsMixin",
10 | "ServerGamePacketListenerImplMixin",
11 | "ServerPlayerMixin"
12 | ],
13 | "injectors": {
14 | "defaultRequire": 1
15 | }
16 | }
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/config/General.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.config;
2 |
3 | import com.electronwill.nightconfig.core.conversion.Path;
4 | import com.electronwill.nightconfig.core.conversion.PreserveNotNull;
5 | import fr.denisd3d.config4j.Comment;
6 |
7 | public class General {
8 | @Path("token")
9 | @Comment("config.general.token.comment")
10 | @PreserveNotNull
11 | public String token = "";
12 |
13 | @Path("comment")
14 | public String comment;
15 | }
16 |
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/storage/HiddenPlayerEntry.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.storage;
2 |
3 | import com.google.gson.JsonObject;
4 |
5 | import java.util.UUID;
6 |
7 | public class HiddenPlayerEntry extends UserStorageEntry {
8 | public HiddenPlayerEntry(UUID playerUuid) {
9 | super(playerUuid);
10 | }
11 |
12 | @Override
13 | protected void serialize(JsonObject data) {
14 | data.addProperty("uuid", this.getPlayerUuid().toString());
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/storage/UserStorageEntry.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.storage;
2 |
3 | import com.google.gson.JsonObject;
4 |
5 | import java.util.UUID;
6 |
7 | public abstract class UserStorageEntry {
8 | private final UUID playerUuid;
9 | public UserStorageEntry(UUID playerUuid) {
10 | this.playerUuid = playerUuid;
11 | }
12 |
13 | public UUID getPlayerUuid() {
14 | return this.playerUuid;
15 | }
16 |
17 | protected abstract void serialize(JsonObject pData);
18 | }
19 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.yml:
--------------------------------------------------------------------------------
1 | name: "🐛 Bug report"
2 | description: Report errors or unexpected behavior
3 | labels:
4 | - bug
5 | body:
6 | - type: textarea
7 | attributes:
8 | label: Describe the bug
9 | placeholder: A clear and concise description of what the bug is.
10 | validations:
11 | required: true
12 |
13 | - type: input
14 | attributes:
15 | label: Your config file
16 | placeholder: |
17 | http://m2d.denisd3d.ml/uploads/view?key=xxx
18 | description: |
19 | Must be the link returned by the `/mc2discord upload` command (remove sensitive data)
20 | validations:
21 | required: false
22 |
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/entities/MessageEntity.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.entities;
2 |
3 | import com.vdurmont.emoji.EmojiParser;
4 |
5 | import java.util.Map;
6 | import java.util.function.BiFunction;
7 |
8 | public class MessageEntity extends Entity {
9 | public String message;
10 |
11 | public MessageEntity(String message) {
12 | this.message = EmojiParser.parseToAliases(message);
13 | }
14 |
15 | @Override
16 | public void getReplacements(Map replacements, Map> formatters) {
17 | replacements.put("message", this.message);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/mc2discord-core/src/main/resources/assets/mc2discord/m2d-lang/core/ru_ru.json:
--------------------------------------------------------------------------------
1 | {
2 | "config.messages.start.value": "Сервер запущен",
3 | "config.messages.stop.value": "Сервер остановлен",
4 | "config.messages.join.value": "${player_display_name} зашел на сервер",
5 | "config.messages.leave.value": "${player_display_name} вышел с сервера",
6 | "config.messages.death.value": "${death_message}",
7 | "config.messages.advancement.value": "${player_display_name} получил достижение ${advancement_title}. ${advancement_description}.",
8 | "config.style.presence.message.value": "${online_players} / ${max_players} игроков",
9 | "config.misc.discord_text.value": "Ссылка на приглашение не установлена"
10 | }
--------------------------------------------------------------------------------
/mc2discord-1.18.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/ServerChatCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.server.level.ServerPlayer;
6 |
7 | public interface ServerChatCallback {
8 | Event EVENT = EventFactory.createArrayBacked(ServerChatCallback.class, (listeners) -> (message, serverPlayer) -> {
9 | for (ServerChatCallback listener : listeners) {
10 | listener.onServerChatMessage(message, serverPlayer);
11 | }
12 | });
13 |
14 | void onServerChatMessage(String message, ServerPlayer serverPlayer);
15 | }
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/config/Features.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.config;
2 |
3 | import com.electronwill.nightconfig.core.conversion.Path;
4 | import com.electronwill.nightconfig.core.conversion.PreserveNotNull;
5 | import fr.denisd3d.config4j.Comment;
6 |
7 | public class Features {
8 | @Path("status_channels")
9 | @Comment("config.features.status_channels.comment")
10 | @PreserveNotNull
11 | public boolean status_channels = false;
12 |
13 | @Path("account_linking")
14 | @Comment("config.features.account_linking.comment")
15 | @PreserveNotNull
16 | public boolean account_linking = false;
17 |
18 | @Path("comment")
19 | public String comment;
20 | }
--------------------------------------------------------------------------------
/mc2discord-1.18.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/PlayerDeathCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.server.level.ServerPlayer;
6 | import net.minecraft.world.damagesource.DamageSource;
7 |
8 | public interface PlayerDeathCallback {
9 | Event EVENT = EventFactory.createArrayBacked(PlayerDeathCallback.class, (listeners) -> (player, source) -> {
10 | for (PlayerDeathCallback listener : listeners) {
11 | listener.onPlayerDeath(player, source);
12 | }
13 | });
14 |
15 | void onPlayerDeath(ServerPlayer playerEntity, DamageSource source);
16 | }
--------------------------------------------------------------------------------
/mc2discord-1.19.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/PlayerDeathCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.server.level.ServerPlayer;
6 | import net.minecraft.world.damagesource.DamageSource;
7 |
8 | public interface PlayerDeathCallback {
9 | Event EVENT = EventFactory.createArrayBacked(PlayerDeathCallback.class, (listeners) -> (player, source) -> {
10 | for (PlayerDeathCallback listener : listeners) {
11 | listener.onPlayerDeath(player, source);
12 | }
13 | });
14 |
15 | void onPlayerDeath(ServerPlayer playerEntity, DamageSource source);
16 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/PlayerDeathCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.server.level.ServerPlayer;
6 | import net.minecraft.world.damagesource.DamageSource;
7 |
8 | public interface PlayerDeathCallback {
9 | Event EVENT = EventFactory.createArrayBacked(PlayerDeathCallback.class, (listeners) -> (player, source) -> {
10 | for (PlayerDeathCallback listener : listeners) {
11 | listener.onPlayerDeath(player, source);
12 | }
13 | });
14 |
15 | void onPlayerDeath(ServerPlayer playerEntity, DamageSource source);
16 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/PlayerDeathCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.server.level.ServerPlayer;
6 | import net.minecraft.world.damagesource.DamageSource;
7 |
8 | public interface PlayerDeathCallback {
9 | Event EVENT = EventFactory.createArrayBacked(PlayerDeathCallback.class, (listeners) -> (player, source) -> {
10 | for (PlayerDeathCallback listener : listeners) {
11 | listener.onPlayerDeath(player, source);
12 | }
13 | });
14 |
15 | void onPlayerDeath(ServerPlayer playerEntity, DamageSource source);
16 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/PlayerDeathCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.server.level.ServerPlayer;
6 | import net.minecraft.world.damagesource.DamageSource;
7 |
8 | public interface PlayerDeathCallback {
9 | Event EVENT = EventFactory.createArrayBacked(PlayerDeathCallback.class, (listeners) -> (player, source) -> {
10 | for (PlayerDeathCallback listener : listeners) {
11 | listener.onPlayerDeath(player, source);
12 | }
13 | });
14 |
15 | void onPlayerDeath(ServerPlayer playerEntity, DamageSource source);
16 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/PlayerDeathCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.server.level.ServerPlayer;
6 | import net.minecraft.world.damagesource.DamageSource;
7 |
8 | public interface PlayerDeathCallback {
9 | Event EVENT = EventFactory.createArrayBacked(PlayerDeathCallback.class, (listeners) -> (player, source) -> {
10 | for (PlayerDeathCallback listener : listeners) {
11 | listener.onPlayerDeath(player, source);
12 | }
13 | });
14 |
15 | void onPlayerDeath(ServerPlayer playerEntity, DamageSource source);
16 | }
--------------------------------------------------------------------------------
/mc2discord-1.18.x/common/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | id("java-library")
3 | id("org.spongepowered.gradle.vanilla")
4 | }
5 |
6 | val sharedProperties = readProperties(file("../../shared.properties"))
7 |
8 | base {
9 | archivesName.set("${sharedProperties["modId"]}-common-${rootProject.extra["minecraftDisplayVersion"]}")
10 | }
11 |
12 | minecraft {
13 | version(rootProject.extra["minecraftVersion"] as String)
14 | accessWideners(file("src/main/resources/${sharedProperties["modId"]}.accesswidener"))
15 | }
16 |
17 | repositories {
18 | maven("https://jitpack.io")
19 | mavenCentral()
20 | }
21 |
22 | dependencies {
23 | compileOnly(group = "org.spongepowered", name = "mixin", version = "0.8.5")
24 | implementation(project(":mc2discord-core"))
25 | }
--------------------------------------------------------------------------------
/mc2discord-1.19.x/common/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | id("java-library")
3 | id("org.spongepowered.gradle.vanilla")
4 | }
5 |
6 | val sharedProperties = readProperties(file("../../shared.properties"))
7 |
8 | base {
9 | archivesName.set("${sharedProperties["modId"]}-common-${rootProject.extra["minecraftDisplayVersion"]}")
10 | }
11 |
12 | minecraft {
13 | version(rootProject.extra["minecraftVersion"] as String)
14 | accessWideners(file("src/main/resources/${sharedProperties["modId"]}.accesswidener"))
15 | }
16 |
17 | repositories {
18 | maven("https://jitpack.io")
19 | mavenCentral()
20 | }
21 |
22 | dependencies {
23 | compileOnly(group = "org.spongepowered", name = "mixin", version = "0.8.5")
24 | implementation(project(":mc2discord-core"))
25 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/common/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | id("java-library")
3 | id("org.spongepowered.gradle.vanilla")
4 | }
5 |
6 | val sharedProperties = readProperties(file("../../shared.properties"))
7 |
8 | base {
9 | archivesName.set("${sharedProperties["modId"]}-common-${rootProject.extra["minecraftDisplayVersion"]}")
10 | }
11 |
12 | minecraft {
13 | version(rootProject.extra["minecraftVersion"] as String)
14 | accessWideners(file("src/main/resources/${sharedProperties["modId"]}.accesswidener"))
15 | }
16 |
17 | repositories {
18 | maven("https://jitpack.io")
19 | mavenCentral()
20 | }
21 |
22 | dependencies {
23 | compileOnly(group = "org.spongepowered", name = "mixin", version = "0.8.5")
24 | implementation(project(":mc2discord-core"))
25 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/common/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | id("java-library")
3 | id("org.spongepowered.gradle.vanilla")
4 | }
5 |
6 | val sharedProperties = readProperties(file("../../shared.properties"))
7 |
8 | base {
9 | archivesName.set("${sharedProperties["modId"]}-common-${rootProject.extra["minecraftDisplayVersion"]}")
10 | }
11 |
12 | minecraft {
13 | version(rootProject.extra["minecraftVersion"] as String)
14 | accessWideners(file("src/main/resources/${sharedProperties["modId"]}.accesswidener"))
15 | }
16 |
17 | repositories {
18 | maven("https://jitpack.io")
19 | mavenCentral()
20 | }
21 |
22 | dependencies {
23 | compileOnly(group = "org.spongepowered", name = "mixin", version = "0.8.5")
24 | implementation(project(":mc2discord-core"))
25 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/common/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | id("java-library")
3 | id("org.spongepowered.gradle.vanilla")
4 | }
5 |
6 | val sharedProperties = readProperties(file("../../shared.properties"))
7 |
8 | base {
9 | archivesName.set("${sharedProperties["modId"]}-common-${rootProject.extra["minecraftDisplayVersion"]}")
10 | }
11 |
12 | minecraft {
13 | version(rootProject.extra["minecraftVersion"] as String)
14 | accessWideners(file("src/main/resources/${sharedProperties["modId"]}.accesswidener"))
15 | }
16 |
17 | repositories {
18 | maven("https://jitpack.io")
19 | mavenCentral()
20 | }
21 |
22 | dependencies {
23 | compileOnly(group = "org.spongepowered", name = "mixin", version = "0.8.5")
24 | implementation(project(":mc2discord-core"))
25 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/common/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | id("java-library")
3 | id("org.spongepowered.gradle.vanilla")
4 | }
5 |
6 | val sharedProperties = readProperties(file("../../shared.properties"))
7 |
8 | base {
9 | archivesName.set("${sharedProperties["modId"]}-common-${rootProject.extra["minecraftDisplayVersion"]}")
10 | }
11 |
12 | minecraft {
13 | version(rootProject.extra["minecraftVersion"] as String)
14 | accessWideners(file("src/main/resources/${sharedProperties["modId"]}.accesswidener"))
15 | }
16 |
17 | repositories {
18 | maven("https://jitpack.io")
19 | mavenCentral()
20 | }
21 |
22 | dependencies {
23 | compileOnly(group = "org.spongepowered", name = "mixin", version = "0.8.5")
24 | implementation(project(":mc2discord-core"))
25 | }
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/config/converters/RandomString.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.config.converters;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 | import java.util.Random;
6 |
7 | public class RandomString {
8 | private final List values;
9 | private final Random rand = new Random();
10 |
11 | public RandomString(String value) {
12 | this.values = new ArrayList<>();
13 | this.values.add(value);
14 | }
15 |
16 | public RandomString(List values) {
17 | this.values = values;
18 | }
19 |
20 | public List getValues() {
21 | return values;
22 | }
23 |
24 | public String asString() {
25 | return this.values.get(this.rand.nextInt(this.values.size()));
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/storage/LinkedPlayerEntry.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.storage;
2 |
3 | import com.google.gson.JsonObject;
4 | import discord4j.common.util.Snowflake;
5 |
6 | import java.util.UUID;
7 |
8 | public class LinkedPlayerEntry extends UserStorageEntry {
9 | private final Snowflake discordId;
10 |
11 | public LinkedPlayerEntry(UUID playerUuid, Snowflake discordId) {
12 | super(playerUuid);
13 | this.discordId = discordId;
14 | }
15 |
16 | public Snowflake getDiscordId() {
17 | return discordId;
18 | }
19 |
20 | @Override
21 | protected void serialize(JsonObject data) {
22 | data.addProperty("uuid", this.getPlayerUuid().toString());
23 | data.addProperty("discord_id", this.discordId.asLong());
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/mc2discord-1.18.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/PlayerCompletedAdvancementCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.advancements.Advancement;
6 | import net.minecraft.server.level.ServerPlayer;
7 |
8 | public interface PlayerCompletedAdvancementCallback {
9 | Event EVENT = EventFactory.createArrayBacked(PlayerCompletedAdvancementCallback.class, (listeners) -> (player, advancement) -> {
10 | for (PlayerCompletedAdvancementCallback listener : listeners) {
11 | listener.onPlayerAdvancement(player, advancement);
12 | }
13 | });
14 |
15 | void onPlayerAdvancement(ServerPlayer playerEntity, Advancement advancement);
16 | }
--------------------------------------------------------------------------------
/mc2discord-1.19.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/PlayerCompletedAdvancementCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.advancements.Advancement;
6 | import net.minecraft.server.level.ServerPlayer;
7 |
8 | public interface PlayerCompletedAdvancementCallback {
9 | Event EVENT = EventFactory.createArrayBacked(PlayerCompletedAdvancementCallback.class, (listeners) -> (player, advancement) -> {
10 | for (PlayerCompletedAdvancementCallback listener : listeners) {
11 | listener.onPlayerAdvancement(player, advancement);
12 | }
13 | });
14 |
15 | void onPlayerAdvancement(ServerPlayer playerEntity, Advancement advancement);
16 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/PlayerCompletedAdvancementCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.advancements.Advancement;
6 | import net.minecraft.server.level.ServerPlayer;
7 |
8 | public interface PlayerCompletedAdvancementCallback {
9 | Event EVENT = EventFactory.createArrayBacked(PlayerCompletedAdvancementCallback.class, (listeners) -> (player, advancement) -> {
10 | for (PlayerCompletedAdvancementCallback listener : listeners) {
11 | listener.onPlayerAdvancement(player, advancement);
12 | }
13 | });
14 |
15 | void onPlayerAdvancement(ServerPlayer playerEntity, Advancement advancement);
16 | }
--------------------------------------------------------------------------------
/mc2discord-1.18.x/forge/src/main/resources/META-INF/mods.toml:
--------------------------------------------------------------------------------
1 | modLoader = "javafml"
2 | loaderVersion = "${forgeVersionRange}"
3 | license = "Apache 2.0"
4 | issueTrackerURL = "${modIssueTrackerUrl}"
5 |
6 | [[mods]]
7 | modId = "${modId}"
8 | version = "${modVersion}"
9 | displayName = "${modName}"
10 | updateJSONURL = "${modUpdateJsonUrl}"
11 | displayURL = "${modDisplayUrl}"
12 | #logoFile = ""
13 | #credits = ""
14 | authors = "${modAuthors}"
15 | displayTest = "IGNORE_SERVER_VERSION"
16 | description = '''${modDescription}'''
17 |
18 | [[dependencies.${ modId }]]
19 | modId = "forge"
20 | mandatory = true
21 | versionRange = "${forgeVersionRange}"
22 | ordering = "NONE"
23 | side = "BOTH"
24 |
25 | [[dependencies.${ modId }]]
26 | modId = "minecraft"
27 | mandatory = true
28 | versionRange = "${forgeMinecraftVersionRange}"
29 | ordering = "NONE"
30 | side = "BOTH"
31 |
--------------------------------------------------------------------------------
/mc2discord-1.19.x/forge/src/main/resources/META-INF/mods.toml:
--------------------------------------------------------------------------------
1 | modLoader = "javafml"
2 | loaderVersion = "${forgeVersionRange}"
3 | license = "Apache 2.0"
4 | issueTrackerURL = "${modIssueTrackerUrl}"
5 |
6 | [[mods]]
7 | modId = "${modId}"
8 | version = "${modVersion}"
9 | displayName = "${modName}"
10 | updateJSONURL = "${modUpdateJsonUrl}"
11 | displayURL = "${modDisplayUrl}"
12 | #logoFile = ""
13 | #credits = ""
14 | authors = "${modAuthors}"
15 | displayTest = "IGNORE_SERVER_VERSION"
16 | description = '''${modDescription}'''
17 |
18 | [[dependencies.${ modId }]]
19 | modId = "forge"
20 | mandatory = true
21 | versionRange = "${forgeVersionRange}"
22 | ordering = "NONE"
23 | side = "BOTH"
24 |
25 | [[dependencies.${ modId }]]
26 | modId = "minecraft"
27 | mandatory = true
28 | versionRange = "${forgeMinecraftVersionRange}"
29 | ordering = "NONE"
30 | side = "BOTH"
31 |
--------------------------------------------------------------------------------
/mc2discord-1.20.1/forge/src/main/resources/META-INF/mods.toml:
--------------------------------------------------------------------------------
1 | modLoader = "javafml"
2 | loaderVersion = "${forgeVersionRange}"
3 | license = "Apache 2.0"
4 | issueTrackerURL = "${modIssueTrackerUrl}"
5 |
6 | [[mods]]
7 | modId = "${modId}"
8 | version = "${modVersion}"
9 | displayName = "${modName}"
10 | updateJSONURL = "${modUpdateJsonUrl}"
11 | displayURL = "${modDisplayUrl}"
12 | #logoFile = ""
13 | #credits = ""
14 | authors = "${modAuthors}"
15 | displayTest = "IGNORE_SERVER_VERSION"
16 | description = '''${modDescription}'''
17 |
18 | [[dependencies.${ modId }]]
19 | modId = "forge"
20 | mandatory = true
21 | versionRange = "${forgeVersionRange}"
22 | ordering = "NONE"
23 | side = "BOTH"
24 |
25 | [[dependencies.${ modId }]]
26 | modId = "minecraft"
27 | mandatory = true
28 | versionRange = "${forgeMinecraftVersionRange}"
29 | ordering = "NONE"
30 | side = "BOTH"
31 |
--------------------------------------------------------------------------------
/mc2discord-1.20.x/forge/src/main/resources/META-INF/mods.toml:
--------------------------------------------------------------------------------
1 | modLoader = "javafml"
2 | loaderVersion = "${forgeVersionRange}"
3 | license = "Apache 2.0"
4 | issueTrackerURL = "${modIssueTrackerUrl}"
5 |
6 | [[mods]]
7 | modId = "${modId}"
8 | version = "${modVersion}"
9 | displayName = "${modName}"
10 | updateJSONURL = "${modUpdateJsonUrl}"
11 | displayURL = "${modDisplayUrl}"
12 | #logoFile = ""
13 | #credits = ""
14 | authors = "${modAuthors}"
15 | displayTest = "IGNORE_SERVER_VERSION"
16 | description = '''${modDescription}'''
17 |
18 | [[dependencies.${ modId }]]
19 | modId = "forge"
20 | mandatory = true
21 | versionRange = "${forgeVersionRange}"
22 | ordering = "NONE"
23 | side = "BOTH"
24 |
25 | [[dependencies.${ modId }]]
26 | modId = "minecraft"
27 | mandatory = true
28 | versionRange = "${forgeMinecraftVersionRange}"
29 | ordering = "NONE"
30 | side = "BOTH"
31 |
--------------------------------------------------------------------------------
/mc2discord-1.21.5/forge/src/main/resources/META-INF/mods.toml:
--------------------------------------------------------------------------------
1 | modLoader = "javafml"
2 | loaderVersion = "${forgeVersionRange}"
3 | license = "Apache 2.0"
4 | issueTrackerURL = "${modIssueTrackerUrl}"
5 |
6 | [[mods]]
7 | modId = "${modId}"
8 | version = "${modVersion}"
9 | displayName = "${modName}"
10 | updateJSONURL = "${modUpdateJsonUrl}"
11 | displayURL = "${modDisplayUrl}"
12 | #logoFile = ""
13 | #credits = ""
14 | authors = "${modAuthors}"
15 | displayTest = "IGNORE_SERVER_VERSION"
16 | description = '''${modDescription}'''
17 |
18 | [[dependencies.${ modId }]]
19 | modId = "forge"
20 | mandatory = true
21 | versionRange = "${forgeVersionRange}"
22 | ordering = "NONE"
23 | side = "BOTH"
24 |
25 | [[dependencies.${ modId }]]
26 | modId = "minecraft"
27 | mandatory = true
28 | versionRange = "${forgeMinecraftVersionRange}"
29 | ordering = "NONE"
30 | side = "BOTH"
31 |
--------------------------------------------------------------------------------
/mc2discord-1.21.x/forge/src/main/resources/META-INF/mods.toml:
--------------------------------------------------------------------------------
1 | modLoader = "javafml"
2 | loaderVersion = "${forgeVersionRange}"
3 | license = "Apache 2.0"
4 | issueTrackerURL = "${modIssueTrackerUrl}"
5 |
6 | [[mods]]
7 | modId = "${modId}"
8 | version = "${modVersion}"
9 | displayName = "${modName}"
10 | updateJSONURL = "${modUpdateJsonUrl}"
11 | displayURL = "${modDisplayUrl}"
12 | #logoFile = ""
13 | #credits = ""
14 | authors = "${modAuthors}"
15 | displayTest = "IGNORE_SERVER_VERSION"
16 | description = '''${modDescription}'''
17 |
18 | [[dependencies.${ modId }]]
19 | modId = "forge"
20 | mandatory = true
21 | versionRange = "${forgeVersionRange}"
22 | ordering = "NONE"
23 | side = "BOTH"
24 |
25 | [[dependencies.${ modId }]]
26 | modId = "minecraft"
27 | mandatory = true
28 | versionRange = "${forgeMinecraftVersionRange}"
29 | ordering = "NONE"
30 | side = "BOTH"
31 |
--------------------------------------------------------------------------------
/mc2discord-1.20.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/PlayerCompletedAdvancementCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.advancements.AdvancementHolder;
6 | import net.minecraft.server.level.ServerPlayer;
7 |
8 | public interface PlayerCompletedAdvancementCallback {
9 | Event EVENT = EventFactory.createArrayBacked(PlayerCompletedAdvancementCallback.class, (listeners) -> (player, advancement) -> {
10 | for (PlayerCompletedAdvancementCallback listener : listeners) {
11 | listener.onPlayerAdvancement(player, advancement);
12 | }
13 | });
14 |
15 | void onPlayerAdvancement(ServerPlayer playerEntity, AdvancementHolder advancement);
16 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/PlayerCompletedAdvancementCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.advancements.AdvancementHolder;
6 | import net.minecraft.server.level.ServerPlayer;
7 |
8 | public interface PlayerCompletedAdvancementCallback {
9 | Event EVENT = EventFactory.createArrayBacked(PlayerCompletedAdvancementCallback.class, (listeners) -> (player, advancement) -> {
10 | for (PlayerCompletedAdvancementCallback listener : listeners) {
11 | listener.onPlayerAdvancement(player, advancement);
12 | }
13 | });
14 |
15 | void onPlayerAdvancement(ServerPlayer playerEntity, AdvancementHolder advancement);
16 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/PlayerCompletedAdvancementCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import net.fabricmc.fabric.api.event.Event;
4 | import net.fabricmc.fabric.api.event.EventFactory;
5 | import net.minecraft.advancements.AdvancementHolder;
6 | import net.minecraft.server.level.ServerPlayer;
7 |
8 | public interface PlayerCompletedAdvancementCallback {
9 | Event EVENT = EventFactory.createArrayBacked(PlayerCompletedAdvancementCallback.class, (listeners) -> (player, advancement) -> {
10 | for (PlayerCompletedAdvancementCallback listener : listeners) {
11 | listener.onPlayerAdvancement(player, advancement);
12 | }
13 | });
14 |
15 | void onPlayerAdvancement(ServerPlayer playerEntity, AdvancementHolder advancement);
16 | }
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/storage/HiddenPlayerList.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.storage;
2 |
3 | import com.google.gson.JsonObject;
4 |
5 | import java.io.File;
6 | import java.io.IOException;
7 | import java.util.UUID;
8 |
9 | public class HiddenPlayerList extends UserStorageList {
10 | private static final File HIDDEN_PLAYERS_FILE = new File("m2d-hidden-players.json");
11 |
12 | public HiddenPlayerList() {
13 | super(HIDDEN_PLAYERS_FILE);
14 |
15 | try {
16 | this.load();
17 | } catch (IOException e) {
18 | throw new RuntimeException(e);
19 | }
20 | }
21 |
22 | @Override
23 | protected HiddenPlayerEntry createEntry(JsonObject entryData) {
24 | return new HiddenPlayerEntry(UUID.fromString(entryData.get("uuid").getAsString()));
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/mc2discord-1.18.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/mixin/ServerPlayerMixin.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.mixin;
2 |
3 | import fr.denisd3d.mc2discord.fabric.events.PlayerDeathCallback;
4 | import net.minecraft.server.level.ServerPlayer;
5 | import net.minecraft.world.damagesource.DamageSource;
6 | import org.spongepowered.asm.mixin.Mixin;
7 | import org.spongepowered.asm.mixin.injection.At;
8 | import org.spongepowered.asm.mixin.injection.Inject;
9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
10 |
11 | @Mixin(ServerPlayer.class)
12 | public class ServerPlayerMixin {
13 |
14 | @Inject(method = "die", at = @At(value = "TAIL"))
15 | private void onPlayerDeath(DamageSource damageSource, CallbackInfo ci) {
16 | ServerPlayer player = (ServerPlayer) (Object) this;
17 | PlayerDeathCallback.EVENT.invoker().onPlayerDeath(player, damageSource);
18 | }
19 | }
--------------------------------------------------------------------------------
/mc2discord-1.19.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/mixin/ServerPlayerMixin.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.mixin;
2 |
3 | import fr.denisd3d.mc2discord.fabric.events.PlayerDeathCallback;
4 | import net.minecraft.server.level.ServerPlayer;
5 | import net.minecraft.world.damagesource.DamageSource;
6 | import org.spongepowered.asm.mixin.Mixin;
7 | import org.spongepowered.asm.mixin.injection.At;
8 | import org.spongepowered.asm.mixin.injection.Inject;
9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
10 |
11 | @Mixin(ServerPlayer.class)
12 | public class ServerPlayerMixin {
13 |
14 | @Inject(method = "die", at = @At(value = "TAIL"))
15 | private void onPlayerDeath(DamageSource damageSource, CallbackInfo ci) {
16 | ServerPlayer player = (ServerPlayer) (Object) this;
17 | PlayerDeathCallback.EVENT.invoker().onPlayerDeath(player, damageSource);
18 | }
19 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/mixin/ServerPlayerMixin.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.mixin;
2 |
3 | import fr.denisd3d.mc2discord.fabric.events.PlayerDeathCallback;
4 | import net.minecraft.server.level.ServerPlayer;
5 | import net.minecraft.world.damagesource.DamageSource;
6 | import org.spongepowered.asm.mixin.Mixin;
7 | import org.spongepowered.asm.mixin.injection.At;
8 | import org.spongepowered.asm.mixin.injection.Inject;
9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
10 |
11 | @Mixin(ServerPlayer.class)
12 | public class ServerPlayerMixin {
13 |
14 | @Inject(method = "die", at = @At(value = "TAIL"))
15 | private void onPlayerDeath(DamageSource damageSource, CallbackInfo ci) {
16 | ServerPlayer player = (ServerPlayer) (Object) this;
17 | PlayerDeathCallback.EVENT.invoker().onPlayerDeath(player, damageSource);
18 | }
19 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/mixin/ServerPlayerMixin.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.mixin;
2 |
3 | import fr.denisd3d.mc2discord.fabric.events.PlayerDeathCallback;
4 | import net.minecraft.server.level.ServerPlayer;
5 | import net.minecraft.world.damagesource.DamageSource;
6 | import org.spongepowered.asm.mixin.Mixin;
7 | import org.spongepowered.asm.mixin.injection.At;
8 | import org.spongepowered.asm.mixin.injection.Inject;
9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
10 |
11 | @Mixin(ServerPlayer.class)
12 | public class ServerPlayerMixin {
13 |
14 | @Inject(method = "die", at = @At(value = "TAIL"))
15 | private void onPlayerDeath(DamageSource damageSource, CallbackInfo ci) {
16 | ServerPlayer player = (ServerPlayer) (Object) this;
17 | PlayerDeathCallback.EVENT.invoker().onPlayerDeath(player, damageSource);
18 | }
19 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/mixin/ServerPlayerMixin.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.mixin;
2 |
3 | import fr.denisd3d.mc2discord.fabric.events.PlayerDeathCallback;
4 | import net.minecraft.server.level.ServerPlayer;
5 | import net.minecraft.world.damagesource.DamageSource;
6 | import org.spongepowered.asm.mixin.Mixin;
7 | import org.spongepowered.asm.mixin.injection.At;
8 | import org.spongepowered.asm.mixin.injection.Inject;
9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
10 |
11 | @Mixin(ServerPlayer.class)
12 | public class ServerPlayerMixin {
13 |
14 | @Inject(method = "die", at = @At(value = "TAIL"))
15 | private void onPlayerDeath(DamageSource damageSource, CallbackInfo ci) {
16 | ServerPlayer player = (ServerPlayer) (Object) this;
17 | PlayerDeathCallback.EVENT.invoker().onPlayerDeath(player, damageSource);
18 | }
19 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/mixin/ServerPlayerMixin.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.mixin;
2 |
3 | import fr.denisd3d.mc2discord.fabric.events.PlayerDeathCallback;
4 | import net.minecraft.server.level.ServerPlayer;
5 | import net.minecraft.world.damagesource.DamageSource;
6 | import org.spongepowered.asm.mixin.Mixin;
7 | import org.spongepowered.asm.mixin.injection.At;
8 | import org.spongepowered.asm.mixin.injection.Inject;
9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
10 |
11 | @Mixin(ServerPlayer.class)
12 | public class ServerPlayerMixin {
13 |
14 | @Inject(method = "die", at = @At(value = "TAIL"))
15 | private void onPlayerDeath(DamageSource damageSource, CallbackInfo ci) {
16 | ServerPlayer player = (ServerPlayer) (Object) this;
17 | PlayerDeathCallback.EVENT.invoker().onPlayerDeath(player, damageSource);
18 | }
19 | }
--------------------------------------------------------------------------------
/mc2discord-1.18.x/fabric/src/main/resources/fabric.mod.json:
--------------------------------------------------------------------------------
1 | {
2 | "schemaVersion": 1,
3 | "id": "${modId}",
4 | "version": "${modVersion}",
5 | "name": "${modName}",
6 | "description": "${modDescription}",
7 | "authors": [
8 | "${modAuthors}"
9 | ],
10 | "contact": {
11 | "homepage": "${modDisplayUrl}"
12 | },
13 | "license": "Apache 2.0",
14 | "environment": "*",
15 | "entrypoints": {
16 | "main": [
17 | "fr.denisd3d.mc2discord.fabric.Mc2DiscordFabric"
18 | ]
19 | },
20 | "mixins": [
21 | "mc2discord.mixins.json",
22 | "mc2discord.fabric.mixins.json"
23 | ],
24 | "accessWidener" : "${modId}.accesswidener",
25 | "depends": {
26 | "fabricloader": ">=${fabricLoaderVersion}",
27 | "minecraft": "${fabricMinecraftVersionRange}",
28 | "java": ">=${javaVersion}",
29 | "fabric-api": "*"
30 | }
31 | }
--------------------------------------------------------------------------------
/mc2discord-1.19.x/fabric/src/main/resources/fabric.mod.json:
--------------------------------------------------------------------------------
1 | {
2 | "schemaVersion": 1,
3 | "id": "${modId}",
4 | "version": "${modVersion}",
5 | "name": "${modName}",
6 | "description": "${modDescription}",
7 | "authors": [
8 | "${modAuthors}"
9 | ],
10 | "contact": {
11 | "homepage": "${modDisplayUrl}"
12 | },
13 | "license": "Apache 2.0",
14 | "environment": "*",
15 | "entrypoints": {
16 | "main": [
17 | "fr.denisd3d.mc2discord.fabric.Mc2DiscordFabric"
18 | ]
19 | },
20 | "mixins": [
21 | "mc2discord.mixins.json",
22 | "mc2discord.fabric.mixins.json"
23 | ],
24 | "accessWidener" : "${modId}.accesswidener",
25 | "depends": {
26 | "fabricloader": ">=${fabricLoaderVersion}",
27 | "minecraft": "${fabricMinecraftVersionRange}",
28 | "java": ">=${javaVersion}",
29 | "fabric-api": "*"
30 | }
31 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/fabric/src/main/resources/fabric.mod.json:
--------------------------------------------------------------------------------
1 | {
2 | "schemaVersion": 1,
3 | "id": "${modId}",
4 | "version": "${modVersion}",
5 | "name": "${modName}",
6 | "description": "${modDescription}",
7 | "authors": [
8 | "${modAuthors}"
9 | ],
10 | "contact": {
11 | "homepage": "${modDisplayUrl}"
12 | },
13 | "license": "Apache 2.0",
14 | "environment": "*",
15 | "entrypoints": {
16 | "main": [
17 | "fr.denisd3d.mc2discord.fabric.Mc2DiscordFabric"
18 | ]
19 | },
20 | "mixins": [
21 | "mc2discord.mixins.json",
22 | "mc2discord.fabric.mixins.json"
23 | ],
24 | "accessWidener" : "${modId}.accesswidener",
25 | "depends": {
26 | "fabricloader": ">=${fabricLoaderVersion}",
27 | "minecraft": "${fabricMinecraftVersionRange}",
28 | "java": ">=${javaVersion}",
29 | "fabric-api": "*"
30 | }
31 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/fabric/src/main/resources/fabric.mod.json:
--------------------------------------------------------------------------------
1 | {
2 | "schemaVersion": 1,
3 | "id": "${modId}",
4 | "version": "${modVersion}",
5 | "name": "${modName}",
6 | "description": "${modDescription}",
7 | "authors": [
8 | "${modAuthors}"
9 | ],
10 | "contact": {
11 | "homepage": "${modDisplayUrl}"
12 | },
13 | "license": "Apache 2.0",
14 | "environment": "*",
15 | "entrypoints": {
16 | "main": [
17 | "fr.denisd3d.mc2discord.fabric.Mc2DiscordFabric"
18 | ]
19 | },
20 | "mixins": [
21 | "mc2discord.mixins.json",
22 | "mc2discord.fabric.mixins.json"
23 | ],
24 | "accessWidener" : "${modId}.accesswidener",
25 | "depends": {
26 | "fabricloader": ">=${fabricLoaderVersion}",
27 | "minecraft": "${fabricMinecraftVersionRange}",
28 | "java": ">=${javaVersion}",
29 | "fabric-api": "*"
30 | }
31 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/fabric/src/main/resources/fabric.mod.json:
--------------------------------------------------------------------------------
1 | {
2 | "schemaVersion": 1,
3 | "id": "${modId}",
4 | "version": "${modVersion}",
5 | "name": "${modName}",
6 | "description": "${modDescription}",
7 | "authors": [
8 | "${modAuthors}"
9 | ],
10 | "contact": {
11 | "homepage": "${modDisplayUrl}"
12 | },
13 | "license": "Apache 2.0",
14 | "environment": "*",
15 | "entrypoints": {
16 | "main": [
17 | "fr.denisd3d.mc2discord.fabric.Mc2DiscordFabric"
18 | ]
19 | },
20 | "mixins": [
21 | "mc2discord.mixins.json",
22 | "mc2discord.fabric.mixins.json"
23 | ],
24 | "accessWidener" : "${modId}.accesswidener",
25 | "depends": {
26 | "fabricloader": ">=${fabricLoaderVersion}",
27 | "minecraft": "${fabricMinecraftVersionRange}",
28 | "java": ">=${javaVersion}",
29 | "fabric-api": "*"
30 | }
31 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/fabric/src/main/resources/fabric.mod.json:
--------------------------------------------------------------------------------
1 | {
2 | "schemaVersion": 1,
3 | "id": "${modId}",
4 | "version": "${modVersion}",
5 | "name": "${modName}",
6 | "description": "${modDescription}",
7 | "authors": [
8 | "${modAuthors}"
9 | ],
10 | "contact": {
11 | "homepage": "${modDisplayUrl}"
12 | },
13 | "license": "Apache 2.0",
14 | "environment": "*",
15 | "entrypoints": {
16 | "main": [
17 | "fr.denisd3d.mc2discord.fabric.Mc2DiscordFabric"
18 | ]
19 | },
20 | "mixins": [
21 | "mc2discord.mixins.json",
22 | "mc2discord.fabric.mixins.json"
23 | ],
24 | "accessWidener" : "${modId}.accesswidener",
25 | "depends": {
26 | "fabricloader": ">=${fabricLoaderVersion}",
27 | "minecraft": "${fabricMinecraftVersionRange}",
28 | "java": ">=${javaVersion}",
29 | "fabric-api": "*"
30 | }
31 | }
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/storage/LinkedPlayerList.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.storage;
2 |
3 | import com.google.gson.JsonObject;
4 | import discord4j.common.util.Snowflake;
5 |
6 | import java.io.File;
7 | import java.io.IOException;
8 | import java.util.UUID;
9 |
10 | public class LinkedPlayerList extends UserStorageList {
11 | private static final File LINKED_PLAYERS_FILE = new File("m2d-linked-players.json");
12 |
13 | public LinkedPlayerList() {
14 | super(LINKED_PLAYERS_FILE);
15 |
16 | try {
17 | this.load();
18 | } catch (IOException e) {
19 | throw new RuntimeException(e);
20 | }
21 | }
22 |
23 | @Override
24 | protected LinkedPlayerEntry createEntry(JsonObject entryData) {
25 | return new LinkedPlayerEntry(UUID.fromString(entryData.get("uuid").getAsString()), Snowflake.of(entryData.get("discord_id").getAsLong()));
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/mc2discord-1.18.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/Mc2DiscordFabric.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric;
2 |
3 | import fr.denisd3d.mc2discord.minecraft.Mc2DiscordMinecraft;
4 | import net.fabricmc.api.ModInitializer;
5 | import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback;
6 | import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
7 |
8 |
9 | public class Mc2DiscordFabric implements ModInitializer {
10 | @Override
11 | public void onInitialize() {
12 | ServerLifecycleEvents.SERVER_STARTING.register(Mc2DiscordMinecraft::onServerStarting);
13 | ServerLifecycleEvents.SERVER_STARTED.register(Mc2DiscordMinecraft::onServerStarted);
14 | ServerLifecycleEvents.SERVER_STOPPED.register(Mc2DiscordMinecraft::onServerStopped);
15 | CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> Mc2DiscordMinecraft.onRegisterCommands(dispatcher));
16 |
17 | FabricEvents.register();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/mc2discord-1.18.x/settings.gradle:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | gradlePluginPortal()
4 | maven {
5 | name = 'Forge'
6 | url = 'https://maven.minecraftforge.net/'
7 | }
8 | maven {
9 | name = 'Fabric'
10 | url = 'https://maven.fabricmc.net/'
11 | }
12 | maven {
13 | name = 'Sponge Snapshots'
14 | url = 'https://repo.spongepowered.org/repository/maven-public/'
15 | }
16 | }
17 | }
18 |
19 | plugins {
20 | id("org.gradle.toolchains.foojay-resolver-convention") version("0.5.0")
21 | }
22 |
23 | // This should match the folder name of the project, or else IDEA may complain (see https://youtrack.jetbrains.com/issue/IDEA-317606)
24 | rootProject.name = 'mc2discord-1.18.x'
25 | include(":mc2discord-core")
26 | project(":mc2discord-core").projectDir = file("../mc2discord-core")
27 |
28 | include("common")
29 | include("fabric")
30 | include("forge")
31 |
--------------------------------------------------------------------------------
/mc2discord-1.19.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/Mc2DiscordFabric.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric;
2 |
3 | import fr.denisd3d.mc2discord.minecraft.Mc2DiscordMinecraft;
4 | import net.fabricmc.api.ModInitializer;
5 | import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
6 | import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
7 |
8 |
9 | public class Mc2DiscordFabric implements ModInitializer {
10 | @Override
11 | public void onInitialize() {
12 | ServerLifecycleEvents.SERVER_STARTING.register(Mc2DiscordMinecraft::onServerStarting);
13 | ServerLifecycleEvents.SERVER_STARTED.register(Mc2DiscordMinecraft::onServerStarted);
14 | ServerLifecycleEvents.SERVER_STOPPED.register(Mc2DiscordMinecraft::onServerStopped);
15 | CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> Mc2DiscordMinecraft.onRegisterCommands(dispatcher));
16 |
17 | FabricEvents.register();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/mc2discord-1.19.x/settings.gradle:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | gradlePluginPortal()
4 | maven {
5 | name = 'Forge'
6 | url = 'https://maven.minecraftforge.net/'
7 | }
8 | maven {
9 | name = 'Fabric'
10 | url = 'https://maven.fabricmc.net/'
11 | }
12 | maven {
13 | name = 'Sponge Snapshots'
14 | url = 'https://repo.spongepowered.org/repository/maven-public/'
15 | }
16 | }
17 | }
18 |
19 | plugins {
20 | id("org.gradle.toolchains.foojay-resolver-convention") version("0.5.0")
21 | }
22 |
23 | // This should match the folder name of the project, or else IDEA may complain (see https://youtrack.jetbrains.com/issue/IDEA-317606)
24 | rootProject.name = 'mc2discord-1.19.x'
25 | include(":mc2discord-core")
26 | project(":mc2discord-core").projectDir = file("../mc2discord-core")
27 |
28 | include("common")
29 | include("fabric")
30 | include("forge")
31 |
--------------------------------------------------------------------------------
/mc2discord-1.20.1/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/Mc2DiscordFabric.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric;
2 |
3 | import fr.denisd3d.mc2discord.minecraft.Mc2DiscordMinecraft;
4 | import net.fabricmc.api.ModInitializer;
5 | import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
6 | import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
7 |
8 |
9 | public class Mc2DiscordFabric implements ModInitializer {
10 | @Override
11 | public void onInitialize() {
12 | ServerLifecycleEvents.SERVER_STARTING.register(Mc2DiscordMinecraft::onServerStarting);
13 | ServerLifecycleEvents.SERVER_STARTED.register(Mc2DiscordMinecraft::onServerStarted);
14 | ServerLifecycleEvents.SERVER_STOPPED.register(Mc2DiscordMinecraft::onServerStopped);
15 | CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> Mc2DiscordMinecraft.onRegisterCommands(dispatcher));
16 |
17 | FabricEvents.register();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/mc2discord-1.20.1/settings.gradle:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | gradlePluginPortal()
4 | maven {
5 | name = 'Forge'
6 | url = 'https://maven.minecraftforge.net/'
7 | }
8 | maven {
9 | name = 'Fabric'
10 | url = 'https://maven.fabricmc.net/'
11 | }
12 | maven {
13 | name = 'Sponge Snapshots'
14 | url = 'https://repo.spongepowered.org/repository/maven-public/'
15 | }
16 | }
17 | }
18 |
19 | plugins {
20 | id("org.gradle.toolchains.foojay-resolver-convention") version("0.5.0")
21 | }
22 |
23 | // This should match the folder name of the project, or else IDEA may complain (see https://youtrack.jetbrains.com/issue/IDEA-317606)
24 | rootProject.name = 'mc2discord-1.20.1'
25 | include(":mc2discord-core")
26 | project(":mc2discord-core").projectDir = file("../mc2discord-core")
27 |
28 | include("common")
29 | include("fabric")
30 | include("forge")
31 |
--------------------------------------------------------------------------------
/mc2discord-1.20.x/settings.gradle:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | gradlePluginPortal()
4 | maven {
5 | name = 'Forge'
6 | url = 'https://maven.minecraftforge.net/'
7 | }
8 | maven {
9 | name = 'Fabric'
10 | url = 'https://maven.fabricmc.net/'
11 | }
12 | maven {
13 | name = 'Sponge Snapshots'
14 | url = 'https://repo.spongepowered.org/repository/maven-public/'
15 | }
16 | }
17 | }
18 |
19 | plugins {
20 | id("org.gradle.toolchains.foojay-resolver-convention") version("0.8.0")
21 | }
22 |
23 | // This should match the folder name of the project, or else IDEA may complain (see https://youtrack.jetbrains.com/issue/IDEA-317606)
24 | rootProject.name = 'mc2discord-1.20.x'
25 | include(":mc2discord-core")
26 | project(":mc2discord-core").projectDir = file("../mc2discord-core")
27 |
28 | include("common")
29 | include("fabric")
30 | include("forge")
31 |
--------------------------------------------------------------------------------
/mc2discord-1.21.5/settings.gradle:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | gradlePluginPortal()
4 | maven {
5 | name = 'Forge'
6 | url = 'https://maven.minecraftforge.net/'
7 | }
8 | maven {
9 | name = 'Fabric'
10 | url = 'https://maven.fabricmc.net/'
11 | }
12 | maven {
13 | name = 'Sponge Snapshots'
14 | url = 'https://repo.spongepowered.org/repository/maven-public/'
15 | }
16 | }
17 | }
18 |
19 | plugins {
20 | id("org.gradle.toolchains.foojay-resolver-convention") version("0.8.0")
21 | }
22 |
23 | // This should match the folder name of the project, or else IDEA may complain (see https://youtrack.jetbrains.com/issue/IDEA-317606)
24 | rootProject.name = 'mc2discord-1.21.x'
25 | include(":mc2discord-core")
26 | project(":mc2discord-core").projectDir = file("../mc2discord-core")
27 |
28 | include("common")
29 | include("fabric")
30 | include("forge")
31 |
--------------------------------------------------------------------------------
/mc2discord-1.21.x/settings.gradle:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | gradlePluginPortal()
4 | maven {
5 | name = 'Forge'
6 | url = 'https://maven.minecraftforge.net/'
7 | }
8 | maven {
9 | name = 'Fabric'
10 | url = 'https://maven.fabricmc.net/'
11 | }
12 | maven {
13 | name = 'Sponge Snapshots'
14 | url = 'https://repo.spongepowered.org/repository/maven-public/'
15 | }
16 | }
17 | }
18 |
19 | plugins {
20 | id("org.gradle.toolchains.foojay-resolver-convention") version("0.8.0")
21 | }
22 |
23 | // This should match the folder name of the project, or else IDEA may complain (see https://youtrack.jetbrains.com/issue/IDEA-317606)
24 | rootProject.name = 'mc2discord-1.21.x'
25 | include(":mc2discord-core")
26 | project(":mc2discord-core").projectDir = file("../mc2discord-core")
27 |
28 | include("common")
29 | include("fabric")
30 | include("forge")
31 |
--------------------------------------------------------------------------------
/mc2discord-1.18.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/CommandExecuteCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import com.mojang.brigadier.ParseResults;
4 | import net.fabricmc.fabric.api.event.Event;
5 | import net.fabricmc.fabric.api.event.EventFactory;
6 | import net.minecraft.commands.CommandSourceStack;
7 | import net.minecraft.world.InteractionResult;
8 |
9 | public interface CommandExecuteCallback {
10 | Event EVENT = EventFactory.createArrayBacked(CommandExecuteCallback.class, (listeners) -> (parseResults) -> {
11 | for (CommandExecuteCallback listener : listeners) {
12 | InteractionResult result = listener.onCommandExecute(parseResults);
13 |
14 | if(result != InteractionResult.PASS) {
15 | return result;
16 | }
17 | }
18 |
19 | return InteractionResult.PASS;
20 | });
21 |
22 | InteractionResult onCommandExecute(ParseResults parseResults);
23 | }
--------------------------------------------------------------------------------
/mc2discord-1.19.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/CommandExecuteCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import com.mojang.brigadier.ParseResults;
4 | import net.fabricmc.fabric.api.event.Event;
5 | import net.fabricmc.fabric.api.event.EventFactory;
6 | import net.minecraft.commands.CommandSourceStack;
7 | import net.minecraft.world.InteractionResult;
8 |
9 | public interface CommandExecuteCallback {
10 | Event EVENT = EventFactory.createArrayBacked(CommandExecuteCallback.class, (listeners) -> (parseResults) -> {
11 | for (CommandExecuteCallback listener : listeners) {
12 | InteractionResult result = listener.onCommandExecute(parseResults);
13 |
14 | if(result != InteractionResult.PASS) {
15 | return result;
16 | }
17 | }
18 |
19 | return InteractionResult.PASS;
20 | });
21 |
22 | InteractionResult onCommandExecute(ParseResults parseResults);
23 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/CommandExecuteCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import com.mojang.brigadier.ParseResults;
4 | import net.fabricmc.fabric.api.event.Event;
5 | import net.fabricmc.fabric.api.event.EventFactory;
6 | import net.minecraft.commands.CommandSourceStack;
7 | import net.minecraft.world.InteractionResult;
8 |
9 | public interface CommandExecuteCallback {
10 | Event EVENT = EventFactory.createArrayBacked(CommandExecuteCallback.class, (listeners) -> (parseResults) -> {
11 | for (CommandExecuteCallback listener : listeners) {
12 | InteractionResult result = listener.onCommandExecute(parseResults);
13 |
14 | if(result != InteractionResult.PASS) {
15 | return result;
16 | }
17 | }
18 |
19 | return InteractionResult.PASS;
20 | });
21 |
22 | InteractionResult onCommandExecute(ParseResults parseResults);
23 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/CommandExecuteCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import com.mojang.brigadier.ParseResults;
4 | import net.fabricmc.fabric.api.event.Event;
5 | import net.fabricmc.fabric.api.event.EventFactory;
6 | import net.minecraft.commands.CommandSourceStack;
7 | import net.minecraft.world.InteractionResult;
8 |
9 | public interface CommandExecuteCallback {
10 | Event EVENT = EventFactory.createArrayBacked(CommandExecuteCallback.class, (listeners) -> (parseResults) -> {
11 | for (CommandExecuteCallback listener : listeners) {
12 | InteractionResult result = listener.onCommandExecute(parseResults);
13 |
14 | if(result != InteractionResult.PASS) {
15 | return result;
16 | }
17 | }
18 |
19 | return InteractionResult.PASS;
20 | });
21 |
22 | InteractionResult onCommandExecute(ParseResults parseResults);
23 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/CommandExecuteCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import com.mojang.brigadier.ParseResults;
4 | import net.fabricmc.fabric.api.event.Event;
5 | import net.fabricmc.fabric.api.event.EventFactory;
6 | import net.minecraft.commands.CommandSourceStack;
7 | import net.minecraft.world.InteractionResult;
8 |
9 | public interface CommandExecuteCallback {
10 | Event EVENT = EventFactory.createArrayBacked(CommandExecuteCallback.class, (listeners) -> (parseResults) -> {
11 | for (CommandExecuteCallback listener : listeners) {
12 | InteractionResult result = listener.onCommandExecute(parseResults);
13 |
14 | if(result != InteractionResult.PASS) {
15 | return result;
16 | }
17 | }
18 |
19 | return InteractionResult.PASS;
20 | });
21 |
22 | InteractionResult onCommandExecute(ParseResults parseResults);
23 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/events/CommandExecuteCallback.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.events;
2 |
3 | import com.mojang.brigadier.ParseResults;
4 | import net.fabricmc.fabric.api.event.Event;
5 | import net.fabricmc.fabric.api.event.EventFactory;
6 | import net.minecraft.commands.CommandSourceStack;
7 | import net.minecraft.world.InteractionResult;
8 |
9 | public interface CommandExecuteCallback {
10 | Event EVENT = EventFactory.createArrayBacked(CommandExecuteCallback.class, (listeners) -> (parseResults) -> {
11 | for (CommandExecuteCallback listener : listeners) {
12 | InteractionResult result = listener.onCommandExecute(parseResults);
13 |
14 | if(result != InteractionResult.PASS) {
15 | return result;
16 | }
17 | }
18 |
19 | return InteractionResult.PASS;
20 | });
21 |
22 | InteractionResult onCommandExecute(ParseResults parseResults);
23 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/Mc2DiscordFabric.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric;
2 |
3 | import fr.denisd3d.mc2discord.minecraft.Mc2DiscordMinecraft;
4 | import net.fabricmc.api.ModInitializer;
5 | import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
6 | import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
7 |
8 |
9 | public class Mc2DiscordFabric implements ModInitializer {
10 | @Override
11 | public void onInitialize() {
12 | ServerLifecycleEvents.SERVER_STARTING.register(Mc2DiscordMinecraft::onServerStarting);
13 | ServerLifecycleEvents.SERVER_STARTED.register(Mc2DiscordMinecraft::onServerStarted);
14 | ServerLifecycleEvents.SERVER_STOPPED.register(Mc2DiscordMinecraft::onServerStopped);
15 | CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> Mc2DiscordMinecraft.onRegisterCommands(dispatcher, registryAccess));
16 |
17 | FabricEvents.register();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/mc2discord-1.21.5/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/Mc2DiscordFabric.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric;
2 |
3 | import fr.denisd3d.mc2discord.minecraft.Mc2DiscordMinecraft;
4 | import net.fabricmc.api.ModInitializer;
5 | import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
6 | import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
7 |
8 |
9 | public class Mc2DiscordFabric implements ModInitializer {
10 | @Override
11 | public void onInitialize() {
12 | ServerLifecycleEvents.SERVER_STARTING.register(Mc2DiscordMinecraft::onServerStarting);
13 | ServerLifecycleEvents.SERVER_STARTED.register(Mc2DiscordMinecraft::onServerStarted);
14 | ServerLifecycleEvents.SERVER_STOPPED.register(Mc2DiscordMinecraft::onServerStopped);
15 | CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> Mc2DiscordMinecraft.onRegisterCommands(dispatcher, registryAccess));
16 |
17 | FabricEvents.register();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/mc2discord-1.21.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/Mc2DiscordFabric.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric;
2 |
3 | import fr.denisd3d.mc2discord.minecraft.Mc2DiscordMinecraft;
4 | import net.fabricmc.api.ModInitializer;
5 | import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
6 | import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
7 |
8 |
9 | public class Mc2DiscordFabric implements ModInitializer {
10 | @Override
11 | public void onInitialize() {
12 | ServerLifecycleEvents.SERVER_STARTING.register(Mc2DiscordMinecraft::onServerStarting);
13 | ServerLifecycleEvents.SERVER_STARTED.register(Mc2DiscordMinecraft::onServerStarted);
14 | ServerLifecycleEvents.SERVER_STOPPED.register(Mc2DiscordMinecraft::onServerStopped);
15 | CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> Mc2DiscordMinecraft.onRegisterCommands(dispatcher, registryAccess));
16 |
17 | FabricEvents.register();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/entities/PlayerEntity.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.entities;
2 |
3 | import java.util.Map;
4 | import java.util.UUID;
5 | import java.util.function.BiFunction;
6 |
7 | public class PlayerEntity extends Entity {
8 | private static final String prefix = "player_";
9 |
10 | public final String name;
11 | public final String displayName;
12 | public final UUID uuid;
13 |
14 | public PlayerEntity(String name, String displayName, UUID uuid) {
15 | this.name = name;
16 | this.displayName = displayName.replaceAll("§.", "");
17 | this.uuid = uuid;
18 | }
19 |
20 | @Override
21 | public void getReplacements(Map replacements, Map> formatters) {
22 | replacements.put(prefix + "name", this.name);
23 | replacements.put(prefix + "display_name", this.displayName);
24 | replacements.put(prefix + "uuid", this.uuid != null ? this.uuid.toString() : "");
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/config/converters/SnowflakeConverter.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.config.converters;
2 |
3 | import com.electronwill.nightconfig.core.conversion.Converter;
4 | import discord4j.common.util.Snowflake;
5 | import fr.denisd3d.mc2discord.core.M2DUtils;
6 |
7 | public class SnowflakeConverter implements Converter {
8 | @Override
9 | public Snowflake convertToField(Object value) {
10 | if (value == null) {
11 | return M2DUtils.NIL_SNOWFLAKE;
12 | } else if (value instanceof String) {
13 | return Snowflake.of((String) value);
14 | } else if (value instanceof Number) {
15 | return Snowflake.of(((Number) value).longValue());
16 | } else {
17 | throw new IllegalArgumentException(
18 | "Cannot convert " + value + " to a Snowflake");
19 | }
20 | }
21 |
22 | @Override
23 | public Object convertFromField(Snowflake value) {
24 | return value.asLong();
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/mc2discord-1.19.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/mixin/CommandsMixin.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.mixin;
2 |
3 | import com.mojang.brigadier.ParseResults;
4 | import fr.denisd3d.mc2discord.fabric.events.CommandExecuteCallback;
5 | import net.minecraft.commands.CommandSourceStack;
6 | import net.minecraft.commands.Commands;
7 | import net.minecraft.world.InteractionResult;
8 | import org.spongepowered.asm.mixin.Mixin;
9 | import org.spongepowered.asm.mixin.injection.At;
10 | import org.spongepowered.asm.mixin.injection.Inject;
11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
12 |
13 | @Mixin(Commands.class)
14 | public class CommandsMixin {
15 |
16 | @Inject(method = "performCommand", at = @At("HEAD"), cancellable = true)
17 | private void execute(ParseResults parseResults, String command, CallbackInfoReturnable cir) {
18 | InteractionResult result = CommandExecuteCallback.EVENT.invoker().onCommandExecute(parseResults);
19 |
20 | if(result == InteractionResult.FAIL) {
21 | cir.setReturnValue(0);
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/mixin/CommandsMixin.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.mixin;
2 |
3 | import com.mojang.brigadier.ParseResults;
4 | import fr.denisd3d.mc2discord.fabric.events.CommandExecuteCallback;
5 | import net.minecraft.commands.CommandSourceStack;
6 | import net.minecraft.commands.Commands;
7 | import net.minecraft.world.InteractionResult;
8 | import org.spongepowered.asm.mixin.Mixin;
9 | import org.spongepowered.asm.mixin.injection.At;
10 | import org.spongepowered.asm.mixin.injection.Inject;
11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
12 |
13 | @Mixin(Commands.class)
14 | public class CommandsMixin {
15 |
16 | @Inject(method = "performCommand", at = @At("HEAD"), cancellable = true)
17 | private void execute(ParseResults parseResults, String command, CallbackInfoReturnable cir) {
18 | InteractionResult result = CommandExecuteCallback.EVENT.invoker().onCommandExecute(parseResults);
19 |
20 | if(result == InteractionResult.FAIL) {
21 | cir.setReturnValue(0);
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/.github/workflows/build-all.yml:
--------------------------------------------------------------------------------
1 | name: "Build all"
2 | run-name: Build all-${{ inputs.version }}
3 |
4 | on:
5 | workflow_dispatch:
6 | inputs:
7 | version:
8 | description: "Version"
9 | required: true
10 | default: "0.0.0-dev"
11 | workflow_call:
12 | inputs:
13 | version:
14 | required: true
15 | type: string
16 |
17 | jobs:
18 | build-1-18-x:
19 | uses: ./.github/workflows/build-1.18.x.yml
20 | with:
21 | version: ${{ inputs.version }}
22 |
23 | build-1-19-x:
24 | uses: ./.github/workflows/build-1.19.x.yml
25 | with:
26 | version: ${{ inputs.version }}
27 |
28 | build-1-20-1:
29 | uses: ./.github/workflows/build-1.20.1.yml
30 | with:
31 | version: ${{ inputs.version }}
32 |
33 | build-1-20-x:
34 | uses: ./.github/workflows/build-1.20.x.yml
35 | with:
36 | version: ${{ inputs.version }}
37 |
38 | build-1-21-x:
39 | uses: ./.github/workflows/build-1.21.x.yml
40 | with:
41 | version: ${{ inputs.version }}
42 |
43 | build-1-21-5:
44 | uses: ./.github/workflows/build-1.21.5.yml
45 | with:
46 | version: ${{ inputs.version }}
47 |
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/entities/AdvancementEntity.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.entities;
2 |
3 | import java.util.Map;
4 | import java.util.function.BiFunction;
5 |
6 | public class AdvancementEntity extends Entity {
7 | private static final String prefix = "advancement_";
8 | private final String path;
9 | private final String displayText;
10 | private final String title;
11 | private final String description;
12 |
13 | public AdvancementEntity(String path, String displayText, String title, String description) {
14 |
15 | this.path = path;
16 | this.displayText = displayText;
17 | this.title = title;
18 | this.description = description;
19 | }
20 |
21 | @Override
22 | public void getReplacements(Map replacements, Map> formatters) {
23 | replacements.put(prefix + "path", this.path);
24 | replacements.put(prefix + "display_text", this.displayText);
25 | replacements.put(prefix + "title", this.title);
26 | replacements.put(prefix + "description", this.description);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/mc2discord-1.20.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/mixin/CommandsMixin.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.mixin;
2 |
3 | import com.mojang.brigadier.ParseResults;
4 | import fr.denisd3d.mc2discord.fabric.events.CommandExecuteCallback;
5 | import net.minecraft.commands.CommandSourceStack;
6 | import net.minecraft.commands.Commands;
7 | import net.minecraft.world.InteractionResult;
8 | import org.spongepowered.asm.mixin.Mixin;
9 | import org.spongepowered.asm.mixin.injection.At;
10 | import org.spongepowered.asm.mixin.injection.Inject;
11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
13 |
14 | @Mixin(Commands.class)
15 | public class CommandsMixin {
16 |
17 | @Inject(method = "performCommand", at = @At("HEAD"), cancellable = true)
18 | private void execute(ParseResults parseResults, String command, CallbackInfo ci) {
19 | InteractionResult result = CommandExecuteCallback.EVENT.invoker().onCommandExecute(parseResults);
20 |
21 | if(result == InteractionResult.FAIL) {
22 | ci.cancel();
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/mixin/CommandsMixin.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.mixin;
2 |
3 | import com.mojang.brigadier.ParseResults;
4 | import fr.denisd3d.mc2discord.fabric.events.CommandExecuteCallback;
5 | import net.minecraft.commands.CommandSourceStack;
6 | import net.minecraft.commands.Commands;
7 | import net.minecraft.world.InteractionResult;
8 | import org.spongepowered.asm.mixin.Mixin;
9 | import org.spongepowered.asm.mixin.injection.At;
10 | import org.spongepowered.asm.mixin.injection.Inject;
11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
13 |
14 | @Mixin(Commands.class)
15 | public class CommandsMixin {
16 |
17 | @Inject(method = "performCommand", at = @At("HEAD"), cancellable = true)
18 | private void execute(ParseResults parseResults, String command, CallbackInfo ci) {
19 | InteractionResult result = CommandExecuteCallback.EVENT.invoker().onCommandExecute(parseResults);
20 |
21 | if(result == InteractionResult.FAIL) {
22 | ci.cancel();
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/mixin/CommandsMixin.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.mixin;
2 |
3 | import com.mojang.brigadier.ParseResults;
4 | import fr.denisd3d.mc2discord.fabric.events.CommandExecuteCallback;
5 | import net.minecraft.commands.CommandSourceStack;
6 | import net.minecraft.commands.Commands;
7 | import net.minecraft.world.InteractionResult;
8 | import org.spongepowered.asm.mixin.Mixin;
9 | import org.spongepowered.asm.mixin.injection.At;
10 | import org.spongepowered.asm.mixin.injection.Inject;
11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
13 |
14 | @Mixin(Commands.class)
15 | public class CommandsMixin {
16 |
17 | @Inject(method = "performCommand", at = @At("HEAD"), cancellable = true)
18 | private void execute(ParseResults parseResults, String command, CallbackInfo ci) {
19 | InteractionResult result = CommandExecuteCallback.EVENT.invoker().onCommandExecute(parseResults);
20 |
21 | if(result == InteractionResult.FAIL) {
22 | ci.cancel();
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/mc2discord-1.18.x/common/src/main/java/fr/denisd3d/mc2discord/minecraft/commands/DiscordCommandImpl.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.minecraft.commands;
2 |
3 | import com.mojang.brigadier.CommandDispatcher;
4 | import fr.denisd3d.mc2discord.core.M2DCommands;
5 | import net.minecraft.ChatFormatting;
6 | import net.minecraft.commands.CommandSourceStack;
7 | import net.minecraft.commands.Commands;
8 | import net.minecraft.network.chat.ClickEvent;
9 | import net.minecraft.network.chat.TextColor;
10 | import net.minecraft.network.chat.TextComponent;
11 |
12 | public class DiscordCommandImpl {
13 | public static void register(CommandDispatcher dispatcher) {
14 | dispatcher.register(Commands.literal("discord").executes(context -> {
15 | context.getSource().sendSuccess(new TextComponent(M2DCommands.getDiscordText())
16 | .withStyle(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, M2DCommands.getDiscordLink()))
17 | .withColor(TextColor.fromLegacyFormat(ChatFormatting.BLUE))
18 | .withUnderlined(true)), false);
19 | return 1;
20 | }));
21 | }
22 | }
--------------------------------------------------------------------------------
/mc2discord-1.19.x/common/src/main/java/fr/denisd3d/mc2discord/minecraft/commands/DiscordCommandImpl.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.minecraft.commands;
2 |
3 | import com.mojang.brigadier.CommandDispatcher;
4 | import fr.denisd3d.mc2discord.core.M2DCommands;
5 | import net.minecraft.ChatFormatting;
6 | import net.minecraft.commands.CommandSourceStack;
7 | import net.minecraft.commands.Commands;
8 | import net.minecraft.network.chat.ClickEvent;
9 | import net.minecraft.network.chat.Component;
10 | import net.minecraft.network.chat.TextColor;
11 |
12 | public class DiscordCommandImpl {
13 | public static void register(CommandDispatcher dispatcher) {
14 | dispatcher.register(Commands.literal("discord").executes(context -> {
15 | context.getSource().sendSuccess(Component.literal(M2DCommands.getDiscordText())
16 | .withStyle(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, M2DCommands.getDiscordLink()))
17 | .withColor(TextColor.fromLegacyFormat(ChatFormatting.BLUE))
18 | .withUnderlined(true)), false);
19 | return 1;
20 | }));
21 | }
22 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.1/common/src/main/java/fr/denisd3d/mc2discord/minecraft/commands/DiscordCommandImpl.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.minecraft.commands;
2 |
3 | import com.mojang.brigadier.CommandDispatcher;
4 | import fr.denisd3d.mc2discord.core.M2DCommands;
5 | import net.minecraft.ChatFormatting;
6 | import net.minecraft.commands.CommandSourceStack;
7 | import net.minecraft.commands.Commands;
8 | import net.minecraft.network.chat.ClickEvent;
9 | import net.minecraft.network.chat.Component;
10 | import net.minecraft.network.chat.TextColor;
11 |
12 | public class DiscordCommandImpl {
13 | public static void register(CommandDispatcher dispatcher) {
14 | dispatcher.register(Commands.literal("discord").executes(context -> {
15 | context.getSource().sendSuccess(() -> Component.literal(M2DCommands.getDiscordText())
16 | .withStyle(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, M2DCommands.getDiscordLink()))
17 | .withColor(TextColor.fromLegacyFormat(ChatFormatting.BLUE))
18 | .withUnderlined(true)), false);
19 | return 1;
20 | }));
21 | }
22 | }
--------------------------------------------------------------------------------
/mc2discord-1.20.x/common/src/main/java/fr/denisd3d/mc2discord/minecraft/commands/DiscordCommandImpl.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.minecraft.commands;
2 |
3 | import com.mojang.brigadier.CommandDispatcher;
4 | import fr.denisd3d.mc2discord.core.M2DCommands;
5 | import net.minecraft.ChatFormatting;
6 | import net.minecraft.commands.CommandSourceStack;
7 | import net.minecraft.commands.Commands;
8 | import net.minecraft.network.chat.ClickEvent;
9 | import net.minecraft.network.chat.Component;
10 | import net.minecraft.network.chat.TextColor;
11 |
12 | public class DiscordCommandImpl {
13 | public static void register(CommandDispatcher dispatcher) {
14 | dispatcher.register(Commands.literal("discord").executes(context -> {
15 | context.getSource().sendSuccess(() -> Component.literal(M2DCommands.getDiscordText())
16 | .withStyle(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, M2DCommands.getDiscordLink()))
17 | .withColor(TextColor.fromLegacyFormat(ChatFormatting.BLUE))
18 | .withUnderlined(true)), false);
19 | return 1;
20 | }));
21 | }
22 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.x/common/src/main/java/fr/denisd3d/mc2discord/minecraft/commands/DiscordCommandImpl.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.minecraft.commands;
2 |
3 | import com.mojang.brigadier.CommandDispatcher;
4 | import fr.denisd3d.mc2discord.core.M2DCommands;
5 | import net.minecraft.ChatFormatting;
6 | import net.minecraft.commands.CommandSourceStack;
7 | import net.minecraft.commands.Commands;
8 | import net.minecraft.network.chat.ClickEvent;
9 | import net.minecraft.network.chat.Component;
10 | import net.minecraft.network.chat.TextColor;
11 |
12 | public class DiscordCommandImpl {
13 | public static void register(CommandDispatcher dispatcher) {
14 | dispatcher.register(Commands.literal("discord").executes(context -> {
15 | context.getSource().sendSuccess(() -> Component.literal(M2DCommands.getDiscordText())
16 | .withStyle(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, M2DCommands.getDiscordLink()))
17 | .withColor(TextColor.fromLegacyFormat(ChatFormatting.BLUE))
18 | .withUnderlined(true)), false);
19 | return 1;
20 | }));
21 | }
22 | }
--------------------------------------------------------------------------------
/mc2discord-1.18.x/fabric/src/main/java/fr/denisd3d/mc2discord/fabric/mixin/ServerGamePacketListenerImplMixin.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.fabric.mixin;
2 |
3 | import fr.denisd3d.mc2discord.fabric.events.ServerChatCallback;
4 | import net.minecraft.server.level.ServerPlayer;
5 | import net.minecraft.server.network.ServerGamePacketListenerImpl;
6 | import net.minecraft.server.network.TextFilter;
7 | import org.spongepowered.asm.mixin.Mixin;
8 | import org.spongepowered.asm.mixin.Shadow;
9 | import org.spongepowered.asm.mixin.injection.At;
10 | import org.spongepowered.asm.mixin.injection.Inject;
11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12 |
13 | @Mixin(ServerGamePacketListenerImpl.class)
14 | public class ServerGamePacketListenerImplMixin {
15 | @Shadow
16 | public ServerPlayer player;
17 |
18 | @Inject(method = "handleChat(Lnet/minecraft/server/network/TextFilter$FilteredText;)V", at = @At("HEAD"))
19 | private void execute(TextFilter.FilteredText filteredText, CallbackInfo ci) {
20 | String s = filteredText.getRaw();
21 | if (!s.startsWith("/")) {
22 | ServerChatCallback.EVENT.invoker().onServerChatMessage(s, this.player);
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/mc2discord-1.21.5/common/src/main/java/fr/denisd3d/mc2discord/minecraft/commands/DiscordCommandImpl.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.minecraft.commands;
2 |
3 | import com.mojang.brigadier.CommandDispatcher;
4 | import fr.denisd3d.mc2discord.core.M2DCommands;
5 | import net.minecraft.ChatFormatting;
6 | import net.minecraft.commands.CommandSourceStack;
7 | import net.minecraft.commands.Commands;
8 | import net.minecraft.network.chat.ClickEvent;
9 | import net.minecraft.network.chat.Component;
10 | import net.minecraft.network.chat.TextColor;
11 |
12 | import java.net.URI;
13 |
14 | public class DiscordCommandImpl {
15 | public static void register(CommandDispatcher dispatcher) {
16 | dispatcher.register(Commands.literal("discord").executes(context -> {
17 | context.getSource().sendSuccess(() -> Component.literal(M2DCommands.getDiscordText())
18 | .withStyle(style -> style.withClickEvent(new ClickEvent.OpenUrl(URI.create(M2DCommands.getDiscordLink())))
19 | .withColor(TextColor.fromLegacyFormat(ChatFormatting.BLUE))
20 | .withUnderlined(true)), false);
21 | return 1;
22 | }));
23 | }
24 | }
--------------------------------------------------------------------------------
/mc2discord-core/src/main/java/fr/denisd3d/mc2discord/core/config/converters/SnowflakeArrayConverter.java:
--------------------------------------------------------------------------------
1 | package fr.denisd3d.mc2discord.core.config.converters;
2 |
3 | import com.electronwill.nightconfig.core.conversion.Converter;
4 | import discord4j.common.util.Snowflake;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 |
9 | public class SnowflakeArrayConverter implements Converter, List