Skip to content

Commit

Permalink
Update to 1.20.1
Browse files Browse the repository at this point in the history
  • Loading branch information
sekwah41 committed Sep 25, 2023
1 parent 87e3408 commit c65b706
Show file tree
Hide file tree
Showing 13 changed files with 77 additions and 31 deletions.
11 changes: 5 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
buildscript {
repositories {
maven { url = 'https://maven.minecraftforge.net' }
maven { url = 'https://maven.parchmentmc.org' }
maven { url = 'https://repo.spongepowered.org/maven' }
mavenCentral()
}
dependencies {
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
classpath 'org.parchmentmc:librarian:1.+'
classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
}
}

plugins {
id 'com.github.johnrengelman.shadow' version '7.1.2'
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
id 'com.github.johnrengelman.shadow' version '8.1.1'
id 'org.parchmentmc.librarian.forgegradle' version '1.+'
}

apply plugin: 'net.minecraftforge.gradle'
Expand Down Expand Up @@ -99,7 +98,7 @@ mixin {

shadowJar {
configurations = [project.configurations.shade]
classifier = ''
archiveClassifier.set('')
}

reobf {
Expand All @@ -110,7 +109,7 @@ build.dependsOn shadowJar
build.dependsOn reobfShadowJar

jar {
classifier = 'slim'
archiveClassifier = 'slim'
manifest {
attributes([
"Specification-Title" : "love-accessibility",
Expand Down
6 changes: 3 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
minecraft_version=1.18.2
forge_version=40.1.0
minecraft_version=1.20.1
forge_version=47.1.0
mod_version=0.1.0
parchment_version=2022.04.23-nightly-SNAPSHOT
parchment_version=2023.09.03

org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
10 changes: 10 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
pluginManagement {
repositories {
gradlePluginPortal()
maven {
name = 'MinecraftForge'
url = 'https://maven.minecraftforge.net/'
}
maven { url = 'https://maven.parchmentmc.org' } // Add this line
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,15 @@
import com.lovetropics.accessibility.LoveAccessibility;
import com.lovetropics.accessibility.client.narrator.ui.ContainerNarrator;
import com.lovetropics.accessibility.client.narrator.world.WorldNarrator;
import com.lovetropics.accessibility.mixin.GameNarratorAccessor;
import com.mojang.text2speech.Narrator;
import net.minecraft.client.Minecraft;
import net.minecraft.client.NarratorStatus;
import net.minecraft.client.gui.chat.NarratorChatListener;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.util.ObfuscationReflectionHelper;

import javax.annotation.Nullable;
import java.util.Objects;
Expand Down Expand Up @@ -65,11 +64,11 @@ private static NarratorOutput getNarratorOutput() {
}

private static Narrator getVanillaNarrator() {
return ObfuscationReflectionHelper.getPrivateValue(NarratorChatListener.class, NarratorChatListener.INSTANCE, "f_93313_");
return ((GameNarratorAccessor) (Minecraft.getInstance().getNarrator())).getNarrator();
}

private static NarratorStatus getNarratorStatus() {
return Minecraft.getInstance().options.narratorStatus;
return Minecraft.getInstance().options.narrator().get();
}

private record Narrators(WorldNarrator world, ContainerNarrator container) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
import com.lovetropics.accessibility.LoveAccessibility;
import com.mojang.text2speech.Narrator;
import dev.gegy.nvda_controller_client.NvdaControllerClient;
import net.minecraft.client.GameNarrator;
import org.lwjgl.util.tinyfd.TinyFileDialogs;

import javax.annotation.Nullable;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public final class NvdaNarrator {
private static Narrator instance;
Expand Down Expand Up @@ -35,7 +40,20 @@ public boolean active() {
public void destroy() {
}
};
} catch (final Exception e) {

if(nvda != null && !instance.active()) {
// Added just as a little help window in case NVDA is installed but not active
String programFilesPath = System.getenv("ProgramFiles(X86)");
Path folderPath = Paths.get(programFilesPath, "NVDA\\nvda.exe");
if(Files.exists(folderPath) && !TinyFileDialogs.tinyfd_messageBox("Minecraft", "NVDA detected but not active, do you want to try to default back to the native narrator?\n\nIf this problem persists, please report it at https://github.com/LoveTropics/LoveAccessibility", "yesno", "error", true)) {
throw new GameNarrator.NarratorInitException("NVDA Narrator library is not active");
}
instance = null;
}

} catch(GameNarrator.NarratorInitException e) {
throw e;
} catch(final Exception e) {
LoveAccessibility.LOGGER.error("Failed to load NVDA controller client", e);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.lovetropics.accessibility.client.narrator.description;

import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.core.BlockPos;
import net.minecraft.core.NonNullList;
import net.minecraft.network.chat.CommonComponents;
Expand All @@ -13,21 +15,24 @@
import javax.annotation.Nullable;

public record BlockDescription(Component component) {
public static BlockDescription describe(final Level level, final BlockPos pos) {
public static BlockDescription describe(final Minecraft minecraft, final Level level, final BlockPos pos) {
final BlockEntity entity = level.getBlockEntity(pos);
if (entity instanceof SignBlockEntity sign) {
return describeSign(sign);
return describeSign(minecraft.player, sign);
} else if (entity instanceof CampfireBlockEntity campfire) {
return describeInventory(campfire.getItems());
}

return null;
}

private static BlockDescription describeSign(final SignBlockEntity sign) {
Component message = sign.getMessage(0, false);
for (int i = 1; i < SignBlockEntity.LINES; i++) {
message = CommonComponents.joinForNarration(message, sign.getMessage(i, false));
private static BlockDescription describeSign(LocalPlayer player, final SignBlockEntity sign) {
Component message = player == null ? sign.getFrontText().getMessage(0, false)
: sign.getTextFacingPlayer(player).getMessage(0, false);
// Was using SignBlockEntity.LINES but that no longer seems to exist
for (int i = 1; i < 4; i++) {
message = CommonComponents.joinForNarration(message, player == null ? sign.getFrontText().getMessage(i, false)
: sign.getTextFacingPlayer(player).getMessage(i, false));
}
return new BlockDescription(message);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import net.minecraft.network.chat.CommonComponents;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.world.item.ItemStack;

import javax.annotation.Nullable;
Expand All @@ -18,7 +17,7 @@ public static ItemDescription describe(final ItemStack item) {
}

private static Component describeComponent(final ItemStack item) {
final MutableComponent prefix = new TextComponent(item.getCount() + " ");
final MutableComponent prefix = Component.literal(item.getCount() + " ");
final Component typeName = item.getItem().getName(item);
if (item.hasCustomHoverName()) {
final Component displayName = item.getHoverName();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ private LookingAtBlock evaluateBlockTarget(final Minecraft minecraft, final Clie
final BlockPos pos = blockResult.getBlockPos();
final BlockState state = level.getBlockState(pos);
if (!state.isAir() && !isSubmergedIn(minecraft, state.getBlock())) {
final BlockDescription details = BlockDescription.describe(level, pos);
final BlockDescription details = BlockDescription.describe(minecraft, level, pos);
return new LookingAtBlock(pos, state.getBlock(), details);
}
return null;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.lovetropics.accessibility.mixin;

import com.mojang.text2speech.Narrator;
import net.minecraft.client.GameNarrator;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(GameNarrator.class)
public interface GameNarratorAccessor {

@Accessor("narrator")
Narrator getNarrator();

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

import com.lovetropics.accessibility.client.narrator.NvdaNarrator;
import com.mojang.text2speech.Narrator;
import net.minecraft.client.gui.chat.NarratorChatListener;
import net.minecraft.client.GameNarrator;
import org.lwjgl.util.tinyfd.TinyFileDialogs;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Mutable;
Expand All @@ -11,8 +12,8 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(NarratorChatListener.class)
public class NarratorChatListenerMixin {
@Mixin(GameNarrator.class)
public class GameNarratorMixin {
@Mutable
@Shadow
@Final
Expand Down
6 changes: 3 additions & 3 deletions src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
modLoader="javafml"
loaderVersion="[36,)"
loaderVersion="[41,)"
license="All Rights Reserved"

[[mods]]
Expand All @@ -14,13 +14,13 @@ description='''
[[dependencies.love_accessibility]]
modId="forge"
mandatory=true
versionRange="[36,)"
versionRange="[46,)"
ordering="NONE"
side="BOTH"

[[dependencies.love_accessibility]]
modId="minecraft"
mandatory=true
versionRange="[1.18.2,)"
versionRange="[1.20.1,)"
ordering="NONE"
side="BOTH"
3 changes: 2 additions & 1 deletion src/main/resources/love_accessibility.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
"mixins": [
],
"client": [
"NarratorChatListenerMixin"
"GameNarratorMixin",
"GameNarratorAccessor"
],
"injectors": {
"defaultRequire": 1
Expand Down

0 comments on commit c65b706

Please sign in to comment.