Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Remove Name Tag Mod


DrOlive
 Share

Recommended Posts

Hey Minecraft Forge Modders! I've been trying to make a quick simple mod that allows players to remove their name tag so no other players can see it, but I can't seem to find out how to go about doing this. If somebody could help me do this it would be great! I'm not asking for a full written out code for me, just some pointers to help get me going. Thanks!

Link to comment
Share on other sites

Ok so if I were to have a key binding class like this:

package drolive.nonametags;

import java.util.EnumSet;

import net.minecraft.client.settings.KeyBinding;
import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraftforge.client.event.RenderLivingEvent.Specials;
import cpw.mods.fml.client.registry.KeyBindingRegistry.KeyHandler;
import cpw.mods.fml.common.TickType;

class NoNameTagsKeyBind extends KeyHandler {

private EnumSet tickTypes = EnumSet.of(TickType.CLIENT);

public NoNameTagsKeyBind(KeyBinding[] keyBindings, boolean[] repeatings) {
	super(keyBindings, repeatings);
}

@Override
public String getLabel() {
	return "Hide";
}

@Override
public void keyDown(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd, boolean isRepeat) {



}

@Override
public void keyUp(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd) {

}

@Override
public EnumSet<TickType> ticks() {
	return null;
}

}

How would I cancel RenderLivingEvent.Specials.Pre? Would I have to make another class for my key binding or what?

Link to comment
Share on other sites

Ok I made a class for my key binding

package drolive.nonametags;

import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraftforge.client.event.RenderLivingEvent.Specials;
import net.minecraftforge.event.Event;

public class NoNameTagsKeyBindHide {

public void Pre(Specials.Pre event){
	if (event.isCancelable()) {
        event.setCanceled(true);
}
}
}

but how do I make it so when you press the key it cancels Pre, then if you press it again it doesn't cancel it?

Link to comment
Share on other sites

I have my keybindings class and my keybindinghide class without any errors and it show up in the game's control menu, but when I press it in game, nothing happens!

Main Keybinding class:

package drolive.nonametags;

import java.util.EnumSet;

import net.minecraft.client.settings.KeyBinding;
import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraftforge.client.event.RenderLivingEvent.Specials;
import cpw.mods.fml.client.registry.KeyBindingRegistry.KeyHandler;
import cpw.mods.fml.common.TickType;

class NoNameTagsKeyBind extends KeyHandler {

public static boolean cancelPre = false;

private EnumSet tickTypes = EnumSet.of(TickType.CLIENT);

public NoNameTagsKeyBind(KeyBinding[] keyBindings, boolean[] repeatings) {
	super(keyBindings, repeatings);
}

@Override
public String getLabel() {
	return "Hide";
}

@Override
public void keyDown(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd, boolean isRepeat) {

	if (cancelPre == false){
		cancelPre = true;
	}
	else cancelPre = false;

}

@Override
public void keyUp(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd) {

}

@Override
public EnumSet<TickType> ticks() {
	return null;
}

}

 

My class for the "hide" keybinding:

package drolive.nonametags;

import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraftforge.client.event.RenderLivingEvent.Specials;
import net.minecraftforge.event.Event;

public class NoNameTagsKeyBindHide {

public void Pre(Specials.Pre event){
	if (event.isCancelable() && NoNameTagsKeyBind.cancelPre == true){
		System.out.println("You are now Hiding!");
        event.setCanceled(true);}
        else if (event.isCancelable() && NoNameTagsKeyBind.cancelPre == false) {
        	event.setCanceled(false);
        	System.out.println("You are not Hiding!");
        }	
   }
}

And yes I did register the key binding in my main class. Anybody know why nothing's happening?

Link to comment
Share on other sites

Oh and also here is my main class:

package drolive.nonametags;

import org.lwjgl.input.Keyboard;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RendererLivingEntity;
import net.minecraft.client.settings.KeyBinding;
import cpw.mods.fml.client.registry.KeyBindingRegistry;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;

@Mod(modid="NoNameTags", name="NoNameTags", version="0.0.1")
@NetworkMod(clientSideRequired=false, serverSideRequired=false)

