Jump to content

[1.10.2] [Solved] Chest animation remake doesn't count players in gui


Recommended Posts

Posted

So i'm trying to make a custom chest with an animation heavily inspired by the normal chest code, but it doesn't work. While debugging i noticed that it doesn't detect if players are in the gui, and i can't seem to figure out why... Any help is appreciated!

 

 

 

Some of the important bits of code in my TileEntity:

public float lidAngle = 0;
private int playerCount = 0;
private int ticksSinceSync = 0;


public void update() {
        //System.out.println(playerCount); // <-- ALWAYS 0

        int i = this.pos.getX();
        int j = this.pos.getY();
        int k = this.pos.getZ();
        ++this.ticksSinceSync;

        if (!this.worldObj.isRemote && this.playerCount != 0 && (this.ticksSinceSync + i + j + k) % 200 == 0) {
		playerCount = 0;
		for(EntityPlayer pl : this.worldObj.getEntitiesWithinAABB(
                            EntityPlayer.class, new AxisAlignedBB(
                                this.pos.getX() - 5, this.pos.getY() - 5, 
                                this.pos.getZ() - 5, this.pos.getX() + 5,
                                this.pos.getY() + 5, this.pos.getZ() + 5))) {
                        // wow thats a long line of code

			if(pl.openContainer instanceof ContainerTinyChest) {
				playerCount++;
			}
		}
	}

	if(this.playerCount == 0 && lidAngle > 0.0f || this.playerCount > 0 && lidAngle < 1.0f) {
		if(playerCount > 0) {
			lidAngle += 0.1f;
		} else {
			lidAngle -= 0.1f;
		}

		if(lidAngle > 1.0f) {
			lidAngle = 1.0f;
		}

		if(lidAngle < 0.0f) {
                lidAngle = 0.0f;
            }
	}
}

public boolean receiveClientEvent(int id, int type) {
	//System.out.println("open");
	if(id == 1) {
		playerCount = type;
		return true;
	} else {
		return super.receiveClientEvent(id, type);
	}
}

public void openInventory(EntityPlayer player) {
	if(!player.isSpectator()) {
		if (this.playerCount < 0)
            {
                this.playerCount = 0;
            }

            this.playerCount++;
            this.worldObj.addBlockEvent(this.pos, this.getBlockType(), 1, this.playerCount);
	}
}
public void closeInventory(EntityPlayer player) {
	if(!player.isSpectator() && this.getBlockType() instanceof BlockTinyChest) {
            this.playerCount--;
            this.worldObj.addBlockEvent(this.pos, this.getBlockType(), 1, this.playerCount);
	}
}

 

 

 

EDIT: found out that

openInventory()

is not called, am i missing something, like that it needs something to be called?

EDIT2: oh yep my feeling was right,

openInventory()

is not automatic, why do i always find solutions after i posted the problem...

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I also just tried with iron's spellbooks removed, since that seemed related, but i am still having the same problem, even in newly created worlds. https://mclo.gs/AtrAfaj 
    • My Gradle Project for my Minecraft mod isn't building. Terminal: * Where: Settings file 'C:\Users\csonn\OneDrive\Desktop\fusionlucky\settings.gradle' line: 2 * What went wrong: Could not compile settings file 'C:\Users\csonn\OneDrive\Desktop\fusionlucky\settings.gradle'. > startup failed:   settings file 'C:\Users\csonn\OneDrive\Desktop\fusionlucky\settings.gradle': 2: The pluginManagement {} block must appear before any other statements in the script.   For more information on the pluginManagement {} block, please refer to https://docs.gradle.org/9.0.0/userguide/plugins.html#sec:plugin_management in the Gradle documentation.    @ line 2, column 1.      pluginManagement {      ^   1 error * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to generate a Build Scan (Powered by Develocity). > Get more help at https://help.gradle.org.   Setting.Gradle File:   rootProject.name = 'fusion-lucky-block' pluginManagement {     repositories {         gradlePluginPortal()         maven { url "https://maven.minecraftforge.net/" }         mavenCentral()     } }
    • no change still. here's a new log  https://mclo.gs/RXwiZmn 
    • Whenever I go to build my it says "Build failed in " how many seconds   Here is what is said in my terminal * Where: Build file 'C:\Users\csonn\OneDrive\Desktop\fusionlucky\build.gradle' line: 3 * What went wrong: Plugin [id: 'net.minecraftforge.gradle', version: '6.1.51'] was not found in any of the following sources: - Gradle Core Plugins (plugin is not in 'org.gradle' namespace) - Included Builds (No included builds contain this plugin) - Plugin Repositories (could not resolve plugin artifact 'net.minecraftforge.gradle:net.minecraftforge.gradle.gradle.plugin:6.1.51')   Searched in the following repositories:     Gradle Central Plugin Repository     MinecraftForge(https://maven.minecraftforge.net/) * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Get more help at https://help.gradle.org.   Here is what is in my build.gradle file plugins {     id 'java'     id 'net.minecraftforge.gradle' version '6.1+' }   group = 'io.github.csonnic03.fusionlucky' version = '1.0.0' archivesBaseName = 'fusionlucky'   java {     toolchain {         languageVersion = JavaLanguageVersion.of(17)     } }   repositories {     mavenCentral()     maven {         name "forgeMaven"         url "https://maven.minecraftforge.net/<repository>" } }   dependencies {     minecraft 'net.minecraftforge:forge:1.20.1-47.1.0' }   minecraft {     mappings channel: 'official', version: '1.20.1'     runs {         client {             workingDirectory project.file('run')         }         server {             workingDirectory project.file('run')         }     } }   tasks.withType(JavaCompile) {     options.encoding = 'UTF-8' }   jar {     manifest {         attributes(             "Specification-Title": "Fusion Lucky Block",             "Specification-Vendor": "example",             "Implementation-Title": project.name,             "Implementation-Version": project.version,             "Implementation-Vendor": "example",             "ModLauncher-TargetFMLVersion": "[47,)"         )     } }  
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.