Skip to content

Commit

Permalink
Adds a proper api jar and api sources jar for mods to use
Browse files Browse the repository at this point in the history
Also improves code for multiblock formation

Signed-off-by: liach <[email protected]>
  • Loading branch information
liach committed Mar 12, 2019
1 parent 0d6e55f commit 626f753
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 15 deletions.
22 changes: 18 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -325,14 +325,27 @@ task signDevJar(type: JarSigner, dependsOn: 'devJar') {
outputFile = devJar.getArchivePath()
}

task apiZip(type: Zip) {
task apiSourceJar(type: Jar) {
from project.apiRailcraft
include '**/mods/railcraft/api/**/*.java'
from project.apiRailcraft + "/LICENSE.md"
include '**/LICENSE.md'
destinationDir = file(dirDest)
classifier = 'api-sources'
extension = 'jar'
}

task apiJar(type: Jar) {
from sourceSets.api.output
include '**/mods/railcraft/api/**'
from project.apiRailcraft + "/LICENSE.md"
include '**/LICENSE.md'
destinationDir = file(dirDest)
classifier = 'api'
extension = 'zip'
extension = 'jar'
}

build.dependsOn signMainJar, signDevJar, apiZip
build.dependsOn signMainJar, signDevJar, apiSourceJar, apiJar
uploadArchives.shouldRunAfter build

if (project.hasProperty("ftpUsername"))
Expand All @@ -350,7 +363,8 @@ if (project.hasProperty("ftpUsername"))
}

artifacts {
archives apiZip
archives apiSourceJar
archives apiJar
archives devJar
archives jar
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
import mods.railcraft.api.core.RailcraftConstantsAPI;
import mods.railcraft.common.advancements.criterion.MultiBlockFormedTrigger.Instance;
import mods.railcraft.common.blocks.TileRailcraft;
import mods.railcraft.common.blocks.multi.IMultiBlockTile;
import mods.railcraft.common.events.MultiBlockEvent;
import mods.railcraft.common.util.json.JsonTools;
import mods.railcraft.common.util.misc.Conditions;
import mods.railcraft.common.util.misc.Game;
import net.minecraft.advancements.ICriterionInstance;
import net.minecraft.advancements.PlayerAdvancements;
import net.minecraft.advancements.critereon.NBTPredicate;
Expand All @@ -30,7 +30,6 @@
import net.minecraft.util.JsonUtils;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import org.jetbrains.annotations.Nullable;

Expand Down Expand Up @@ -71,9 +70,9 @@ public Instance deserializeInstance(JsonObject json, JsonDeserializationContext

@SubscribeEvent
public void onMultiBlockForm(MultiBlockEvent.Form event) {
TileRailcraft tile = event.getMultiBlock();
TileRailcraft tile = event.getMaster();
GameProfile owner = tile.getOwner();
MinecraftServer server = requireNonNull(FMLCommonHandler.instance().getMinecraftServerInstance());
MinecraftServer server = requireNonNull(Game.getServer());
EntityPlayerMP player = server.getPlayerList().getPlayerByUUID(owner.getId());
if (player == null) {
return; // Offline
Expand All @@ -97,7 +96,6 @@ static final class Instance implements ICriterionInstance {
this.nbt = nbtPredicate;
}

// FIXME: This used to use the master class, but I removed that function and probably broke it. - CovertJaguar
boolean matches(TileRailcraft tile) {
return Conditions.check(clazz, tile.getClass()) && nbt.test(tile.writeToNBT(new NBTTagCompound()));
}
Expand Down
11 changes: 5 additions & 6 deletions src/main/java/mods/railcraft/common/events/MultiBlockEvent.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,17 @@
package mods.railcraft.common.events;

import mods.railcraft.common.blocks.TileRailcraft;
import mods.railcraft.common.blocks.multi.IMultiBlockTile;
import net.minecraftforge.fml.common.eventhandler.Event;

public abstract class MultiBlockEvent extends Event {
private final TileRailcraft multiBlock;
private final TileRailcraft master;

MultiBlockEvent(TileRailcraft tile) {
this.multiBlock = tile;
MultiBlockEvent(TileRailcraft master) {
this.master = master;
}

public TileRailcraft getMultiBlock() {
return multiBlock;
public TileRailcraft getMaster() {
return master;
}

public static final class Form extends MultiBlockEvent {
Expand Down

0 comments on commit 626f753

Please sign in to comment.