public class NoNameTags {

    @Instance("NoNameTags")
    public static NoNameTags instance;
    
    @SidedProxy(clientSide="drolive.nonametags.client.ClientProxy", serverSide="drolive.nonametags.CommonProxy")
    public static CommonProxy proxy;
    
    @EventHandler
    public void preInit(FMLPreInitializationEvent event) {
    }
    
    @EventHandler
    public void load(FMLInitializationEvent event) {
            proxy.registerRenderers();
            
            KeyBinding[] key = {new KeyBinding("Hide", Keyboard.KEY_H)};
            boolean[] repeat = {false};
            KeyBindingRegistry.registerKeyBinding(new NoNameTagsKeyBind(key, repeat));
    }
    
    @EventHandler
    public void postInit(FMLPostInitializationEvent event) {
    }
}

Link to comment
Share on other sites

Yeah I registered the event and everything, but when I load a world it says "You are not hiding!" and it never says anything else no matter how many times I press h.

I feel like my NoNameTagsKeyBindHide class isn't checking if cancelPre changes, but how would I do that?

 

My main class:

package drolive.nonametags;

import java.util.EnumSet;

import org.lwjgl.input.Keyboard;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RendererLivingEntity;
import net.minecraft.client.settings.KeyBinding;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.client.registry.KeyBindingRegistry;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.TickType;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.TickRegistry;
import cpw.mods.fml.relauncher.Side;

@Mod(modid="NoNameTags", name="NoNameTags", version="0.0.1")
@NetworkMod(clientSideRequired=false, serverSideRequired=false)

public class NoNameTags {

    @Instance("NoNameTags")
    public static NoNameTags instance;
    
    @SidedProxy(clientSide="drolive.nonametags.client.ClientProxy", serverSide="drolive.nonametags.CommonProxy")
    public static CommonProxy proxy;
    
    @EventHandler
    public void preInit(FMLPreInitializationEvent event) {
    }
    
    @EventHandler
    public void load(FMLInitializationEvent event) {
            proxy.registerRenderers();
            KeyBinding[] key = {new KeyBinding("Hide", Keyboard.KEY_H)};
            boolean[] repeat = {true};
            KeyBindingRegistry.registerKeyBinding(new NoNameTagsKeyBind(key, repeat));
            MinecraftForge.EVENT_BUS.register(new NoNameTagsKeyBindHide());
    }
    
    @EventHandler
    public void postInit(FMLPostInitializationEvent event) {
    }
}

 

My keybind class:

package drolive.nonametags;

import java.util.EnumSet;

import net.minecraft.client.settings.KeyBinding;
import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraftforge.client.event.RenderLivingEvent.Specials;
import cpw.mods.fml.client.registry.KeyBindingRegistry.KeyHandler;
import cpw.mods.fml.common.TickType;

class NoNameTagsKeyBind extends KeyHandler {

private EnumSet tickTypes = EnumSet.of(TickType.CLIENT);

public static boolean cancelPre = false;

public NoNameTagsKeyBind(KeyBinding[] keyBindings, boolean[] repeatings) {
	super(keyBindings, repeatings);
}

@Override
public String getLabel() {
	return "Hide";
}

@Override
public void keyDown(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd, boolean isRepeat) {

	cancelPre = (!cancelPre);

}

@Override
public void keyUp(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd) {

}

@Override
public EnumSet<TickType> ticks() {
	return null;
}

}

My keybind hide class:

package drolive.nonametags;

import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraftforge.client.event.RenderLivingEvent.Specials;
import net.minecraftforge.event.Event;
import net.minecraftforge.event.ForgeSubscribe;

public class NoNameTagsKeyBindHide {

public int makeItStop = 0;

@ForgeSubscribe(receiveCanceled=true)
public void Pre(Specials.Pre event){
	if (NoNameTagsKeyBind.cancelPre == true && makeItStop == 1){
		event.setCanceled(true);
		System.out.println("You are now hiding!");
		makeItStop = makeItStop - 1;
        }
    else if (NoNameTagsKeyBind.cancelPre == false && makeItStop == 0) {
    	event.setCanceled(false);
        System.out.println("You are not hiding!");
        makeItStop = makeItStop + 1;
        }	
   }
}

