Skip to content

Instantly share code, notes, and snippets.

@zhourui123
Last active September 27, 2019 12:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zhourui123/537f7c41c6da8f7800c6ecc478f7f678 to your computer and use it in GitHub Desktop.
Save zhourui123/537f7c41c6da8f7800c6ecc478f7f678 to your computer and use it in GitHub Desktop.
detail
buildscript {
repositories {
maven {
name = 'forge'
url = 'https://files.minecraftforge.net/maven'
}
maven {
name = 'SpongePowered'
url = 'http://repo.spongepowered.org/maven'
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT'
}
}
plugins {
id 'org.spongepowered.plugin' version '0.9.0'
id 'com.github.johnrengelman.shadow' version '2.0.4'
}
apply plugin: 'java-library'
apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'net.minecraftforge.gradle.forge'
apply plugin: 'org.spongepowered.mixin'
repositories {
jcenter()
maven {
url "https://jitpack.io"
}
}
minecraft {
// TODO: Configure Forge build here
forgeVersion = '1.12.2-14.23.5.2768'
mappings = 'stable_39'
// forgeVersion = "1.12.2-14.23.4.2705"
//mappings = "snapshot_20171003"
//TODO: Replace with your mappings version, e.g. stable_39 or snapshot_20180814
runDir="run"
}
group = 'halo.mfbl.common'
version = '1.0'
description = 'mfbl common plugin'
jar {
manifest.attributes(
'TweakClass': 'org.spongepowered.asm.launch.MixinTweaker',
'MixinConfigs': 'mixins.zyblcommon.json',
'FMLCorePluginContainsFMLMod': 'true',
)
}
sourceSets {
main {
ext.refMap = "mixins.zyblcommon.refmap.json"
}
}
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
dependencies {
compile 'org.spongepowered:spongeapi:7.1.0'
compile group: 'org.mybatis', name: 'mybatis', version: '3.4.5'
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.12'
testCompile 'junit:junit:4.11'
compile fileTree(dir: 'lib', include: ['*.jar'])
compile "com.github.pie-flavor:SpongyCord:1.1.0"
implementation 'com.github.randombyte-developer:holograms:v3.1.6'
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3.3'
compile group: 'commons-io', name: 'commons-io', version: '2.6'
compile 'me.lucko.luckperms:luckperms-api:4.4'
compile 'org.spongepowered:mixin:0.7.11-SNAPSHOT'
}
shadowJar {
classifier = ""
relocate 'org.apache.ibatis', 'halo.mfbl.common.org.apache.ibatis'
relocate 'org.apache.http', 'halo.mfbl.common.org.apache.http'
relocate 'org.apache.commons.logging', 'halo.mfbl.common.org.apache.commons.logging'
dependencies {
include(dependency("org.mybatis:mybatis:3.4.5:withDependencies"))
include(dependency("mysql:mysql-connector-java:8.0.12:withDependencies"))
include(dependency("com.github.pie-flavor:SpongyCord:1.1.0:withDependencies"))
include(dependency("commons-io:commons-io:2.6:withDependencies"))
include(dependency("org.apache.httpcomponents:httpclient:4.3.3"))
include(dependency("org.apache.httpcomponents:httpcore:4.3.2"))
include(dependency("commons-logging:commons-logging:1.1.3"))
}
}
sponge {
plugin {
id = 'zyblcommon'
meta {
name = 'common4mfbl'
version = '1.0.0'
description = 'common4mfbl'
}
}
}
reobf {
shadowJar{}
}
tasks.build.dependsOn reobfShadowJar
task copyJar {
doLast {
copy {
from 'build/libs/mfbl_common_plugin-1.0.jar'
into "C:/work/mc_test/lobby_1/mods"
}
copy {
from 'build/libs/mfbl_common_plugin-1.0.jar'
into "C:/work/mc_test/mg_five_1/mods"
}
copy {
from 'build/libs/mfbl_common_plugin-1.0.jar'
into "C:/work/mc_test/mg_maze_1/mods"
}
copy {
from 'build/libs/mfbl_common_plugin-1.0.jar'
into "C:/work/mc_test/mg_team_cs_1/mods"
}
copy {
from 'build/libs/mfbl_common_plugin-1.0.jar'
into "C:/work/mc_test/mg_zombies_1/mods"
}
copy {
from 'build/libs/mfbl_common_plugin-1.0.jar'
into "C:/work/mc_test/war_1/mods"
}
copy {
from 'build/libs/mfbl_common_plugin-1.0.jar'
into "C:/work/mc_test/survival_1/mods"
}
copy {
from 'build/libs/mfbl_common_plugin-1.0.jar'
into "C:/work/workspace/mfbl_web/WebContent/WEB-INF/lib"
}
copy {
from 'build/libs/mfbl_common_plugin-1.0.jar'
into "C:/work/build_lib"
}
}
}
build.finalizedBy(copyJar)
[
{
"modid": "zyblcommon",
"name": "common4mfbl",
"version": "1.0.0",
"description": "common4mfbl",
"dependencies": [
"spongeapi@7.1.0"
],
"requiredMods": [
"spongeapi@7.1.0"
]
}
]
package halo.mfbl.common.mixin;
import halo.mfbl.common.event.PacketEvent;
import io.netty.channel.ChannelHandlerContext;
import net.minecraft.network.INetHandler;
import net.minecraft.network.NetHandlerPlayServer;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(NetworkManager.class)
public class MixinNetworkManager {
@Shadow
private INetHandler packetListener;
@Inject(method = "channelRead0", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/Packet;processPacket(Lnet/minecraft/network/INetHandler;)V"), cancellable = true)
private void readPacket(ChannelHandlerContext p_channelRead0_1_, Packet p_channelRead0_2_, CallbackInfo callbackInfo) {
Player ply=null;
if (packetListener instanceof NetHandlerPlayServer) {
NetHandlerPlayServer handlerPlayServer= (NetHandlerPlayServer) packetListener;
ply= (Player) handlerPlayServer.player;
}
final PacketEvent packetEvent = new PacketEvent(ply,p_channelRead0_2_);
Sponge.getEventManager().post(packetEvent);
}
@Inject(method = "sendPacket(Lnet/minecraft/network/Packet;)V", at = @At("HEAD"), cancellable = true)
private void sendPacket(Packet packetIn, CallbackInfo callbackInfo) {
Player ply=null;
if (packetListener instanceof NetHandlerPlayServer) {
NetHandlerPlayServer handlerPlayServer= (NetHandlerPlayServer) packetListener;
ply= (Player) handlerPlayServer.player;
}
final PacketEvent packetEvent = new PacketEvent(ply,packetIn);
Sponge.getEventManager().post(packetEvent);
}
}
{
"required": true,
"minVersion": "0.7.10",
"package": "halo.mfbl.common.mixin",
"refmap": "mixins.zyblcommon.refmap.json",
"compatibilityLevel": "JAVA_8",
"mixins": [
"MixinNetworkManager"
]
}
{
"mappings": {
"halo/mfbl/common/mixin/MixinNetworkManager": {
"sendPacket(Lnet/minecraft/network/Packet;)V": "Lnet/minecraft/network/NetworkManager;func_179290_a(Lnet/minecraft/network/Packet;)V",
"channelRead0": "Lnet/minecraft/network/NetworkManager;channelRead0(Lio/netty/channel/ChannelHandlerContext;Lnet/minecraft/network/Packet;)V",
"Lnet/minecraft/network/Packet;processPacket(Lnet/minecraft/network/INetHandler;)V": "Lnet/minecraft/network/Packet;func_148833_a(Lnet/minecraft/network/INetHandler;)V"
}
},
"data": {
"notch": {
"halo/mfbl/common/mixin/MixinNetworkManager": {
"sendPacket(Lnet/minecraft/network/Packet;)V": "Lgw;a(Lht;)V",
"channelRead0": "Lgw;a(Lio/netty/channel/ChannelHandlerContext;Lht;)V",
"Lnet/minecraft/network/Packet;processPacket(Lnet/minecraft/network/INetHandler;)V": "Lht;a(Lhb;)V"
}
},
"searge": {
"halo/mfbl/common/mixin/MixinNetworkManager": {
"sendPacket(Lnet/minecraft/network/Packet;)V": "Lnet/minecraft/network/NetworkManager;func_179290_a(Lnet/minecraft/network/Packet;)V",
"channelRead0": "Lnet/minecraft/network/NetworkManager;channelRead0(Lio/netty/channel/ChannelHandlerContext;Lnet/minecraft/network/Packet;)V",
"Lnet/minecraft/network/Packet;processPacket(Lnet/minecraft/network/INetHandler;)V": "Lnet/minecraft/network/Packet;func_148833_a(Lnet/minecraft/network/INetHandler;)V"
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment