Skip to content

Commit

Permalink
1.6.4 partial support (#170)
Browse files Browse the repository at this point in the history
  • Loading branch information
thecatcore committed Jun 27, 2024
1 parent 6c60a8d commit 052b567
Show file tree
Hide file tree
Showing 103 changed files with 1,850 additions and 133 deletions.
40 changes: 20 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,25 @@ Fabric API is the library for essential hooks and interoperability mechanisms fo
For support, consider joining the [Legacy Fabric discord server](https://legacyfabric.net/discord) or opening an issue.

## Modules available and tested by minecraft version
✅ = Working as expected\
✅ = Working as expected.\
⚠ = Working but has some issues.\
? = Not sure if it was tested or working correctly\
❌ = Not working at all, likely crashing
? = Not tested, might not work as intended.\
❌ = Not ported or probably not working.

| | 1.7.10 | 1.8 | 1.8.9 | 1.9.4 | 1.10.2 | 1.11.2 | 1.12.2 | 1.13.2 |
|----------------------|--------|-----|-------|-------|--------|--------|--------|--------|
| api-base |||||||||
| command-api-v1 |||||||||
| command-api-v2 |||||||||
| crash-report-info-v1 |||||||||
| entity-events-v1 |||||||||
| gamerule-api-v1 |||||||| ? |
| item-groups-v1 |||||||||
| keybindings-api-v1 | #132 ||||||||
| lifecycle-events-v1 |||||||||
| logger-api-v1 |||||||||
| networking-api-v1 |||||||||
| permissions-api-v1 |||||||||
| registry-sync-api-v1 |||||||||
| rendering-api-v1 |||||||||
| resource-loader-v1 |||||||||
| | 1.6.4 | 1.7.10 | 1.8 | 1.8.9 | 1.9.4 | 1.10.2 | 1.11.2 | 1.12.2 | 1.13.2 |
|----------------------|-------------------------------|--------|-----|-------|-------|--------|--------|--------|--------|
| api-base | |||||||||
| command-api-v1 | |||||||||
| command-api-v2 | | ||||||||
| crash-report-info-v1 | |||||||||
| entity-events-v1 | |||||||||
| gamerule-api-v1 | ? | ||||||| ? |
| item-groups-v1 | |||||||||
| keybindings-api-v1 | | ||||||||
| lifecycle-events-v1 | |||||||||
| logger-api-v1 | |||||||||
| networking-api-v1 | | ||||||||
| permissions-api-v1 | |||||||||
| registry-sync-api-v1 | ❌ (Depends on networking-api) | ||||||||
| rendering-api-v1 | |||||||||
| resource-loader-v1 | |||||||||
3 changes: 2 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ def supportedVersions = [
"1.9.4",
"1.8.9",
"1.8",
"1.7.10"
"1.7.10",
"1.6.4"
]
def supportedRanges = [
// ["1.8", "1.8.9", false] // third parameter is whether or not to include snapshots in the range.
Expand Down
14 changes: 7 additions & 7 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ yarn_mappings_build = 530

## Module versions
legacy-fabric-api-base.version = 1.1.0
legacy-fabric-command-api-v1.version = 1.0.0
legacy-fabric-command-api-v1.version = 1.0.1
legacy-fabric-command-api-v2.version = 1.0.2
legacy-fabric-crash-report-info-v1.version = 1.0.0
legacy-fabric-entity-events-v1.version = 1.0.0
legacy-fabric-gamerule-api-v1.version = 1.0.0
legacy-fabric-item-groups-v1.version = 2.0.0
legacy-fabric-keybindings-api-v1.version = 1.0.1
legacy-fabric-lifecycle-events-v1.version = 1.0.1
legacy-fabric-item-groups-v1.version = 2.1.0
legacy-fabric-keybindings-api-v1.version = 1.0.2
legacy-fabric-lifecycle-events-v1.version = 1.1.0
legacy-fabric-logger-api-v1.version = 1.0.4
legacy-fabric-networking-api-v1.version = 2.0.1
legacy-fabric-permissions-api-v1.version = 1.0.1
legacy-fabric-networking-api-v1.version = 2.0.2
legacy-fabric-permissions-api-v1.version = 1.1.0
legacy-fabric-registry-sync-api-v1.version = 2.2.0
legacy-fabric-rendering-api-v1.version = 1.0.0
legacy-fabric-resource-loader-v1.version = 2.1.1
legacy-fabric-resource-loader-v1.version = 2.2.0
1 change: 1 addition & 0 deletions legacy-fabric-command-api-v1/common/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
minVersionIncluded=1.3
maxVersionIncluded=1.12.2
artifactSuffix=
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
],
"description": "Adds command-related hooks.",
"depends": {
"minecraft": "${minecraft_version}"
"minecraft": "${minecraft_version}",
"legacy-fabric-lifecycle-events-v1-common": "*"
},
"custom": {
"modmenu": {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Copyright (c) 2020 - 2024 Legacy Fabric
* Copyright (c) 2016 - 2022 FabricMC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package net.legacyfabric.fabric.test.command;

import net.fabricmc.api.ModInitializer;

import net.legacyfabric.fabric.api.logger.v1.Logger;
import net.legacyfabric.fabric.api.registry.CommandRegistry;

public class CommandV1Test implements ModInitializer {
public static final Logger LOGGER = Logger.get("LegacyFabricAPI", "Test", "CommandV1Test");

@Override
public void onInitialize() {
CommandRegistry.INSTANCE.register(new ModMetadataCommandV1());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
/*
* Copyright (c) 2020 - 2024 Legacy Fabric
* Copyright (c) 2016 - 2022 FabricMC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package net.legacyfabric.fabric.test.command;

import java.util.Optional;

import net.minecraft.command.AbstractCommand;
import net.minecraft.command.CommandException;
import net.minecraft.command.CommandSource;

import net.fabricmc.loader.api.FabricLoader;
import net.fabricmc.loader.api.ModContainer;
import net.fabricmc.loader.api.metadata.ContactInformation;

public class ModMetadataCommandV1 extends AbstractCommand {
@Override
public String getCommandName() {
return "modmetadatav1";
}

@Override
public String getUsageTranslationKey(CommandSource source) {
return "modmetadatav1";
}

@Override
public void execute(CommandSource source, String[] args) throws CommandException {
if (args.length > 0) {
Optional<ModContainer> optionalModContainer = FabricLoader.getInstance().getModContainer(args[0]);

if (optionalModContainer.isPresent()) {
ModContainer container = optionalModContainer.get();

StringBuilder builder = new StringBuilder();
builder.append("Mod Name: ".concat(container.getMetadata().getName()).concat("\n"));
builder.append("Description: ".concat(container.getMetadata().getDescription()).concat("\n"));
ContactInformation contact = container.getMetadata().getContact();

if (contact.get("issues").isPresent()) {
StringBuilder issueText = new StringBuilder("");
issueText.append("Issues: ");
StringBuilder issueUrl = new StringBuilder(contact.get("issues").get());
issueText.append(issueUrl);
issueText.append("\n");
builder.append(issueText);
}

if (contact.get("sources").isPresent()) {
StringBuilder sourcesText = new StringBuilder("");
sourcesText.append("Sources: ");
StringBuilder sourcesUrl = new StringBuilder(contact.get("sources").get());
sourcesText.append(sourcesUrl);
sourcesText.append("\n");
builder.append(sourcesText);
}

builder.append("Metadata Type: ".concat(container.getMetadata().getType()).concat("\n"));
CommandV1Test.LOGGER.info(builder.toString());
} else {
CommandV1Test.LOGGER.error("Couldn't find Mod container for mod id '" + args[0] + "'");
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"schemaVersion": 1,
"id": "legacy-fabric-command-api-v1-testmod",
"description": "Tests for api features",
"version": "1.0.0",
"entrypoints": {
"main": [
"net.legacyfabric.fabric.test.command.CommandV1Test"
]
},
"depends": {
"minecraft": "${minecraft_version}"
}
}
2 changes: 1 addition & 1 deletion legacy-fabric-command-api-v2/1.7.10/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
minVersionIncluded=1.3
minVersionIncluded=1.7.10
maxVersionIncluded=1.7.10
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
* Copyright (c) 2020 - 2024 Legacy Fabric
* Copyright (c) 2016 - 2022 FabricMC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package net.legacyfabric.fabric.mixin.item.group.client;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;

import net.minecraft.client.gui.screen.Screen;

import net.legacyfabric.fabric.impl.item.group.ScreenAccessor;

@Mixin(Screen.class)
public abstract class MixinScreen implements ScreenAccessor {
@Shadow
public abstract void renderTooltip(String text, int x, int y);

@Override
public void callRenderTooltip(String text, int x, int y) {
this.renderTooltip(text, x, y);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"ItemGroupMixin"
],
"client": [
"client.MixinScreen"
],
"injectors": {
"defaultRequire": 1
Expand Down
Empty file.
2 changes: 2 additions & 0 deletions legacy-fabric-item-groups-v1/1.6.4/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
minVersionIncluded=1.3
maxVersionIncluded=1.6.4
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* Copyright (c) 2020 - 2024 Legacy Fabric
* Copyright (c) 2016 - 2022 FabricMC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package net.legacyfabric.fabric.impl.item.group;

import java.util.List;
import java.util.function.BiConsumer;
import java.util.function.Supplier;

import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.itemgroup.ItemGroup;

import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;

public class FabricItemGroup extends ItemGroup {
private final Supplier<ItemStack> itemSupplier;
private final BiConsumer<List<ItemStack>, ItemGroup> stacksForDisplay;

public FabricItemGroup(int index, String id, Supplier<ItemStack> itemSupplier, BiConsumer<List<ItemStack>, ItemGroup> stacksForDisplay) {
super(index, id);
this.itemSupplier = itemSupplier;
this.stacksForDisplay = stacksForDisplay;
}

@Override
@Environment(EnvType.CLIENT)
public Item method_3320() {
return this.itemSupplier.get().getItem();
}

@Override
@Environment(EnvType.CLIENT)
public void showItems(List stacks) {
if (stacksForDisplay != null) {
stacksForDisplay.accept(stacks, this);
return;
}

super.showItems(stacks);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
* Copyright (c) 2020 - 2024 Legacy Fabric
* Copyright (c) 2016 - 2022 FabricMC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package net.legacyfabric.fabric.mixin.item.group;

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;

import net.minecraft.item.itemgroup.ItemGroup;

import net.legacyfabric.fabric.impl.item.group.FabricCreativeGuiComponents;
import net.legacyfabric.fabric.impl.item.group.FabricItemGroup;

@Mixin(ItemGroup.class)
public class ItemGroupMixin {
@Inject(method = "<clinit>", at = @At("RETURN"))
private static void classInit(CallbackInfo ci) {
FabricCreativeGuiComponents.ITEM_GROUP_CREATOR = FabricItemGroup::new;
}
}
Loading

0 comments on commit 052b567

Please sign in to comment.