B1n-ry / Youre-in-grave-danger

A minecraft mod which adds one single block. The grave, which will generate when you die, and store your items
https://www.curseforge.com/minecraft/mc-mods/youre-in-grave-danger
MIT License
59 stars 16 forks source link

[Bugs] Having multiple Issues with Graves #137

Open Zunwolf1896 opened 7 months ago

Zunwolf1896 commented 7 months ago

Hi, sorry back again.

YIGD: 2.0.0 beta 5 Travelers Backpacks: 9.1.8 Cosmetic Armour: 1.6.0 Minecraft: 1.20.1 Fabric: 0.14.24

Been having a lot of complaints from players, but nothing really "repeatable" so been struggling to get a proper report to explain what is happening.

We think when people have more than a singular backpack [Travelers Backpacks] in their inventory, they seem to lose one of the backpacks.

Graves are not spawning where the people died, but firther back, (I believe this is an issue in the config on my part, but the current config and the one on the wiki don't match which I am finding confusing)

People dying to lava, the grave doesn't spawn, the items are dropped and lost to lava. I have the "ignoredDeathTypes": [], set to nothing, so it shouldn't be that.

Sometimes, the grave is spawning, but the items are dropping out, and dropping into lava which is then causing the players to lose their items. I have it set to "dropOnRetrieve": "IN_INVENTORY", so items shouldnt be dropping I don't think?

We have Cosmetic Armour istalled as well, and it seems to be causing issues as well sometimes with that armour not coming back.

Config pasted here: { "inventoryConfig": { "dropPlayerHead": false, "itemLoss": { "enabled": false, "affectStacks": false, "usePercentRange": true, "lossRangeFrom": 0, "lossRangeTo": 100, "percentChanceOfLoss": 50, "canLoseSoulbound": false }, "vanishingEnchantments": [ "minecraft:vanishing_curse" ], "soulboundEnchantments": [ "yigd:soulbound" ], "loseSoulboundLevelOnDeath": true, "vanishingSlots": [], "soulboundSlots": [], "dropOnGroundSlots": [] }, "expConfig": { "dropBehaviour": "VANILLA", "dropPercentage": 50, "keepPercentage": 0 }, "graveConfig": { "enabled": true, "storeItems": true, "storeXp": true, "informGraveLocation": true, "requireItem": false, "requiredItem": "yigd:grave", "requireShovelToLoot": false, "retrieveMethods": { "onClick": true, "onBreak": false, "onSneak": false, "onStand": false }, "mergeStacksOnRetrieve": true, "dropOnRetrieve": "IN_INVENTORY", "dropGraveBlock": true, "generateEmptyGraves": true, "overrideSpawnProtection": true, "claimPriority": "GRAVE", "graveRobbing": { "enabled": false, "onlyMurderer": false, "afterTime": 1, "timeUnit": "HOURS", "robPriority": "INVENTORY", "notifyWhenRobbed": true, "tellWhoRobbed": true }, "graveTimeout": { "enabled": false, "afterTime": 5, "timeUnit": "HOURS", "dropContentsOnTimeout": true }, "treatBindingCurse": true, "generateGraveInVoid": false, "lowestGraveY": -64, "generateOnlyWithinBorder": true, "ignoredDeathTypes": [], "unlockable": true, "randomSpawn": { "percentSpawnChance": 1, "spawnEntity": "minecraft:zombie", "spawnNbt": "{ArmorItems:[{},{},{},{id:\"minecraft:player_head\",tag:{SkullOwner:{Name:\"${name}\",Id:\"${uuid}\"}},Count:1b}]}" }, "generateOnLastGroundPos": true, "generationMaxDistance": { "x": 5, "y": 5, "z": 5 }, "useSoftBlockWhitelist": false, "useStrictBlockBlacklist": true, "replaceOldWhenClaimed": true, "persistentGraves": { "enabled": false, "showDeathDay": true, "showDeathIrlTime": true, "useAmPm": true }, "dimensionBlacklist": [], "blockUnderGrave": { "enabled": true, "blockInDimensions": [ { "key": "minecraft:overworld", "value": "minecraft:cobblestone" }, { "key": "minecraft:the_nether", "value": "minecraft:soul_soil" }, { "key": "minecraft:the_end", "value": "minecraft:end_stone" }, { "key": "misc", "value": "minecraft:dirt" } ], "generateOnProtectedLand": true }, "sellOutOfflinePeople": false, "maxBackupsPerPerson": 50, "dropFromOldestWhenDeleted": true }, "respawnConfig": { "respawnEffects": [], "respawnHealth": 20, "resetHunger": true, "respawnHunger": 20, "resetSaturation": true, "respawnSaturation": 20.0, "extraItemDrops": [] }, "compatConfig": { "standardDropRuleInClaim": "PUT_IN_GRAVE", "enableInventorioCompat": true, "defaultInventorioDropRule": "PUT_IN_GRAVE", "enableLevelzCompat": true, "defaultLevelzDropRule": "PUT_IN_GRAVE", "enableNumismaticOverhaulCompat": true, "defaultNumismaticDropRule": "PUT_IN_GRAVE", "enableOriginsInventoryCompat": true, "defaultOriginsDropRule": "PUT_IN_GRAVE", "enableTravelersBackpackCompat": true, "defaultTravelersBackpackDropRule": "PUT_IN_GRAVE", "enableTrinketsCompat": true, "defaultTrinketsDropRule": "PUT_IN_GRAVE" }, "commandConfig": { "mainCommand": "yigd", "basePermissionLevel": 0, "viewLatestPermissionLevel": 0, "viewSelfPermissionLevel": 0, "viewUserPermissionLevel": 2, "viewAllPermissionLevel": 2, "restorePermissionLevel": 2, "robPermissionLevel": 2, "whitelistPermissionLevel": 3, "deletePermissionLevel": 3, "unlockPermissionLevel": 0 }, "graveRendering": { "useCustomFeatureRenderer": true, "useSkullRenderer": true, "useTextRenderer": true, "adaptRenderer": false, "useGlowingEffect": true, "glowingDistance": 15 }, "extraFeatures": { "customSoulboundEnchant": true, "deathSightEnchant": { "enabled": false, "range": 64.0, "targets": "PLAYER_GRAVES" }, "graveKeys": { "enabled": false, "rebindable": true, "required": true, "receiveOnRespawn": true, "targeting": "PLAYER_GRAVE" }, "deathScroll": { "enabled": false, "rebindable": false, "receiveOnRespawn": false, "clickFunction": "VIEW_CONTENTS" } } }

B1n-ry commented 7 months ago

This does sound quite strange. Thank you for reporting though. Don't worry about reporting often, as I don't really care about who is reporting the issues, as long as they're reported. Worst case you can report that "I am experiencing this issue, and have not found any reproducable steps yet", and then try to find out more in detail what happens, as I could perhaps have some idea. Also yeah the wiki is currently outdated. Haven't gotten around to updating that yet. Something I do realize now that is not at all well explained is that lowestGraveY is relative to the world bottom Y, so setting it at -64 means the mod will try to place graves in the void, if players die there, which will fail. Also you're correct about "dropOnRetrieve": "IN_INVENTORY" should put all the items in the player inventory, but if the player have enough items on them before opening the grave, or the total inventory size has reduced due to removal of mods or something, not all items will fit in the inventory, and be dropped on the ground instead. This shouldn't happen to all items though. You have generateOnLastGroundPos set to true, which means that every game tick the player will store where they are, as long as they are standing on a block, and when they die the grave will generate there. I guess this could be what is causing the issue where graves are not spawning where the player died. I guess that is the only apparent fix I can see to any of the issues at the moment though. Have you confirmed that all the reported lost graves are deleted through the /yigd moderate command (or similar)? Sometimes graves can generate further away from where the players died, configurable with the generationMaxDistance config (you seem to have the standard of 5 block radius in each direction, x, y, and z). This is if no air block or similar is found. Lava by default does not count towards these blocks, and can cause the grave to generate further away. My thought behind this was that the graves would generate atop the lava, and make it more accessible. This is possible to change with a block tag though. I hope you've enjoyed reading this block of text :) Let me know of any updates or other issues. I'm not sure if I'll be working on the mod for 1-4 weeks due to school and the holliday season. If I get the time I will test this myself though

Zunwolf1896 commented 7 months ago

We are playing on 1.20.1, as with the caves and cliffs update, the world Bottom Y is now at -64 which is why I changed it from 3.

is there somethign I can turn on in the config to force the grave to override the block the player died on so it forces a grave to generate even if its in lava?

I will be sure to tell my staff to use the /yigs moderate command, I have been having them check with the /yigd graves command so far.

What block tag would I have to aff in to change that generation Max Distance?

Didn't mind the wall of text, hahaha shows you actually read through my issues.

Take your time and enjoy the holidays. We have warned the players about the backpack and potential item losses. (The item loss is okay, as we have teh DeathLog installed so we can replace those, the backpacks are incompatible, though those are slightly harder to handle)

B1n-ry commented 7 months ago

/yigd grave and /yigd moderate does basically the same thing, with the moderate command first selecting which user to check the graves of. Also by relative to the world bottom Y, I mean that by having 3 for example would do 3 - 64 = -61, and not result in 3 in of itself. It will be 3 + 0 = 0 for the end and nether though (the value of 3 should hopefully prevent the grave from being locked inside bedrock in the overworld). For grave generation there is a whitelist, that first the grave tries to replace exclusively, and then there's a blacklist, of which the grave can't replace at all (unless this check fails, and the mod is configured to try to generate the grave anyway. For example if the player is crushed by bedrock with a radius of like 10 blocks). I now realize that you do not have the mod configured with the whitelist though, as useSoftBlockWhitelist is set to false. The max distance is not directly connected with the block tag, but the whitelist/blacklist is (separate block tags that is). The max distance is the generationMaxDistance as I mentioned in the last comment. If the backpacks are incompatible with deathlog, you could try the yigd restoration system. There is the restore command, but I recommend using /yigd grave [user] or /yigd moderate, locate the grave to restore to a player, and then press the restore button (it's visible if you have the correct permissions). I would still recommend using DeathLog though, since yigd does apply drop rules and such before storing the grave data. Destroyed graves should always be possible to find through yigd though, by checking the "show destroyed" box. Also, I assume when you say "more than one singular backpack in their inventory", you don't mean equipped backpacks. Let me know if I'm wrong and your players have broken that mod or something

Zunwolf1896 commented 7 months ago

image Just saw and confirmed, player fell to their death within our spawn claim (flan) and their items just dropped, didn't spawn a grave

Zunwolf1896 commented 7 months ago

image IN /yigd moderate the grave shows as claimed with nothing in it

B1n-ry commented 7 months ago

Hmmmm.... strange... Thanks for keeping me posted though. I would assume something causes the "drop" droprule to overwrite the "put in grave" one, but your config looks good so it's probably something in my code. Also, I just updated a part of the wiki. Still some work that needs doing on some parts, but the config should be completely documented (with like 3 small exceptions). Thought you might want to know

Zunwolf1896 commented 7 months ago

(I think this might be more the backpack mod than this, but it is introduced by dying sooo worth mentioning here as I already have a ticket open? One of my staff found the bug withthe backpacks and did some testing. image

B1n-ry commented 7 months ago

I can try to change my compatibility implementation so that it checks if the "backpack" is an empty item before storing it to the player. Should probably do that anyway. I will push an update of the code, which should generate a jar with github actions if you would want to test with that

B1n-ry commented 7 months ago

I can confirm that this one line of code did indeed fix the issue. I was able to reproduce the issue without the extra line of code, but not with it present. I guess I overlooked some way that travelers backpack checks if the player has a backpack equipped. I'll try to release an update later today with the fix, but try to get some other bug fixes in first as well

Zunwolf1896 commented 7 months ago

from my testing that does seem to solve this issue :-) (are you able to push it into an update so I can update the official modpack?)

B1n-ry commented 7 months ago

I'll see if I can get the time for it tomorrow. Someone reported an issue related to the gui restore function. I haven't yet figured out how to solve the issue, but preferably I don't want to push an update without fixing that issue. I hope you can understand, but if you think I'm wrong, let me know. I also haven't been able to replicate your issues of graves not generating. Because I assume this doesn't happen to specific players, that will never have their graves generate?

B1n-ry commented 7 months ago

I managed to fix the other issue (at least on my end), and have now uploaded a new version on all platforms I keep my mods on

Zunwolf1896 commented 7 months ago

The backpack thing seems to be fixed. But graves not spawning is still happening.

Player died to Lava and no grave spawned, the items all got burnt up.

B1n-ry commented 7 months ago

I also haven't been able to replicate your issues of graves not generating. Because I assume this doesn't happen to specific players, that will never have their graves generate?

There is also a built in way for graves to not generate in certain areas, but that's datapack driven, and I would assume you would know if you have a datapack present that had this

Zunwolf1896 commented 7 months ago

Just had server crash, somethign to do with YIGD and Origins compatibility

https://mclo.gs/MEAfndl

Zunwolf1896 commented 7 months ago

I also haven't been able to replicate your issues of graves not generating. Because I assume this doesn't happen to specific players, that will never have their graves generate?

There is also a built in way for graves to not generate in certain areas, but that's datapack driven, and I would assume you would know if you have a datapack present that had this

Would you like me to send you the mod pack? It might be some sort of incompatibility with something else I have added?

B1n-ry commented 7 months ago

Sure you can do that. Probably won't have much time to test until like 13th of january when my exams are done, but it would probably help

Zunwolf1896 commented 7 months ago

This is my modpack: https://legacy.curseforge.com/minecraft/modpacks/wolfqueens-origins

Players have been trying to test as well we are struggling to figure it out. The grave not spawning seems to be happening a lot less since the update, though - we have on average around 2 tickets a week instead of a day now which I appreciate xD

Zunwolf1896 commented 6 months ago

Shulker player with extra inventory slots caused server to crash when they died

crash log: https://mclo.gs/V0LlFMR

Zunwolf1896 commented 6 months ago

(The origin is supposed to keep the first 5 hotbar items)

B1n-ry commented 6 months ago

The backpack and origins issues has now been fixed as of 2.0.0-beta.7. Graves will now also store dropped + soulbound + vanished items. They won't be dropped when claimed, but can be accessed through GUI, if that issue persists. I'm sorry about the delay. Must've forgotten about saying I would test the modpack. I still will if I get the time, to see if I can reproduce the grave dropping items issue, assuming you haven't found reliable reproducable steps

Zunwolf1896 commented 6 months ago

We are planning on updating the modpack on Monday, hopefully updating this will fix the issues we are still having.

Encoutnered a new crash the last two days, though - https://mclo.gs/2XcO6v7 somethign to do with this and origins.

B1n-ry commented 6 months ago

Shulker player with extra inventory slots caused server to crash when they died

crash log: https://mclo.gs/V0LlFMR

Looks like this one, which is the origins issue I referred to that had been fixed.