add 1.7.10
This commit is contained in:
parent
cfc677868a
commit
67d0aab64e
|
@ -0,0 +1,89 @@
|
||||||
|
|
||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
jcenter()
|
||||||
|
maven { url = "http://files.minecraftforge.net/maven" }
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath "net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
apply plugin: 'forge'
|
||||||
|
|
||||||
|
version = project.mc_version + "-" + project.mod_version
|
||||||
|
|
||||||
|
archivesBaseName = project.mod_name
|
||||||
|
|
||||||
|
sourceCompatibility = targetCompatibility = '1.8'
|
||||||
|
|
||||||
|
configurations {
|
||||||
|
shade
|
||||||
|
compile.extendsFrom shade
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
shade project(":core")
|
||||||
|
}
|
||||||
|
|
||||||
|
minecraft {
|
||||||
|
version = project.mc_version + "-" + project.forge_version + "-" + project.mc_version
|
||||||
|
runDir = "run"
|
||||||
|
|
||||||
|
mappings = project.mcp_mappings
|
||||||
|
|
||||||
|
srgExtra "PK: kotlin matterlink/repack/kotlin"
|
||||||
|
srgExtra "PK: org/jetbrains/annotations matterlink/repack/org/jetbrains/annotations"
|
||||||
|
srgExtra "PK: com/google/gson matterlink/repack/com/google/gson"
|
||||||
|
srgExtra "PK: org/apache/commons matterlink/repack/org/apache/commons"
|
||||||
|
srgExtra "PK: org/apache/http matterlink/repack/org/apache/http"
|
||||||
|
srgExtra "PK: org/intelij matterlink/repack/org/intelij"
|
||||||
|
}
|
||||||
|
|
||||||
|
compileKotlin.doFirst {
|
||||||
|
def target = "src/main/kotlin/matterlink/gen"
|
||||||
|
copy {
|
||||||
|
from("src/templates/kotlin/matterlink/Constants.kt")
|
||||||
|
into(target)
|
||||||
|
}
|
||||||
|
ant.replaceregexp(match:'@MODVERSION@', replace: project.mod_version, flags:'g', byline:true) {
|
||||||
|
fileset(dir: target, includes: 'Constants.kt')
|
||||||
|
}
|
||||||
|
ant.replaceregexp(match:'@MCVERSION@', replace: project.mc_version, flags:'g', byline:true) {
|
||||||
|
fileset(dir: target, includes: 'Constants.kt')
|
||||||
|
}
|
||||||
|
ant.replaceregexp(match:'@FORGELIN-VERSION@', replace: project.forgelin_version, flags:'g', byline:true) {
|
||||||
|
fileset(dir: target, includes: 'Constants.kt')
|
||||||
|
}
|
||||||
|
ant.replaceregexp(match:'@FORGE-VERSION@', replace: project.forge_version, flags:'g', byline:true) {
|
||||||
|
fileset(dir: target, includes: 'Constants.kt')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
processResources {
|
||||||
|
// this will ensure that this task is redone when the versions change.
|
||||||
|
inputs.property "version", project.mod_version
|
||||||
|
inputs.property "mcversion", project.minecraft.version
|
||||||
|
|
||||||
|
// replace stuff in mcmod.info, nothing else
|
||||||
|
from(project(":core").sourceSets.main.resources.srcDirs) {
|
||||||
|
include 'mcmod.info'
|
||||||
|
|
||||||
|
// replace version and mcversion
|
||||||
|
expand 'version': project.mod_version, 'mcversion': project.minecraft.version
|
||||||
|
}
|
||||||
|
|
||||||
|
// copy everything else except the mcmod.info
|
||||||
|
from(project(":core").sourceSets.main.resources.srcDirs) {
|
||||||
|
exclude 'mcmod.info'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jar {
|
||||||
|
configurations.shade.each { dep ->
|
||||||
|
from (project.zipTree(dep)) {
|
||||||
|
exclude "META-INF", "META-INF/**"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
mc_version = 1.7.10
|
||||||
|
mcp_mappings = stable_12
|
||||||
|
forge_version = 10.13.4.1614
|
|
@ -0,0 +1,93 @@
|
||||||
|
package matterlink
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.eventhandler.SubscribeEvent
|
||||||
|
import cpw.mods.fml.common.gameevent.PlayerEvent
|
||||||
|
import cpw.mods.fml.common.gameevent.TickEvent
|
||||||
|
import matterlink.bridge.ServerChatHandler
|
||||||
|
import matterlink.bridge.USER_ACTION
|
||||||
|
import matterlink.config.cfg
|
||||||
|
import matterlink.handlers.*
|
||||||
|
import net.minecraft.command.server.CommandBroadcast
|
||||||
|
import net.minecraft.command.server.CommandEmote
|
||||||
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
|
import net.minecraft.server.MinecraftServer
|
||||||
|
import net.minecraft.server.dedicated.DedicatedServer
|
||||||
|
import net.minecraft.tileentity.TileEntityCommandBlock
|
||||||
|
import net.minecraftforge.event.CommandEvent
|
||||||
|
import net.minecraftforge.event.ServerChatEvent
|
||||||
|
import net.minecraftforge.event.entity.living.LivingDeathEvent
|
||||||
|
import net.minecraftforge.event.entity.player.AchievementEvent
|
||||||
|
|
||||||
|
//FORGE-DEPENDENT
|
||||||
|
object EventHandler {
|
||||||
|
|
||||||
|
//MC-VERSION & FORGE DEPENDENT
|
||||||
|
@SubscribeEvent
|
||||||
|
fun progressEvent(e: AchievementEvent) {
|
||||||
|
ProgressHandler.handleProgress(
|
||||||
|
name = e.entityPlayer.displayName,
|
||||||
|
message = "has earned the achievement",
|
||||||
|
display = e.achievement.statName.unformattedText
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
//FORGE-DEPENDENT
|
||||||
|
@SubscribeEvent
|
||||||
|
fun chatEvent(e: ServerChatEvent) {
|
||||||
|
ChatProcessor.sendToBridge(
|
||||||
|
user = e.username,
|
||||||
|
msg = e.message,
|
||||||
|
event = ""
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
//FORGE-DEPENDENT
|
||||||
|
@SubscribeEvent
|
||||||
|
fun commandEvent(e: CommandEvent) {
|
||||||
|
val sender = when {
|
||||||
|
e.sender is EntityPlayer -> e.sender.commandSenderName
|
||||||
|
e.sender is DedicatedServer -> cfg.relay.systemUser
|
||||||
|
e.sender is TileEntityCommandBlock -> "CommandBlock"
|
||||||
|
else -> return
|
||||||
|
}
|
||||||
|
val args = e.parameters.joinToString(" ")
|
||||||
|
val type = when {
|
||||||
|
e.command is CommandEmote -> USER_ACTION
|
||||||
|
e.command is CommandBroadcast -> ""
|
||||||
|
else -> return
|
||||||
|
}
|
||||||
|
ChatProcessor.sendToBridge(user = sender, msg = args, event = type)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//FORGE-DEPENDENT
|
||||||
|
@SubscribeEvent
|
||||||
|
fun deathEvent(e: LivingDeathEvent) {
|
||||||
|
if (e.entityLiving is EntityPlayer) {
|
||||||
|
val player = e.entityLiving as EntityPlayer
|
||||||
|
DeathHandler.handleDeath(
|
||||||
|
player = player.displayName,
|
||||||
|
deathMessage = e.entityLiving.combatTracker.func_151521_b().unformattedText,
|
||||||
|
damageType = e.source.damageType
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//FORGE-DEPENDENT
|
||||||
|
@SubscribeEvent
|
||||||
|
fun joinEvent(e: PlayerEvent.PlayerLoggedInEvent) {
|
||||||
|
JoinLeaveHandler.handleJoin(e.player.displayName)
|
||||||
|
}
|
||||||
|
|
||||||
|
//FORGE-DEPENDENT
|
||||||
|
@SubscribeEvent
|
||||||
|
fun leaveEvent(e: PlayerEvent.PlayerLoggedOutEvent) {
|
||||||
|
JoinLeaveHandler.handleLeave(e.player.displayName)
|
||||||
|
}
|
||||||
|
|
||||||
|
//FORGE-DEPENDENT
|
||||||
|
@SubscribeEvent
|
||||||
|
fun serverTickEvent(e: TickEvent.ServerTickEvent) {
|
||||||
|
ServerChatHandler.writeIncomingToChat(MinecraftServer.getServer().tickCounter)
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
package matterlink
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.Mod
|
||||||
|
import cpw.mods.fml.common.event.*
|
||||||
|
import matterlink.command.CommandMatterlink
|
||||||
|
import matterlink.command.IMinecraftCommandSender
|
||||||
|
import matterlink.command.MatterlinkCommandSender
|
||||||
|
import matterlink.config.cfg
|
||||||
|
import net.minecraft.server.MinecraftServer
|
||||||
|
import net.minecraft.util.ChatComponentText
|
||||||
|
import net.minecraftforge.common.MinecraftForge
|
||||||
|
import org.apache.logging.log4j.Level
|
||||||
|
import org.apache.logging.log4j.Logger
|
||||||
|
|
||||||
|
lateinit var logger: Logger
|
||||||
|
|
||||||
|
@Mod(
|
||||||
|
modid = MODID,
|
||||||
|
name = NAME, version = MODVERSION,
|
||||||
|
useMetadata = true,
|
||||||
|
acceptableRemoteVersions = "*"
|
||||||
|
)
|
||||||
|
class MatterLink : IMatterLink() {
|
||||||
|
init {
|
||||||
|
instance = this
|
||||||
|
}
|
||||||
|
|
||||||
|
@Mod.EventHandler
|
||||||
|
fun preInit(event: FMLPreInitializationEvent) {
|
||||||
|
MinecraftForge.EVENT_BUS.register(EventHandler)
|
||||||
|
logger = event.modLog
|
||||||
|
logger.info("Building bridge!")
|
||||||
|
|
||||||
|
cfg = MatterLinkConfig(event.suggestedConfigurationFile)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Mod.EventHandler
|
||||||
|
fun init(event: FMLInitializationEvent) {
|
||||||
|
this.registerBridgeCommands()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Mod.EventHandler
|
||||||
|
fun serverStarting(event: FMLServerStartingEvent) {
|
||||||
|
logger.debug("Registering server commands")
|
||||||
|
event.registerServerCommand(CommandMatterlink())
|
||||||
|
serverStartTime = System.currentTimeMillis()
|
||||||
|
connect()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Mod.EventHandler
|
||||||
|
fun serverStopping(event: FMLServerStoppingEvent) {
|
||||||
|
disconnect()
|
||||||
|
}
|
||||||
|
|
||||||
|
//FORGE-DEPENDENT
|
||||||
|
override fun wrappedSendToPlayers(msg: String) {
|
||||||
|
MinecraftServer.getServer().addChatMessage(ChatComponentText(msg));
|
||||||
|
}
|
||||||
|
|
||||||
|
//FORGE-DEPENDENT
|
||||||
|
override fun wrappedPlayerList(): Array<String> {
|
||||||
|
return MinecraftServer.getServer().allUsernames
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun log(level: String, formatString: String, vararg data: Any) =
|
||||||
|
logger.log(Level.toLevel(level, Level.INFO),formatString, *data)
|
||||||
|
|
||||||
|
override var commandSender: IMinecraftCommandSender = MatterlinkCommandSender
|
||||||
|
|
||||||
|
override val mcVersion: String = MCVERSION
|
||||||
|
override val modVersion: String = MODVERSION
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
package matterlink
|
||||||
|
|
||||||
|
import matterlink.config.BaseConfig
|
||||||
|
import net.minecraftforge.common.config.Configuration
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
|
class MatterLinkConfig(val file: File) : BaseConfig() {
|
||||||
|
init {
|
||||||
|
logger.info("Reading bridge blueprints... from {}", file)
|
||||||
|
val config = Configuration(file)
|
||||||
|
|
||||||
|
load(
|
||||||
|
getBoolean = config::getBoolean,
|
||||||
|
getString = config::getString,
|
||||||
|
getStringValidated = config::getString,
|
||||||
|
getStringValidValues = config::getString,
|
||||||
|
getStringList = config::getStringList,
|
||||||
|
addCustomCategoryComment = config::addCustomCategoryComment
|
||||||
|
)
|
||||||
|
|
||||||
|
if (config.hasChanged()) config.save()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun load() = MatterLinkConfig(file)
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
package matterlink.command
|
||||||
|
|
||||||
|
import net.minecraft.command.CommandBase
|
||||||
|
import net.minecraft.command.ICommandSender
|
||||||
|
import net.minecraft.command.WrongUsageException
|
||||||
|
import net.minecraft.util.ChatComponentText
|
||||||
|
|
||||||
|
|
||||||
|
class CommandMatterlink : CommandBase() {
|
||||||
|
override fun processCommand(sender: ICommandSender, args: Array<String>) {
|
||||||
|
if (args.isEmpty()) {
|
||||||
|
throw WrongUsageException("Invalid command! Valid uses: ${this.getCommandUsage(sender)}")
|
||||||
|
}
|
||||||
|
|
||||||
|
val reply = CommandCore.execute(args)
|
||||||
|
|
||||||
|
if (reply.isNotEmpty()) {
|
||||||
|
sender.addChatMessage(ChatComponentText(reply))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getCommandName(): String {
|
||||||
|
return CommandCore.getName()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getCommandUsage(sender: ICommandSender): String {
|
||||||
|
return CommandCore.getUsage()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getCommandAliases(): List<String> {
|
||||||
|
return CommandCore.getAliases()
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
package matterlink.command
|
||||||
|
|
||||||
|
import matterlink.bridge.ApiMessage
|
||||||
|
import matterlink.bridge.MessageHandler
|
||||||
|
import matterlink.config.cfg
|
||||||
|
import net.minecraft.command.ICommandSender
|
||||||
|
import net.minecraft.entity.Entity
|
||||||
|
import net.minecraft.server.MinecraftServer
|
||||||
|
import net.minecraft.util.ChatComponentText
|
||||||
|
import net.minecraft.util.ChunkCoordinates
|
||||||
|
import net.minecraft.util.IChatComponent
|
||||||
|
import net.minecraft.world.World
|
||||||
|
|
||||||
|
object MatterlinkCommandSender : IMinecraftCommandSender, ICommandSender {
|
||||||
|
|
||||||
|
private var level: Int = 0
|
||||||
|
|
||||||
|
override fun execute(cmdString: String, level: Int): Boolean {
|
||||||
|
return 0 < MinecraftServer.getServer().commandManager.executeCommand(
|
||||||
|
this,
|
||||||
|
cmdString
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getFormattedCommandSenderName(): IChatComponent {
|
||||||
|
return ChatComponentText(commandSenderName)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getCommandSenderName(): String {
|
||||||
|
return "MatterLink"
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getEntityWorld(): World {
|
||||||
|
return MinecraftServer.getServer().worldServerForDimension(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun canCommandSenderUseCommand(permLevel: Int, commandName: String?): Boolean {
|
||||||
|
//TODO: Implement actual permissions checking
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun addChatMessage(component: IChatComponent) {
|
||||||
|
MessageHandler.transmit(ApiMessage(
|
||||||
|
username = cfg.relay.systemUser,
|
||||||
|
text = component.unformattedText
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getCommandSenderPosition(): ChunkCoordinates = ChunkCoordinates(0,0,0)
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
package matterlink
|
||||||
|
|
||||||
|
const val MODID = "matterlink"
|
||||||
|
const val NAME = "MatterLink"
|
||||||
|
const val MODVERSION = "@MODVERSION@"
|
||||||
|
const val MCVERSION = "@MCVERSION@"
|
||||||
|
const val DEPENDENCIES = ""
|
||||||
|
|
|
@ -13,7 +13,6 @@ abstract class IMatterLink {
|
||||||
abstract val modVersion: String
|
abstract val modVersion: String
|
||||||
|
|
||||||
abstract var commandSender: IMinecraftCommandSender
|
abstract var commandSender: IMinecraftCommandSender
|
||||||
//var interrupted: Boolean = false
|
|
||||||
|
|
||||||
abstract fun wrappedSendToPlayers(msg: String)
|
abstract fun wrappedSendToPlayers(msg: String)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
mod_name = MatterLink
|
mod_name = MatterLink
|
||||||
mod_version = 1.3
|
mod_version = 1.3.1
|
||||||
forgelin_version = 1.6.0
|
forgelin_version = 1.6.0
|
|
@ -1,2 +1,2 @@
|
||||||
rootProject.name = 'MatterLink'
|
rootProject.name = 'MatterLink'
|
||||||
include 'core', '1.12.2', '1.11.2', '1.10.2'
|
include 'core', '1.12.2', '1.11.2', '1.10.2', '1.7.10'
|
Loading…
Reference in New Issue