initial: server-side fix for Gunfire 0.1.6-a + SBW 0.8.9 ammo consume
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
build/
|
||||
.gradle/
|
||||
run/
|
||||
logs/
|
||||
out/
|
||||
*.log
|
||||
mcmodsrepo/
|
||||
.idea/
|
||||
*.iml
|
||||
@@ -0,0 +1,19 @@
|
||||
# Gunfire-SBW Fix (Server)
|
||||
|
||||
Server-side fix for `Gunfire Overhaul 0.1.6-a` + `Superb Warfare 0.8.9` on Mohist/Forge 1.20.1.
|
||||
|
||||
- Fixes `IllegalAccessError: AmmoConsumer.type` crash on `ShootMessage` (`GunItem:1371 onPlayFireSounds`)
|
||||
- Fixes ammo not consumed for all SBW infantry guns
|
||||
- Requires both mods, side `SERVER` only - clients don't need it
|
||||
- Distant sounds 1.5km from Gunfire kept
|
||||
|
||||
## Build
|
||||
```bash
|
||||
./gradlew build
|
||||
```
|
||||
|
||||
## Install
|
||||
Put `gunfiresbfix-1.0.0.jar` in `mods/` on server (needs `superbwarfare` and `gunfireoverhaul`).
|
||||
|
||||
## License
|
||||
MIT - patch, original mods: SBW GPLv3, Gunfire All Rights Reserved
|
||||
@@ -0,0 +1,69 @@
|
||||
buildscript {
|
||||
repositories {
|
||||
maven { url = 'https://maven.minecraftforge.net' }
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '6.0.+', changing: true
|
||||
}
|
||||
}
|
||||
plugins {
|
||||
id 'eclipse'
|
||||
id 'idea'
|
||||
id 'maven-publish'
|
||||
id 'net.minecraftforge.gradle' version '6.0.+'
|
||||
}
|
||||
|
||||
version = findProperty('mod_version') ?: '1.0.0'
|
||||
group = findProperty('group') ?: 'com.zern.gunfiresbfix'
|
||||
archivesBaseName = findProperty('archives_base_name') ?: 'gunfiresbfix'
|
||||
|
||||
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
|
||||
|
||||
println "Java toolchain: ${java.toolchain.languageVersion.get()}"
|
||||
|
||||
minecraft {
|
||||
mappings channel: findProperty('mappings_channel') ?: 'official', version: findProperty('mappings_version') ?: '1.20.1'
|
||||
copyIdeResources = true
|
||||
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
|
||||
}
|
||||
|
||||
dependencies {
|
||||
minecraft "net.minecraftforge:forge:${findProperty('minecraft_version')}-${findProperty('forge_version')}"
|
||||
}
|
||||
|
||||
tasks.named('processResources', DuplicatesStrategy.INCLUDE).configure {
|
||||
from(sourceSets.main.resources)
|
||||
}
|
||||
|
||||
mixin {
|
||||
add sourceSets.main, 'mixins.gunfiresbfix.refmap.json'
|
||||
config 'mixins.gunfiresbfix.json'
|
||||
}
|
||||
|
||||
jar {
|
||||
manifest {
|
||||
attributes([
|
||||
'Specification-Title' : 'gunfiresbfix',
|
||||
'Specification-Vendor' : 'Zern',
|
||||
'Specification-Version' : '1',
|
||||
'Implementation-Title' : project.name,
|
||||
'Implementation-Version' : project.jar.archiveVersion,
|
||||
'Implementation-Vendor' : 'Zern',
|
||||
'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
register('maven', MavenPublication) {
|
||||
from components.java
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
url "file://${project.projectDir}/mcmodsrepo"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
org.gradle.jvmargs=-Xmx3G
|
||||
org.gradle.daemon=false
|
||||
minecraft_version=1.20.1
|
||||
forge_version=47.4.13
|
||||
mappings_channel=official
|
||||
mappings_version=1.20.1
|
||||
mod_version=1.0.0
|
||||
group=com.zern.gunfiresbfix
|
||||
archives_base_name=gunfiresbfix
|
||||
@@ -0,0 +1,9 @@
|
||||
pluginManagement {
|
||||
repositories {
|
||||
gradlePluginPortal()
|
||||
maven { url = "https://maven.minecraftforge.net/" }
|
||||
}
|
||||
}
|
||||
plugins {
|
||||
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0'
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.zern.gunfiresbfix;
|
||||
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
@Mod("gunfiresbfix")
|
||||
public class GunfireSBWFix {
|
||||
public GunfireSBWFix() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.zern.gunfiresbfix.mixin;
|
||||
|
||||
import com.atsuishio.superbwarfare.data.gun.AmmoConsumer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(value = AmmoConsumer.class, remap = false)
|
||||
public interface AmmoConsumerAccessor {
|
||||
@Accessor("type")
|
||||
String getType();
|
||||
|
||||
@Accessor("type")
|
||||
void setType(String type);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.zern.gunfiresbfix.mixin;
|
||||
|
||||
import com.atsuishio.superbwarfare.data.gun.AmmoConsumer;
|
||||
import com.atsuishio.superbwarfare.data.gun.GunData;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(value = GunData.class, remap = false)
|
||||
public class GunItemConsumeFixMixin {
|
||||
@Inject(method = "shoot", at = @At(value = "INVOKE", target = "Lcom/atsuishio/superbwarfare/item/gun/GunItem;playFireSounds (Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/item/ItemStack;)V", shift = At.Shift.AFTER), remap = false)
|
||||
private void fixAmmoConsume(Player player, ItemStack stack, CallbackInfo ci) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
public field com/atsuishio/superbwarfare/data/gun/AmmoConsumer type
|
||||
public field com/atsuishio/superbwarfare/data/gun/AmmoConsumer typeOf
|
||||
public method com/atsuishio/superbwarfare/data/gun/AmmoConsumer <init> (Ljava/lang/String;I)V
|
||||
@@ -0,0 +1,35 @@
|
||||
modLoader="javafml"
|
||||
loaderVersion="[47,)"
|
||||
license="MIT"
|
||||
issueTrackerURL="https://git.swe.zern.cc/zern/gunfiresbfix/issues"
|
||||
|
||||
[[mods]]
|
||||
modId="gunfiresbfix"
|
||||
version="${file.jarVersion}"
|
||||
displayName="Gunfire-SBW Fix (Server)"
|
||||
updateJSONURL="https://git.swe.zern.cc/zern/gunfiresbfix"
|
||||
displayURL="https://git.swe.zern.cc/zern/gunfiresbfix"
|
||||
logoFile="logo.png"
|
||||
authors="Zern"
|
||||
description="Server-side fix for Gunfire Overhaul 0.1.6-a + SBW 0.8.9 IllegalAccessError and ammo not consumed. Requires both mods. Server only."
|
||||
|
||||
[[dependencies.gunfiresbfix]]
|
||||
modId="forge"
|
||||
mandatory=true
|
||||
versionRange="[47.4.13,)"
|
||||
ordering="NONE"
|
||||
side="SERVER"
|
||||
|
||||
[[dependencies.gunfiresbfix]]
|
||||
modId="superbwarfare"
|
||||
mandatory=true
|
||||
versionRange="[0.8.9,0.9)"
|
||||
ordering="AFTER"
|
||||
side="SERVER"
|
||||
|
||||
[[dependencies.gunfiresbfix]]
|
||||
modId="gunfireoverhaul"
|
||||
mandatory=true
|
||||
versionRange="[0.1.6,0.2)"
|
||||
ordering="AFTER"
|
||||
side="SERVER"
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"required": true,
|
||||
"minVersion": "0.8.5",
|
||||
"package": "com.zern.gunfiresbfix.mixin",
|
||||
"compatibilityLevel": "JAVA_17",
|
||||
"refmap": "mixins.gunfiresbfix.refmap.json",
|
||||
"mixins": [
|
||||
"AmmoConsumerAccessor",
|
||||
"GunItemConsumeFixMixin"
|
||||
],
|
||||
"client": [],
|
||||
"server": []
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"pack": {
|
||||
"description": "Gunfire-SBW Fix",
|
||||
"pack_format": 15,
|
||||
"supported_formats": [15, 15]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user