Jump to content

Recommended Posts

Posted

pi.png

 

I have also made this mod for my personal server and it too is ready for sharing ;)

 

Persistent Items makes select items say persistent in the world; in other words items do no despawn after five minutes.

This is controlled with the in-game command '/item'

 

The full mod description is at www.boxporium.net/persistentitem.php

 

Minecraft forum description with images: minecraftforum.net/topic

 

VR,

Neometron

Posted

umm if the players weren't aware of the dropped items wouldn't that cause a lot of lag over time?

(unless the server resets of course)

Communication is a vital tool, in the game industry you won't go anywhere without it. People are either going to learn to talk, or move on.

Posted

I haven't ran into much or any lag on the server, lag would be on client side due to rendering. Lets say there was a lot of dirt blocks; if it was causing a problem, I would type in the command '/item set despawn true 3' and wait the 5 minutes for it to clear up.

Posted

I haven't ran into much or any lag on the server, lag would be on client side due to rendering. Lets say there was a lot of dirt blocks; if it was causing a problem, I would type in the command '/item set despawn true 3' and wait the 5 minutes for it to clear up.

 

yay admin controls!

 

Communication is a vital tool, in the game industry you won't go anywhere without it. People are either going to learn to talk, or move on.

Posted

I think a really simple fix for the persistent item being able to cause in game lag is to set a maximum entity limit.  You can either make the max entity by entity type or for all items and then set a despawn priority.

 

Basically, if the priority is Diamond Weapon, Diamond Pickaxe, and then dirt and you had 16 Swords, 12 Pickaxes, and 490 dirt blocks with a server set to max 250 entities then once processed you would still have 16 Swords, 12 Pickaxes, and 222 dirt blocks.  This is easy(maybe not in code as I don't know how easy it is to count total entities), minimizes litter, and reduces need for admins to get involved while still protecting valuable items people care about since the highest priority items are unlikely to build up as others are sure to collect them.

 

It also reduces the possible exploit of using this to grief a server when there are no admins.  If I find an easy item is set to not despawn, say wheat, then I just drop 4000 of these away from each other so they don't stack.  This causes thousands of entities to linger on the server and makes everyone's life miserable.

 

Good mod and I might use it once I get a forge server up and running.

Posted
I think a really simple fix for the persistent item being able to cause in game lag is to set a maximum entity limit.  You can either make the max entity by entity type or for all items and then set a despawn priority.

 

This is an excellent idea!

 

Currently, I intercept a forge event when an item is about to despawn, and add additional time if the item is not on the exclusion list. I could add the priority check along with this event. Also, to get the total item count, I could possibly tally the items when the entity item joins the world. This method would not be an immediate fix when someone maliciously grief a server, but it would allow the item to bypass its persistent status in order to stay under the max entities.

 

However-

 

I don't know how many item entities would lag a server; it seems possible to have hundreds of players on minecraft at the same time in different locations. Having a max entity count too low could defeat the persistent status effect. Possibly instead of having a max item entity count for the world, there could be a limit per chunk.

 

The most players I had my server at one time was six ;) Despite the server lag generated due to Dynmap and world gen, I had BuildCraft pipes spew out hundreds of items out on the ground, a few full chests blown up from creepers, a lot of TNT/Nuke explosions, skeleton arrow drops from sunrise. It seems, normal gameplay is not a real issue, but I need confirmation on that.

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Im trying to build my mod using shade since i use the luaj library however i keep getting this error Reason: Task ':reobfJar' uses this output of task ':shadowJar' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. So i try adding reobfJar.dependsOn shadowJar  Could not get unknown property 'reobfJar' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. my gradle file plugins { id 'eclipse' id 'idea' id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'com.github.johnrengelman.shadow' version '7.1.2' id 'org.spongepowered.mixin' version '0.7.+' } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.spongepowered.mixin' apply plugin: 'com.github.johnrengelman.shadow' version = mod_version group = mod_group_id base { archivesName = mod_id } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) //jarJar.enable() println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { mappings channel: mapping_channel, version: mapping_version copyIdeResources = true runs { configureEach { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' arg "-mixin.config=derp.mixin.json" mods { "${mod_id}" { source sourceSets.main } } } client { // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. property 'forge.enabledGameTestNamespaces', mod_id } server { property 'forge.enabledGameTestNamespaces', mod_id args '--nogui' } gameTestServer { property 'forge.enabledGameTestNamespaces', mod_id } data { workingDirectory project.file('run-data') args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') } } } sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { flatDir { dirs './libs' } maven { url = "https://jitpack.io" } } configurations { shade implementation.extendsFrom shade } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" implementation 'org.luaj:luaj-jse-3.0.2' implementation fg.deobf("com.github.Virtuoel:Pehkui:${pehkui_version}") annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' minecraftLibrary 'luaj:luaj-jse:3.0.2' shade 'luaj:luaj-jse:3.0.2' } // Example for how to get properties into the manifest for reading at runtime. tasks.named('jar', Jar).configure { manifest { attributes([ 'Specification-Title' : mod_id, 'Specification-Vendor' : mod_authors, 'Specification-Version' : '1', // We are version 1 of ourselves 'Implementation-Title' : project.name, 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_authors, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker", "TweakOrder" : 0, "MixinConfigs" : "derp.mixin.json" ]) } rename 'mixin.refmap.json', 'derp.mixin-refmap.json' } shadowJar { archiveClassifier = '' configurations = [project.configurations.shade] finalizedBy 'reobfShadowJar' } assemble.dependsOn shadowJar reobf { re shadowJar {} } publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file://${project.projectDir}/mcmodsrepo" } } }  
    • Todas as versões do Minecraft Forge são repentinamente tela preta, mesmo sem mods (tentei reinstalar o Minecraft original, Java, atualizar os drivers não funciona)
    • When i join minecraft all ok, when i join world all working fine, but when i open indentity menu, i get this The game crashed whilst unexpected error Error: java.lang.NullPointerException: Cannot invoke "top.ribs.scguns.common.Gun$Projectile.getDamage()" because "this.projectile" is null crash report here https://paste.ee/p/0vKaf
  • Topics

×
×
  • Create New...

Important Information

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