├── .gitignore ├── .gitmodules ├── AntiGhost.xcf ├── COMPILING.md ├── LICENSE ├── build.gradle ├── logo.png ├── settings.gradle └── src └── main ├── java └── de │ └── guntram │ └── mcmod │ └── antighost │ └── AntiGhost.java └── resources ├── assets └── antighost │ └── lang │ ├── be_by.json │ ├── cs_cz.json │ ├── de_at.json │ ├── de_ch.json │ ├── de_de.json │ ├── el_gr.json │ ├── en_us.json │ ├── es_ar.json │ ├── es_cl.json │ ├── es_ec.json │ ├── es_es.json │ ├── es_mx.json │ ├── es_uy.json │ ├── es_ve.json │ ├── et_ee.json │ ├── fi_fi.json │ ├── fr_ca.json │ ├── fr_fr.json │ ├── he_il.json │ ├── hu_hu.json │ ├── id_id.json │ ├── it_it.json │ ├── ja_jp.json │ ├── ko_kr.json │ ├── nl_be.json │ ├── nl_nl.json │ ├── nn_no.json │ ├── no_no.json │ ├── pl_pl.json │ ├── pt_br.json │ ├── pt_pt.json │ ├── ro_ro.json │ ├── ru_ru.json │ ├── sr_sp.json │ ├── sv_se.json │ ├── tr_tr.json │ ├── tt_ru.json │ ├── uk_ua.json │ ├── vi_vn.json │ ├── zh_cn.json │ ├── zh_hk.json │ └── zh_tw.json ├── fabric.mod.json └── icon.png /.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | gradle 3 | .gradle 4 | .nb-gradle 5 | gradlew 6 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Versionfiles"] 2 | path = Versionfiles 3 | url = https://github.com/gbl/Versionfiles.git 4 | -------------------------------------------------------------------------------- /AntiGhost.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gbl/AntiGhost/3767ea6fa499568df4d3da1f1f428b5f6678ec48/AntiGhost.xcf -------------------------------------------------------------------------------- /COMPILING.md: -------------------------------------------------------------------------------- 1 | # TL;DR 2 | 3 | - Get a version of gradle that's at least 4.10.2 4 | - `git clone ` 5 | - `git branch -r` to see available branches 6 | - `git checkout fabric_1_16` to select your branch 7 | - `git submodule init` 8 | - `git submodule update` 9 | - `/path/to/gradle build` 10 | 11 | # How to compile this mod 12 | 13 | Because I created several mods, which have some things in common, the structure of my mods is a bit different from the example mod that Fabric or Forge provide. 14 | 15 | In particular, I don't want the gradle files to be duplicated into every single mod repository, and some common files that contain version info for Fabric, its tools, and some library mods, have been moved to a (common) submodule. 16 | 17 | # Prerequisites 18 | 19 | You need a gradle installation which does not come with the mod. At the time of this writing, the version of gradle used is 4.10.2. Gradle 6.5 has been tested to work too, so versions between those *should* as well. 20 | 21 | You might already have gradle installed, especially when you're running Linux - if so, make sure it's new enough. For example, Ubuntu 18.04 has gradle 4.4.1 which is not. Run `gradle -version` to check. 22 | 23 | If you have the Fabric example mod installed, you can use the gradle installation from there. Else, download a release from https://gradle.org/releases/ (binary only is sufficient) and unpack it somewhere. 24 | 25 | # Versionfiles submodule 26 | 27 | All my mods use the same repository of files that match MineCraft, Fabric, and common libraries versions. This is included in the mod repository as a Versionfiles submodule, and you should get it when cloning the repo. Run `git submodule init`, then `git submodule update` to get the current version of the files. Do this after selecting your branch, see below. 28 | 29 | # Compiling the mod 30 | 31 | There are branches for the various versions of MineCraft that are supported by the mod. Run `git branch -r` to see which branches there are, then `git checkout branchname` without the `origin/` part, for example, `git checkout fabric_1_16`. 32 | 33 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Guntram Blohm 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | dependencies { 3 | classpath 'de.guntram.mcmod:crowdin-translate:1.4+1.19-pre2' 4 | } 5 | repositories { 6 | maven { 7 | name = 'CrowdinTranslate source' 8 | url = "https://minecraft.guntram.de/maven/" 9 | } 10 | } 11 | } 12 | 13 | plugins { 14 | id 'fabric-loom' version '1.2-SNAPSHOT' 15 | id "com.modrinth.minotaur" version "2.+" 16 | id "com.matthewprenger.cursegradle" version "1.4.0" 17 | } 18 | 19 | apply plugin: 'de.guntram.mcmod.crowdin-translate' 20 | crowdintranslate.crowdinProjectName = 'antighost' 21 | crowdintranslate.minecraftProjectName = 'antighost' 22 | crowdintranslate.verbose = false 23 | 24 | repositories { 25 | maven { 26 | url = "https://maven.fabricmc.net" 27 | } 28 | maven { 29 | url = "https://minecraft.guntram.de/maven/" 30 | } 31 | maven { 32 | url = "https://maven.terraformersmc.com/releases/com/terraformersmc/modmenu/" 33 | } 34 | } 35 | 36 | sourceCompatibility = 17 37 | targetCompatibility = 17 38 | 39 | ext.Versions = new Properties() 40 | Versions.load(file("Versionfiles/mcversion-1.20.4.properties").newReader()) 41 | 42 | archivesBaseName = "antighost" 43 | ext.projectVersion = "1.1.5" 44 | 45 | version = "${Versions['minecraft_version']}-fabric${Versions['fabric_versiononly']}-${project.projectVersion}" 46 | 47 | loom { 48 | mixin.defaultRefmapName = "AntiGhost-refmap.json" 49 | } 50 | 51 | processResources { 52 | inputs.property "version", project.version 53 | 54 | filesMatching("fabric.mod.json") { 55 | expand "version": project.version 56 | } 57 | } 58 | 59 | dependencies { 60 | minecraft "com.mojang:minecraft:${Versions['minecraft_version']}" 61 | mappings "net.fabricmc:yarn:${Versions['yarn_mappings']}:v2" 62 | modImplementation "net.fabricmc:fabric-loader:${Versions['loader_version']}" 63 | modImplementation "net.fabricmc.fabric-api:fabric-api:${Versions['fabric_version']}" 64 | modImplementation "de.guntram.mcmod:crowdin-translate:${Versions['crowdintranslate_version']}" 65 | include "de.guntram.mcmod:crowdin-translate:${Versions['crowdintranslate_version']}" 66 | } 67 | 68 | java { 69 | withSourcesJar() 70 | } 71 | 72 | jar { 73 | from "LICENSE" 74 | } 75 | 76 | processResources { 77 | dependsOn downloadTranslations 78 | } 79 | 80 | import com.modrinth.minotaur.TaskModrinthUpload 81 | 82 | modrinth { 83 | projectId = 'antighost' 84 | versionName = 'antighost' 85 | uploadFile = remapJar 86 | } 87 | 88 | curseforge { 89 | apiKey = System.getenv("CURSEFORGE_TOKEN") ?: "0" 90 | project { 91 | id = '273279' 92 | releaseType = 'release' 93 | addGameVersion("${Versions['minecraft_version']}") 94 | addGameVersion("Java "+targetCompatibility) 95 | addGameVersion("Fabric") 96 | mainArtifact(remapJar) 97 | } 98 | options { 99 | forgeGradleIntegration = false 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gbl/AntiGhost/3767ea6fa499568df4d3da1f1f428b5f6678ec48/logo.png -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | maven { 4 | name = 'Fabric' 5 | url = 'https://maven.fabricmc.net/' 6 | } 7 | gradlePluginPortal() 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/de/guntram/mcmod/antighost/AntiGhost.java: -------------------------------------------------------------------------------- 1 | package de.guntram.mcmod.antighost; 2 | 3 | import de.guntram.mcmod.crowdintranslate.CrowdinTranslate; 4 | import net.fabricmc.api.ClientModInitializer; 5 | import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; 6 | import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; 7 | import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; 8 | import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; 9 | import net.minecraft.client.MinecraftClient; 10 | import net.minecraft.client.network.ClientPlayNetworkHandler; 11 | import net.minecraft.client.network.ClientPlayerEntity; 12 | import net.minecraft.client.option.KeyBinding; 13 | import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; 14 | import net.minecraft.text.Text; 15 | import net.minecraft.util.math.BlockPos; 16 | import net.minecraft.util.math.Direction; 17 | import static org.lwjgl.glfw.GLFW.GLFW_KEY_G; 18 | 19 | public class AntiGhost implements ClientModInitializer 20 | { 21 | static final String MODID="antighost"; 22 | static KeyBinding requestBlocks; 23 | 24 | @Override 25 | public void onInitializeClient() 26 | { 27 | final String category="key.categories.antighost"; 28 | requestBlocks = new KeyBinding("key.antighost.reveal", GLFW_KEY_G, category); 29 | CrowdinTranslate.downloadTranslations(MODID); 30 | KeyBindingHelper.registerKeyBinding(requestBlocks); 31 | ClientTickEvents.END_CLIENT_TICK.register(e->keyPressed()); 32 | ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> { 33 | dispatcher.register( 34 | ClientCommandManager.literal("ghost").executes(c -> { 35 | this.execute(); 36 | return 0; 37 | }) 38 | ); 39 | }); 40 | } 41 | 42 | public void keyPressed() { 43 | ClientPlayerEntity player = MinecraftClient.getInstance().player; 44 | if (requestBlocks.wasPressed()) { 45 | this.execute(); 46 | player.sendMessage(Text.translatable("msg.request"), false); 47 | } 48 | } 49 | 50 | public void execute() { 51 | MinecraftClient mc=MinecraftClient.getInstance(); 52 | ClientPlayNetworkHandler conn = mc.getNetworkHandler(); 53 | if (conn==null) 54 | return; 55 | BlockPos pos=mc.player.getBlockPos(); 56 | for (int dx=-4; dx<=4; dx++) 57 | for (int dy=-4; dy<=4; dy++) 58 | for (int dz=-4; dz<=4; dz++) { 59 | PlayerActionC2SPacket packet=new PlayerActionC2SPacket( 60 | PlayerActionC2SPacket.Action.ABORT_DESTROY_BLOCK, 61 | new BlockPos(pos.getX()+dx, pos.getY()+dy, pos.getZ()+dz), 62 | Direction.UP // with ABORT_DESTROY_BLOCK, this value is unused 63 | ); 64 | conn.sendPacket(packet); 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/be_by.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Reveal ghost blocks", 4 | "msg.request": "requesting resend of blocks around you" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/cs_cz.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Zobrazit ghost bloky", 4 | "msg.request": "Žádám o opětovné zaslání bloků" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/de_at.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Geisterblöcke anzeigen", 4 | "msg.request": "Fordere Umgebungsblöcke neu an" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/de_ch.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Geisterblöcke anzeigen", 4 | "msg.request": "Fordere Umgebungsblöcke neu an" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/de_de.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Geisterblöcke anzeigen", 4 | "msg.request": "Fordere Umgebungsblöcke neu an" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/el_gr.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Αποκάλυψη μπλοκ φαντασμάτων", 4 | "msg.request": "αιτούμενη εκ νέου αποστολή μπλοκ γύρω σας" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/en_us.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Reveal ghost blocks", 4 | "msg.request": "requesting resend of blocks around you" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/es_ar.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiFantasma", 3 | "key.antighost.reveal": "Mostrar bloques fantasmas", 4 | "msg.request": "Solicitando reenvío de bloques a tu alrededor" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/es_cl.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiFantasma", 3 | "key.antighost.reveal": "Mostrar bloques fantasmas", 4 | "msg.request": "Solicitando reenvío de bloques a tu alrededor" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/es_ec.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiFantasma", 3 | "key.antighost.reveal": "Mostrar bloques fantasmas", 4 | "msg.request": "Solicitando reenvío de bloques a tu alrededor" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/es_es.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiFantasma", 3 | "key.antighost.reveal": "Mostrar bloques fantasmas", 4 | "msg.request": "Solicitando reenvío de bloques a tu alrededor" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/es_mx.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiFantasma", 3 | "key.antighost.reveal": "Mostrar bloques fantasmas", 4 | "msg.request": "Solicitando reenvío de bloques a tu alrededor" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/es_uy.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiFantasma", 3 | "key.antighost.reveal": "Mostrar bloques fantasmas", 4 | "msg.request": "Solicitando reenvío de bloques a tu alrededor" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/es_ve.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiFantasma", 3 | "key.antighost.reveal": "Mostrar bloques fantasmas", 4 | "msg.request": "Solicitando reenvío de bloques a tu alrededor" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/et_ee.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Too kummitusplokid nähtavale", 4 | "msg.request": "Sind ümbritsevate plokkide uuesti saatmine taotletud" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/fi_fi.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiHaamu", 3 | "key.antighost.reveal": "Paljastetaan haamupalikat", 4 | "msg.request": "pyydetään, että palikat ympärilläsi lähetetään uudelleen" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/fr_ca.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Afficher les blocs fantômes", 4 | "msg.request": "Demander un renvoi des blocs autour de vous" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/fr_fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Afficher les blocs fantômes", 4 | "msg.request": "Demander un renvoi des blocs autour de vous" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/he_il.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "אנטי-רפאים", 3 | "key.antighost.reveal": "לחשוף בלוקים רפאים", 4 | "msg.request": "מבקש שליחה מחדש של בלוקים מסביבך" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/hu_hu.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost HUN", 3 | "key.antighost.reveal": "Ghost Block a közelben", 4 | "msg.request": "Kérelem, hogy a blokkokat újraküldje" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/id_id.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "Anti Hantu", 3 | "key.antighost.reveal": "Ungkapkan blok hantu", 4 | "msg.request": "Meminta pengiriman ulang blok di sekitar anda" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/it_it.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Mostra blocchi fantasma", 4 | "msg.request": "richiedendo reinvio dei blocchi intorno a te" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/ja_jp.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "ゴーストブロックを表示", 4 | "msg.request": "周りのブロックの再送信を要求" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/ko_kr.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "유령 블록 표시", 4 | "msg.request": "사용자 주변의 블록 재전송 요청" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/nl_be.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Ghost blokken weergeven", 4 | "msg.request": "Ghost blokken opnieuw weergeven" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/nl_nl.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Ghost blokken weergeven", 4 | "msg.request": "Ghost blokken opnieuw weergeven" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/nn_no.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "Antispøke", 3 | "key.antighost.reveal": "Vis spøkeblokker", 4 | "msg.request": "be om å sende blokker på nytt rundt deg" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/no_no.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "Antispøke", 3 | "key.antighost.reveal": "Vis spøkeblokker", 4 | "msg.request": "be om å sende blokker på nytt rundt deg" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/pl_pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntyNiewidzialneBloki", 3 | "key.antighost.reveal": "Pokaż niewidzialne bloki", 4 | "msg.request": "próba ponownego wysłania bloków wokół ciebie" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/pt_br.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Revelar blocos fantasmas", 4 | "msg.request": "solicitando o reenvio de blocos em sua volta" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/pt_pt.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Revelar blocos fantasmas", 4 | "msg.request": "solicitando o reenvio de blocos ao seu redor" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/ro_ro.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "Anti-Ghost", 3 | "key.antighost.reveal": "Dezvăluie blocurile fantomă", 4 | "msg.request": "Solicitare retrimiterea informaților legat de blocurile din jur tău" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/ru_ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Обновить блоки вокруг себя", 4 | "msg.request": "§9Блоки были обновлены" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/sr_sp.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "АнтиГхост", 3 | "key.antighost.reveal": "Откријте блокове духова", 4 | "msg.request": "захтевајући поновно слање блокова око вас" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/sv_se.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiSpöke", 3 | "key.antighost.reveal": "Visa spök blocks", 4 | "msg.request": "begär att block ska skickas om omkring dig" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/tr_tr.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Hayalet blokları göster", 4 | "msg.request": "etrafındaki blokların yeniden gönderilmesi isteniyor" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/tt_ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "modmenu.summaryTranslation.antighost": "Сезне ялган блоклардан чыгарга ярдәм итүче мод.", 3 | "modmenu.descriptionTranslation.antighost": "Сезне ялган блоклардан чыгарга ярдәм итүче мод. Блоклар яңартуының соравын җибәрү өчен «/ghost» боерыгын кулланыгыз яки «g» төймәсенә (яңадан билгеләргә мөмкин) басыгыз.", 4 | "key.categories.antighost": "AntiGhost", 5 | "key.antighost.reveal": "Үз тирәсендә блокларны яңарту", 6 | "msg.request": "§9Блоклар яңартуын сорау җиберелде." 7 | } 8 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/uk_ua.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "Показати невидимі блоки", 4 | "msg.request": "Вимагає повторного надсилання блоків навколо вас" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/vi_vn.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "Chống khối ma", 3 | "key.antighost.reveal": "Chỉ dẫn đến các khối ma", 4 | "msg.request": "Yêu cầu gửi lại các khối xung quanh bạn" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/zh_cn.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "显示幽灵块", 4 | "msg.request": "重新发送你周围方块的状态请求" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/zh_hk.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "显示幽灵块", 4 | "msg.request": "重新发送你周围方块的状态请求" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/antighost/lang/zh_tw.json: -------------------------------------------------------------------------------- 1 | { 2 | "key.categories.antighost": "AntiGhost", 3 | "key.antighost.reveal": "顯示幽靈方塊", 4 | "msg.request": "重新整理周圍的方塊" 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/fabric.mod.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 1, 3 | "id": "antighost", 4 | "version": "${version}", 5 | "environment": "client", 6 | "entrypoints": { 7 | "client": [ "de.guntram.mcmod.antighost.AntiGhost" ] 8 | }, 9 | "custom": { 10 | "modupdater": { 11 | "strategy": "json", 12 | "url": "https://raw.githubusercontent.com/gbl/ModVersionInfo/master/AntiGhost.json" 13 | } 14 | }, 15 | "depends": { 16 | "fabric-api": "*" 17 | }, 18 | "recommends": { 19 | "modmenu" : "*" 20 | }, 21 | "name": "AntiGhost", 22 | "description": "Mod that helps you get rid of ghost blocks around yourself. Use /ghost or type the g key (can be rebound) to request block-resends.", 23 | "icon": "icon.png", 24 | "authors": [ "Giselbaer" ], 25 | "contact": { 26 | "homepage": "https://www.curseforge.com/minecraft/mc-mods/antighost", 27 | "sources": "https://github.com/gbl/AntiGhost", 28 | "issues": "https://github.com/gbl/AntiGhost/issues" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/resources/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gbl/AntiGhost/3767ea6fa499568df4d3da1f1f428b5f6678ec48/src/main/resources/icon.png --------------------------------------------------------------------------------