Note: I added the int makeItStop because before when I would load a world, it would spam the console with never ending "You are not hiding!"

Link to comment
Share on other sites

Am I supposed to call the boolean in a different way?

what other way would there be

 

if(NoNameTagsKeyBind.cancelPre == true) ?

if(NoNameTagsKeyBind.cancelPre != false) ?

if(NoNameTagsKeyBind.cancelPre) ?

if(NoNameTagsKeyBind.cancelPre || false) ?

 

 

...all those do the same thing ...

 

 

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Link to comment
Share on other sites

*main class*
boolean[] repeat = {true};

Set to false to stop the repeating keybind. ;)

 

@Override
public void keyDown(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd, boolean isRepeat) {
	if(tickEnd)//so it doesn't fire twice
	cancelPre = (!cancelPre);

}

Link to comment
Share on other sites

*main class*
boolean[] repeat = {true};

Set to false to stop the repeating keybind. ;)

 

@Override
public void keyDown(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd, boolean isRepeat) {
	if(tickEnd)//so it doesn't fire twice
	cancelPre = (!cancelPre);

}

I tried all this and it still repeats if I dont use makeItStop. And it still wont work in game. :(

Link to comment
Share on other sites

Nevermind it doesn't stop repeating without makeItStop...

Also I tried it in a LAN world and it said "You are now hiding!" but it didn't remove the name tag, know why?

Main Class:

package drolive.nonametags;

import java.util.EnumSet;

import org.lwjgl.input.Keyboard;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RendererLivingEntity;
import net.minecraft.client.settings.KeyBinding;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.client.registry.KeyBindingRegistry;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.TickType;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.TickRegistry;
import cpw.mods.fml.relauncher.Side;

@Mod(modid="NoNameTags", name="NoNameTags", version="0.0.1")
@NetworkMod(clientSideRequired=false, serverSideRequired=false)

public class NoNameTags {

    @Instance("NoNameTags")
    public static NoNameTags instance;
    
    @SidedProxy(clientSide="drolive.nonametags.client.ClientProxy", serverSide="drolive.nonametags.CommonProxy")
    public static CommonProxy proxy;
    
    @EventHandler
    public void preInit(FMLPreInitializationEvent event) {
    }
    
    @EventHandler
    public void load(FMLInitializationEvent event) {
            proxy.registerRenderers();
            KeyBinding[] key = {new KeyBinding("Hide", Keyboard.KEY_H)};
            boolean[] repeat = {false};
            KeyBindingRegistry.registerKeyBinding(new NoNameTagsKeyBind(key, repeat));
            MinecraftForge.EVENT_BUS.register(new NoNameTagsKeyBindHide());
    }
    
    @EventHandler
    public void postInit(FMLPostInitializationEvent event) {
    }
}

Key Bind class:

package drolive.nonametags;

import java.util.EnumSet;

import net.minecraft.client.settings.KeyBinding;
import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraftforge.client.event.RenderLivingEvent.Specials;
import cpw.mods.fml.client.registry.KeyBindingRegistry.KeyHandler;
import cpw.mods.fml.common.TickType;

class NoNameTagsKeyBind extends KeyHandler {

private EnumSet tickTypes = EnumSet.of(TickType.CLIENT);

public static boolean cancelPre;

public NoNameTagsKeyBind(KeyBinding[] keyBindings, boolean[] repeatings) {
	super(keyBindings, repeatings);
}

@Override
public String getLabel() {
	return "Hide";
}

@Override
public void keyDown(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd, boolean isRepeat) {
	if(tickEnd){
	cancelPre = !cancelPre;
	}
}

@Override
public void keyUp(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd) {

}

@Override
public EnumSet<TickType> ticks() {
	return tickTypes;
}

}

KeyBindHide class:

package drolive.nonametags;

import net.minecraft.src.ModLoader;
import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraftforge.client.event.RenderLivingEvent.Specials;
import net.minecraftforge.event.Event;
import net.minecraftforge.event.ForgeSubscribe;

public class NoNameTagsKeyBindHide {

public int makeItStop = 0;

@ForgeSubscribe(receiveCanceled=true)
public void Pre(Specials.Pre event){
	if (NoNameTagsKeyBind.cancelPre == true && makeItStop == 1){
		event.setCanceled(true);
		ModLoader.getMinecraftInstance().thePlayer.addChatMessage("You are now hiding!");
		makeItStop = makeItStop - 1;
        }
    else if (NoNameTagsKeyBind.cancelPre == false && makeItStop == 0) {
    	event.setCanceled(false);
    	ModLoader.getMinecraftInstance().thePlayer.addChatMessage("You are not hiding!");
        makeItStop = makeItStop + 1;
        }	
   }
}

Link to comment
Share on other sites

Nevermind it doesn't stop repeating without makeItStop...

Of course, my fixes only stop repeats from the input key, not from the event. The event will continue fire endlessly while there is living entities to render (that is, until world is closed).

For now, we have it so cancelPre boolean is only changed once each time you press the key.

We should add so only players have their name tags removed, right ?

So let's do only

if(event.entity instanceof EntityPlayer)
{
event.setCanceled(true);
}

Oh by the way, stop using ModLoader.

Link to comment
Share on other sites

I did just what you said but when I press the key in game, nothing happens, it wont even print a text. I also tried using it like this, but still no luck:

if(NoNameTagsKeyBind.cancelPre == true && event.entity instanceof EntityPlayer)

Is this where I'm supposed to put the code?

package drolive.nonametags;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.src.ModLoader;
import net.minecraftforge.client.event.RenderLivingEvent;
import net.minecraftforge.client.event.RenderLivingEvent.Specials;
import net.minecraftforge.event.Event;
import net.minecraftforge.event.ForgeSubscribe;

public class NoNameTagsKeyBindHide {

@ForgeSubscribe(receiveCanceled=true)
public void Pre(Specials.Pre event){
	if(event.entity instanceof EntityPlayer){
        event.setCanceled(true);
        }

Link to comment
Share on other sites

Well I got it to cancel the event by using isCanceled(), but it turns out that cancelling Specials.Pre only makes everyone else's names disappear, not the player's who used the command... How would I make it so only the player's disappears from everyone else's view?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • thats exactly what i did, didnt work
    • performance problems?, i saw that the pumpkin overlay's size is 256x256, then how it draws in full screen?
    • ---- Minecraft Crash Report ---- // I bet Cylons wouldn't have this problem. Time: 1/25/22 3:30 PM Description: Rendering overlay net.minecraftforge.fml.config.ConfigFileTypeHandler$ConfigLoadingException: Failed loading config file forge-common.toml of type COMMON for modid forge     at net.minecraftforge.fml.config.ConfigFileTypeHandler.lambda$reader$1(ConfigFileTypeHandler.java:61) ~[?:?] {re:classloading}     at net.minecraftforge.fml.config.ConfigFileTypeHandler$$Lambda$4733/78604773.apply(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.config.ConfigTracker.openConfig(ConfigTracker.java:104) ~[?:?] {re:classloading}     at net.minecraftforge.fml.config.ConfigTracker.lambda$loadConfigs$1(ConfigTracker.java:83) ~[?:?] {re:classloading}     at net.minecraftforge.fml.config.ConfigTracker$$Lambda$4732/324662817.accept(Unknown Source) ~[?:?] {}     at java.lang.Iterable.forEach(Iterable.java:75) ~[?:1.8.0_51] {}     at java.util.Collections$SynchronizedCollection.forEach(Collections.java:2062) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.config.ConfigTracker.loadConfigs(ConfigTracker.java:83) ~[?:?] {re:classloading}     at net.minecraftforge.fml.ModLoader.loadMods(ModLoader.java:209) ~[?:?] {re:classloading}     at net.minecraftforge.fml.client.ClientModLoader.lambda$startModLoading$7(ClientModLoader.java:132) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraftforge.fml.client.ClientModLoader$$Lambda$4722/1128558020.run(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:123) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraftforge.fml.client.ClientModLoader$$Lambda$2917/1825071442.run(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.client.ClientModLoader.startModLoading(ClientModLoader.java:132) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraftforge.fml.client.ClientModLoader.lambda$onResourceReload$2(ClientModLoader.java:114) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraftforge.fml.client.ClientModLoader$$Lambda$4719/1991615833.run(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:123) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraftforge.fml.client.ClientModLoader$$Lambda$2917/1825071442.run(Unknown Source) ~[?:?] {}     at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1618) ~[?:1.8.0_51] {}     at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1610) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689) ~[?:1.8.0_51] {}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_51] {} Caused by: com.electronwill.nightconfig.core.io.ParsingException: Not enough data available     at com.electronwill.nightconfig.core.io.ParsingException.notEnoughData(ParsingException.java:22) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ReaderInput.directReadChar(ReaderInput.java:36) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.AbstractInput.readChar(AbstractInput.java:49) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.AbstractInput.readCharsUntil(AbstractInput.java:123) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseKey(TableParser.java:166) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseDottedKey(TableParser.java:145) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TableParser.parseNormal(TableParser.java:55) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:44) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:37) ~[toml-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:113) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:219) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:202) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.file.WriteSyncFileConfig.load(WriteSyncFileConfig.java:73) ~[core-3.6.3.jar:?] {}     at com.electronwill.nightconfig.core.file.AutosaveCommentedFileConfig.load(AutosaveCommentedFileConfig.java:85) ~[core-3.6.3.jar:?] {}     at net.minecraftforge.fml.config.ConfigFileTypeHandler.lambda$reader$1(ConfigFileTypeHandler.java:57) ~[?:?] {re:classloading}     ... 23 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at net.minecraftforge.fml.config.ConfigFileTypeHandler.lambda$reader$1(ConfigFileTypeHandler.java:61) ~[?:?] {re:classloading}     at net.minecraftforge.fml.config.ConfigFileTypeHandler$$Lambda$4733/78604773.apply(Unknown Source) ~[?:?] {}     at net.minecraftforge.fml.config.ConfigTracker.openConfig(ConfigTracker.java:104) ~[?:?] {re:classloading}     at net.minecraftforge.fml.config.ConfigTracker.lambda$loadConfigs$1(ConfigTracker.java:83) ~[?:?] {re:classloading}     at net.minecraftforge.fml.config.ConfigTracker$$Lambda$4732/324662817.accept(Unknown Source) ~[?:?] {}     at java.lang.Iterable.forEach(Iterable.java:75) ~[?:1.8.0_51] {}     at java.util.Collections$SynchronizedCollection.forEach(Collections.java:2062) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.config.ConfigTracker.loadConfigs(ConfigTracker.java:83) ~[?:?] {re:classloading}     at net.minecraftforge.fml.ModLoader.loadMods(ModLoader.java:209) ~[?:?] {re:classloading} -- Overlay render details -- Details:     Overlay name: net.minecraft.client.gui.ResourceLoadProgressGui Stacktrace:     at net.minecraft.client.renderer.GameRenderer.func_195458_a(GameRenderer.java:484) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:977) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}     at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.5-36.2.22.jar:36.2] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$459/1573125303.call(Unknown Source) [forge-1.16.5-36.2.22.jar:36.2] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {}  
    • "Required" in the sense that it's the correct way to do things to maintain mod compatibility. But loot tables are still loot tables and can still be overridden with data packs. Forge won't stop you from doing it.
    • Hi all, First post here. I have tried to solve this myself but I can't identify the problem. I used to use version 1.16.3 and in the console I was able to press up and down to access commands in the history and tab for auto completion of the command. Now I upgraded to version 1.17.1 and I these keys don't work anymore. How can I enable auto complete? Thanks. System info: MinecraftForge version 37.1.1 Minecraft 1.17.1 with MCP 20210706. OS: Ubuntu 20.04.3 openjdk 17.0.1 2021-10-19 OpenJDK Runtime Environment (build 17.0.1+12-Ubuntu-120.04)
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.