From efa1dcfc8fc00dd6abd3769e49aafeab0e2c5906 Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Sun, 4 Apr 2021 00:32:27 +0200 Subject: [PATCH] Convert to SBT project (manually), including shading --- build.sbt | 74 +++++ pom.xml | 254 ------------------ project/build.properties | 2 + project/plugins.sbt | 2 + .../discordplugin/ChromaBot.scala | 2 +- .../buttondevteam/discordplugin/DPUtils.scala | 2 +- .../DiscordConnectedPlayer.scala | 2 +- .../discordplugin/DiscordPlayer.scala | 2 +- .../discordplugin/DiscordPlugin.scala | 3 + .../discordplugin/DiscordSender.scala | 1 + .../commands/Command2DCSender.scala | 3 +- .../discordplugin/mcchat/MCChatCustom.scala | 5 +- .../playerfaker/DiscordInventory.java | 15 +- .../playerfaker/VanillaCommandListener.scala | 3 +- .../VanillaCommandListener14.scala | 3 +- 15 files changed, 102 insertions(+), 271 deletions(-) create mode 100644 build.sbt delete mode 100644 pom.xml create mode 100644 project/build.properties create mode 100644 project/plugins.sbt diff --git a/build.sbt b/build.sbt new file mode 100644 index 0000000..ed24d8a --- /dev/null +++ b/build.sbt @@ -0,0 +1,74 @@ +name := "Chroma-Discord" + +version := "0.1" + +scalaVersion := "2.13.5" + +resolvers += "spigot-repo" at "https://hub.spigotmc.org/nexus/content/repositories/snapshots/" +resolvers += "jitpack.io" at "https://jitpack.io" +resolvers += Resolver.mavenLocal + +libraryDependencies ++= Seq( + "org.spigotmc" % "spigot-api" % "1.12.2-R0.1-SNAPSHOT" % Provided, + "org.spigotmc" % "spigot" % "1.12.2-R0.1-SNAPSHOT" % Provided, + "org.spigotmc." % "spigot" % "1.14.4-R0.1-SNAPSHOT" % Provided, + "com.destroystokyo.paper" % "paper" % "1.16.3-R0.1-SNAPSHOT" % Provided, + + "com.discord4j" % "discord4j-core" % "3.1.4", + "org.slf4j" % "slf4j-jdk14" % "1.7.21", + "com.vdurmont" % "emoji-java" % "4.0.0", + "org.mockito" % "mockito-core" % "3.5.13", + "io.projectreactor" %% "reactor-scala-extensions" % "0.7.0", + + "com.github.TBMCPlugins.ChromaCore" % "Chroma-Core" % "v1.0.0" % Provided, + "net.ess3" % "EssentialsX" % "2.17.1" % Provided, + "com.github.lucko.LuckPerms" % "bukkit" % "master-SNAPSHOT" % Provided, +) + + +/*val myAssemblySettings = inTask(assembly)( + Seq( + assemblyShadeRules := libraryDependencies.value.filter(!_.configurations.exists(_ contains "provided")) + .map { _.organization } + .map { p => + ShadeRule.rename(s"$p.**" -> "btndvtm.dp.@0").inAll + }, + assemblyMergeStrategy := { + case PathList("META-INF", "io.netty.versions.properties") => MergeStrategy.concat + // https://stackoverflow.com/a/55557287/457612 + case "module-info.class" => MergeStrategy.discard + case x => assemblyMergeStrategy.value(x) + }, + /*shadeResourceTransformers ++= Seq( + Rename( + "libnetty_tcnative_linux_x86_64.so" -> "libcom_couchbase_client_core_deps_netty_tcnative_linux_x86_64.so", + "libnetty_tcnative_osx_x86_64.jnilib" -> "libcom_couchbase_client_core_deps_netty_tcnative_osx_x86_64.jnilib", + "netty_tcnative_windows_x86_64.dll" -> "com_couchbase_client_core_deps_netty_tcnative_windows_x86_64.dll" + ).inDir("META-INF/native"), + Discard( + "com.fasterxml.jackson.core.JsonFactory", + "com.fasterxml.jackson.core.ObjectCodec", + "com.fasterxml.jackson.databind.Module" + ).inDir("META-INF/services") + )*/ + ) +)*/ + +assemblyJarName in assembly := "Chroma-Discord.jar" +//assemblyShadeRules in assembly := libraryDependencies.value.filter(!_.configurations.exists(_ contains "provided")) +assemblyShadeRules in assembly := Seq( + "io.netty", "com.fasterxml", "org.mockito", "org.slf4j" +).map { p => + ShadeRule.rename(s"$p.**" -> "btndvtm.dp.@0").inAll +} + +//logLevel in assembly := Level.Debug + +assemblyMergeStrategy in assembly := { + case PathList("META-INF", "io.netty.versions.properties") => MergeStrategy.concat + // https://stackoverflow.com/a/55557287/457612 + case "module-info.class" => MergeStrategy.discard + case x => (assemblyMergeStrategy in assembly).value(x) +} + +//lazy val `Chroma-Discord` = project.settings(myAssemblySettings) diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 7201620..0000000 --- a/pom.xml +++ /dev/null @@ -1,254 +0,0 @@ - - 4.0.0 - - - com.github.TBMCPlugins.ChromaCore - CorePOM - master-SNAPSHOT - - - com.github.TBMCPlugins - Chroma-Discord - v${noprefix.version}-SNAPSHOT - jar - - Chroma-Discord - http://maven.apache.org - - - - src/main/java - - - src/main/resources - true - - - Chroma-Discord - - - org.apache.maven.plugins - maven-shade-plugin - 3.2.1 - - - package - - shade - - - - - - - - - io.netty - btndvtm.dp.io.netty - - - - - com.fasterxml - btndvtm.dp.com.fasterxml - - - org.mockito - btndvtm.dp.org.mockito - - - org.slf4j - btndvtm.dp.org.slf4j - - - - - - - - maven-surefire-plugin - 2.4.2 - - false - - - - - net.alchim31.maven - scala-maven-plugin - 4.4.0 - - - compile - - compile - - - - - - - - - - - - UTF-8 - 1.0.0 - - - - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - jcenter - http://jcenter.bintray.com - - - jitpack.io - https://jitpack.io - - - - Essentials - https://ci.ender.zone/plugin/repository/everything/ - - - projectlombok.org - http://projectlombok.org/mavenrepo - - - - - papermc - https://papermc.io/repo/repository/maven-public/ - - - - true - - ossSonatypeSnapshot - OSS Sonatype Snapshots - https://oss.sonatype.org/content/repositories/snapshots/ - default - - - - - - junit - junit - 4.13.1 - test - - - org.spigotmc - spigot-api - 1.12.2-R0.1-SNAPSHOT - provided - - - org.spigotmc - spigot - 1.12.2-R0.1-SNAPSHOT - provided - - - org.spigotmc. - spigot - 1.14.4-R0.1-SNAPSHOT - provided - - - com.destroystokyo.paper - paper - 1.16.3-R0.1-SNAPSHOT - provided - - - - com.discord4j - discord4j-core - 3.1.3 - - - - org.slf4j - slf4j-jdk14 - 1.7.21 - - - com.github.TBMCPlugins.ChromaCore - Chroma-Core - v1.0.0 - provided - - - net.ess3 - EssentialsX - 2.17.1 - provided - - - - com.vdurmont - emoji-java - 4.0.0 - - - - - com.github.lucko.LuckPerms - bukkit - master-SNAPSHOT - provided - - - - org.mockito - mockito-core - 3.5.13 - - - org.scala-lang - scala-library - 2.13.1 - - - io.projectreactor - reactor-scala-extensions_2.13 - 0.7.0 - - - diff --git a/project/build.properties b/project/build.properties new file mode 100644 index 0000000..edb57e9 --- /dev/null +++ b/project/build.properties @@ -0,0 +1,2 @@ +sbt.version=1.4.7 +scala.version=1.13.1 diff --git a/project/plugins.sbt b/project/plugins.sbt new file mode 100644 index 0000000..a317875 --- /dev/null +++ b/project/plugins.sbt @@ -0,0 +1,2 @@ +addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.15.0") +//addSbtPlugin("com.sandinh" % "sbt-shade" % "0.1.2") diff --git a/src/main/java/buttondevteam/discordplugin/ChromaBot.scala b/src/main/java/buttondevteam/discordplugin/ChromaBot.scala index 1353645..c604c48 100644 --- a/src/main/java/buttondevteam/discordplugin/ChromaBot.scala +++ b/src/main/java/buttondevteam/discordplugin/ChromaBot.scala @@ -18,7 +18,7 @@ object ChromaBot { /** * Send a message to the chat channels and private chats. * - * @param message The message to send, duh (use {@link MessageChannel# createMessage ( String )}) + * @param message The message to send, duh (use [[MessageChannel.createMessage]]) */ def sendMessage(message: SMono[MessageChannel] => SMono[Message]): Unit = MCChatUtils.forPublicPrivateChat(message).subscribe diff --git a/src/main/java/buttondevteam/discordplugin/DPUtils.scala b/src/main/java/buttondevteam/discordplugin/DPUtils.scala index c22cbe9..455ff46 100644 --- a/src/main/java/buttondevteam/discordplugin/DPUtils.scala +++ b/src/main/java/buttondevteam/discordplugin/DPUtils.scala @@ -82,7 +82,7 @@ object DPUtils { roleData(config, key, defName, SMono.just(DiscordPlugin.mainServer)) /** - * Needs to be a {@link ConfigData} for checking if it's set + * Needs to be a [[ConfigData]] for checking if it's set */ def roleData(config: IHaveConfig, key: String, defName: String, guild: SMono[Guild]): ReadOnlyConfigData[SMono[Role]] = config.getReadOnlyDataPrimDef(key, defName, (name: Any) => { def foo(name: Any): SMono[Role] = { diff --git a/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.scala b/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.scala index 459e9b9..fdfd590 100644 --- a/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.scala +++ b/src/main/java/buttondevteam/discordplugin/DiscordConnectedPlayer.scala @@ -49,7 +49,7 @@ object DiscordConnectedPlayer { } /** - * @constructor The parameters must match with {@link #create ( User, MessageChannel, UUID, String, MinecraftChatModule)} + * @constructor The parameters must match with [[DiscordConnectedPlayer.create]] * @param user May be null. * @param channel May not be null. * @param uniqueId The UUID of the player. diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlayer.scala b/src/main/java/buttondevteam/discordplugin/DiscordPlayer.scala index 017e12a..4cfca44 100644 --- a/src/main/java/buttondevteam/discordplugin/DiscordPlayer.scala +++ b/src/main/java/buttondevteam/discordplugin/DiscordPlayer.scala @@ -14,7 +14,7 @@ import buttondevteam.lib.player.{ChromaGamerBase, UserClass} /** * Returns true if player has the private Minecraft chat enabled. For setting the value, see - * {@link MCChatPrivate# privateMCChat ( MessageChannel, boolean, User, DiscordPlayer)} + * [[MCChatPrivate.privateMCChat]] */ def isMinecraftChatEnabled: Boolean = MCChatPrivate.isMinecraftChatEnabled(this) } \ No newline at end of file diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.scala b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.scala index 3d16fb5..b7cf4c7 100644 --- a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.scala +++ b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.scala @@ -22,6 +22,7 @@ import discord4j.core.event.domain.guild.GuildCreateEvent import discord4j.core.event.domain.lifecycle.ReadyEvent import discord4j.core.{DiscordClientBuilder, GatewayDiscordClient} import discord4j.gateway.ShardInfo +import discord4j.rest.interaction.Interactions import discord4j.store.jdk.JdkStoreService import org.apache.logging.log4j.LogManager import org.apache.logging.log4j.core.Logger @@ -216,6 +217,8 @@ import java.util.Optional blw.start() LogManager.getRootLogger.asInstanceOf[Logger].addAppender(blw) logWatcher = blw + Interactions.create().onCommand("teszt", Interactions.createHandler() + .guild(gi => gi.acknowledge().withFollowup(_.createFollowupMessage("Teszt"))).build()); if (!TBMCCoreAPI.IsTestServer) DiscordPlugin.dc.updatePresence(Presence.online(Activity.playing("Minecraft"))).subscribe else DiscordPlugin.dc.updatePresence(Presence.online(Activity.playing("testing"))).subscribe getLogger.info("Loaded!") diff --git a/src/main/java/buttondevteam/discordplugin/DiscordSender.scala b/src/main/java/buttondevteam/discordplugin/DiscordSender.scala index 207103a..5e17693 100644 --- a/src/main/java/buttondevteam/discordplugin/DiscordSender.scala +++ b/src/main/java/buttondevteam/discordplugin/DiscordSender.scala @@ -57,4 +57,5 @@ class DiscordSender(user: User, channel: MessageChannel, pname: String) extends override def getName: String = name //override def spigot(): CommandSender.Spigot = new CommandSender.Spigot + override def spigot(): CommandSender.Spigot = ??? } \ No newline at end of file diff --git a/src/main/java/buttondevteam/discordplugin/commands/Command2DCSender.scala b/src/main/java/buttondevteam/discordplugin/commands/Command2DCSender.scala index 6b7a4f9..b31d3bf 100644 --- a/src/main/java/buttondevteam/discordplugin/commands/Command2DCSender.scala +++ b/src/main/java/buttondevteam/discordplugin/commands/Command2DCSender.scala @@ -4,9 +4,8 @@ import buttondevteam.discordplugin.DPUtils import buttondevteam.lib.chat.Command2Sender import discord4j.core.`object`.entity.channel.MessageChannel import discord4j.core.`object`.entity.{Message, User} -import lombok.RequiredArgsConstructor -@RequiredArgsConstructor class Command2DCSender(val message: Message) extends Command2Sender { +class Command2DCSender(val message: Message) extends Command2Sender { def getMessage: Message = this.message override def sendMessage(message: String): Unit = { diff --git a/src/main/java/buttondevteam/discordplugin/mcchat/MCChatCustom.scala b/src/main/java/buttondevteam/discordplugin/mcchat/MCChatCustom.scala index e84b9d9..df29986 100644 --- a/src/main/java/buttondevteam/discordplugin/mcchat/MCChatCustom.scala +++ b/src/main/java/buttondevteam/discordplugin/mcchat/MCChatCustom.scala @@ -6,7 +6,6 @@ import buttondevteam.lib.TBMCSystemChatEvent import discord4j.common.util.Snowflake import discord4j.core.`object`.entity.User import discord4j.core.`object`.entity.channel.MessageChannel -import lombok.NonNull import javax.annotation.Nullable import scala.collection.mutable.ListBuffer @@ -59,8 +58,8 @@ object MCChatCustom { def getCustomChats: List[CustomLMD] = lastmsgCustom.toList - class CustomLMD private[mcchat](@NonNull channel: MessageChannel, @NonNull user: User, val groupID: String, - @NonNull mcchannel: Channel, val dcp: DiscordConnectedPlayer, var toggles: Int, + class CustomLMD private[mcchat](channel: MessageChannel, user: User, val groupID: String, + mcchannel: Channel, val dcp: DiscordConnectedPlayer, var toggles: Int, var brtoggles: Set[TBMCSystemChatEvent.BroadcastTarget]) extends MCChatUtils.LastMsgData(channel, user, mcchannel) { } diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordInventory.java b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordInventory.java index 1c0ebb3..b730cc8 100644 --- a/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordInventory.java +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/DiscordInventory.java @@ -1,7 +1,5 @@ package buttondevteam.discordplugin.playerfaker; -import lombok.Getter; -import lombok.Setter; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.HumanEntity; @@ -16,8 +14,7 @@ import java.util.stream.IntStream; public class DiscordInventory implements Inventory { private ItemStack[] items = new ItemStack[27]; private List itemStacks = Arrays.asList(items); - @Getter - @Setter + public int maxStackSize; private static ItemStack emptyStack = new ItemStack(Material.AIR, 0); @@ -26,6 +23,16 @@ public class DiscordInventory implements Inventory { return items.length; } + @Override + public int getMaxStackSize() { + return maxStackSize; + } + + @Override + public void setMaxStackSize(int maxStackSize) { + this.maxStackSize = maxStackSize; + } + @Override public String getName() { return "Discord inventory"; diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/VanillaCommandListener.scala b/src/main/java/buttondevteam/discordplugin/playerfaker/VanillaCommandListener.scala index 36e464c..c192e52 100644 --- a/src/main/java/buttondevteam/discordplugin/playerfaker/VanillaCommandListener.scala +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/VanillaCommandListener.scala @@ -1,7 +1,6 @@ package buttondevteam.discordplugin.playerfaker import buttondevteam.discordplugin.{DiscordSenderBase, IMCPlayer} -import lombok.Getter import net.minecraft.server.v1_12_R1._ import org.bukkit.Bukkit import org.bukkit.craftbukkit.v1_12_R1.command.VanillaCommandWrapper @@ -40,7 +39,7 @@ object VanillaCommandListener { class VanillaCommandListener[T <: DiscordSenderBase with IMCPlayer[T]] extends ICommandListener { def getPlayer: T = this.player - @Getter private var player: T = null.asInstanceOf + private var player: T = null.asInstanceOf private var bukkitplayer: Player = null /** diff --git a/src/main/java/buttondevteam/discordplugin/playerfaker/VanillaCommandListener14.scala b/src/main/java/buttondevteam/discordplugin/playerfaker/VanillaCommandListener14.scala index b44fa69..df70378 100644 --- a/src/main/java/buttondevteam/discordplugin/playerfaker/VanillaCommandListener14.scala +++ b/src/main/java/buttondevteam/discordplugin/playerfaker/VanillaCommandListener14.scala @@ -1,7 +1,6 @@ package buttondevteam.discordplugin.playerfaker import buttondevteam.discordplugin.{DiscordSenderBase, IMCPlayer} -import lombok.Getter import net.minecraft.server.v1_14_R1._ import org.bukkit.Bukkit import org.bukkit.command.CommandSender @@ -44,7 +43,7 @@ object VanillaCommandListener14 { class VanillaCommandListener14[T <: DiscordSenderBase with IMCPlayer[T]] extends ICommandListener { def getPlayer: T = this.player - @Getter private var player: T = null.asInstanceOf + private var player: T = null.asInstanceOf private var bukkitplayer: Player = null /**