GithubHelp home page GithubHelp logo

donovandmc / projectexpansion Goto Github PK

View Code? Open in Web Editor NEW
27.0 3.0 8.0 8 MB

An unofficial extension for ProjectE.

Home Page: https://discord.gg/SwxbbmMKQH

License: MIT License

Java 99.78% Shell 0.22%
minecraft projecte

projectexpansion's Introduction

projectexpansion's People

Contributors

donovandmc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

projectexpansion's Issues

EMC values above the max Long limit not being formatted properly.

EMC Values bigger than Java's Long.MAX_VALUE (9,223,372,036,854,775,807, 9 Quintillion) are currently not formatted at all, the current suspect is incorrect number comparisons, which fail as numbers get larger. It is safe to assume that after Double.MAX_VALUE (1.7976931348623157e+308), a crash or at least some kind of breaking would happen, but it's practically impossible to get that high naturally. I'm looking into ways to fix this, such as making everything a biginteger.

Mod working fine on single, but when i try on server to play with friends.

-- Head --
Thread: main
Stacktrace:
at net.minecraftforge.fml.loading.RuntimeDistCleaner.processClassWithFlags(RuntimeDistCleaner.java:71) ~[server.jar:36.2] {}
-- MOD projectexpansion --
Details:
Mod File: ProjectExpansion-1.16.5-1.0.6.jar
Failure message: Project Expansion has class loading errors
java.lang.RuntimeException: Attempted to load class net/minecraft/client/gui/screen/Screen for invalid dist DEDICATED_SERVER
Mod Version: 1.16.5-1.0.6
Mod Issue URL: NOT PROVIDED
Exception message: java.lang.RuntimeException: Attempted to load class net/minecraft/client/gui/screen/Screen for invalid dist DEDICATED_SERVER
Stacktrace:
at net.minecraftforge.fml.loading.RuntimeDistCleaner.processClassWithFlags(RuntimeDistCleaner.java:71) ~[server.jar:36.2] {}
at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:85) ~[modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:265) ~[modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:136) ~[modlauncher-8.1.3.jar:?] {re:classloading}
at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:98) ~[modlauncher-8.1.3.jar:?] {re:classloading}
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_321] {}
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_321] {}
at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_321] {}
at net.minecraftforge.fml.javafmlmod.FMLModContainer.(FMLModContainer.java:61) ~[forge:36.2] {re:classloading}
at sun.reflect.GeneratedConstructorAccessor47.newInstance(Unknown Source) ~[?:?] {}
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_321] {}
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_321] {}
at net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider$FMLModTarget.loadMod(FMLJavaModLanguageProvider.java:76) ~[forge:36.2] {re:classloading}
at net.minecraftforge.fml.ModLoader.buildModContainerFromTOML(ModLoader.java:302) ~[forge:?] {re:classloading}
at net.minecraftforge.fml.ModLoader.lambda$buildMods$29(ModLoader.java:281) ~[forge:?] {re:classloading}
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_321] {}
at java.util.HashMap$EntrySpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_321] {}
at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_321] {}
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_321] {}
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:1.8.0_321] {}
at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_321] {}
at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:1.8.0_321] {}
at net.minecraftforge.fml.ModLoader.buildMods(ModLoader.java:283) ~[forge:?] {re:classloading}
at net.minecraftforge.fml.ModLoader.lambda$gatherAndInitializeMods$11(ModLoader.java:183) ~[forge:?] {re:classloading}
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_321] {}
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_321] {}
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_321] {}
at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_321] {}
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_321] {}
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:1.8.0_321] {}
at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_321] {}
at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:1.8.0_321] {}
at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:185) ~[forge:?] {re:classloading}
at net.minecraftforge.fml.server.ServerModLoader.load(ServerModLoader.java:44) ~[forge:?] {re:classloading}
at net.minecraft.server.Main.main(Main.java:95) ~[?:?] {re:classloading}
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_321] {}
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_321] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_321] {}
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_321] {}
at net.minecraftforge.fml.loading.FMLServerLaunchProvider.lambda$launchService$0(FMLServerLaunchProvider.java:51) ~[server.jar:36.2] {}
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.1.3.jar:?] {re:classloading}
at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.1.3.jar:?] {re:classloading}
at net.minecraftforge.server.ServerMain$Runner.runLauncher(ServerMain.java:63) [server.jar:?] {}
at net.minecraftforge.server.ServerMain$Runner.access$100(ServerMain.java:60) [server.jar:?] {}
at net.minecraftforge.server.ServerMain.main(ServerMain.java:57) [server.jar:?] {}

I dont know what to put else, but awesome mod.
i have projectE installed also

Server Hang up with 1.16.5

Hello DonovanDMC

I used your ProjectExpansion because the other one seems to be dead. My Client starts without problems but the Server hangs up.

My Version ist: [1.16.5]1.0.9

Crash Dump: PasteBin

Game is gone when i do this

if i connect a cable to Transmutation Interface its starting putting items to chest or drawer its doing the job but when i open the Transmutation Tablet game become frozen and not responding i waited like 30 min. and nothing happened so i closed the game, i think if i use over 2 billion emc this happens i don't know maybe it can be a unfixable issue

Crash when player dies while having a power flower

Crash log: https://mclo.gs/VdK3Tjm

Had the server crash two times when a player died. The crash log seems to indicate it's caused by Project Expansion's power flowers. Not sure if it matters but the player has roughly a dozen final power flowers next to four watches of flowing time on dark matter pedestals and both times he was one-shot by another player. The server immediately crashed the moment they died and I don't think they died any other times since they built the power flowers.

[Question] Matter Recipes Included?

its nice to see ProjectEX has a forked being maintained for newer minecraft versions. im currently exploring the other items of the ProjectEX mod in StoneBlock 2 and see these power flower blocks that have different versions of collectors and all that, which need different colored matter items that in ProjectEX/SB2 have no concrete recipe

if I ever play a modpack that either has this fork included or that I can shove this in a modpack of my choosing that won't error-crash me out, can I assume that this mod also includes recipes on how to obtain the differing states of matter, and if so, how do I craft them?

In the EMC Link, remove empty bucket cost when calculating fluid cost.

The cost of an empty bucket is usually many times greater than the cost of its contents: for example, by default a lava bucket is worth 832 EMC, that is 768 EMC for the empty bucket and only 64 EMC for the lava.
Because of that, it might be a good idea to tweak getFluidCostPer() by subtracting the cost of the empty bucket from the cost of the filled bucket.

Potential pitfalls: fluids could end up with a value of 0 EMC (like water) or even a negative EMC value, causing math issues later on.
One solution would be to constrain the result of getFluidCostPer() to be greater than 0 , another would be to add checks in both drain() and handleActivation().

Relays don't work

I connected a relay to a bunch of collectors and a condenser mk2, and tried duping dark matter. However, no EMC transferred through the relays into the condenser. So in essence, the relays are non-functional.

Divide by Zero crash

When using a Hopper or other extraction method on an emc link it causes a divide by zero error in the hopper(or other block) this immediately crashes the game i dont think this is a mod interaction error as I have tried this with different items and storages
crash-2022-04-17_16.58.51-server.txt

Negative EMC totals are not properly formatted

As of Project Expansion 1.0.1 for Minecraft 1.18.2, when you have a large negative amount of EMC, the number is not properly formatted.

To reproduce:

  1. Create a new world with cheats enabled.
  2. emc set @s 0
  3. emc remove @s 123456789000
  4. Give yourself a Transmutation Tablet.
  5. Notice that the EMC in the top left corner is not formatted, and the text that is supposed to display your available EMC in the tablet shows -0 Trillion.

See also #16

Arcane Transmutation Table/Tablet Crash

These items are currently a work in progress, and do nothing different from ProjectE's transmutation tablet. They will be removed in a future version and likely added back in with more functionality later. For now, any crash reports relating to them will be labeled as a WONTFIX, just avoid them.

Large amounts of EMC link item I/O may cause client to hang when opening the Transmutation Tablet

  1. Install all of the mods in the below mod list.
  2. Create a new world with cheats enabled.
  3. Recreate the following setup, as shown in the image.
    • Place a Trash Void from Cyclic.
    • Place a Golden Hopper from Cyclic pointing into the trash can.
    • Place a Final EMC Link from Project Expansion on top of the golden hopper.
    • Set the EMC link to export stone, cobblestone, or any other item with EMC value 1.
    • Accelerate the setup with a Dark Pedestal and activated Watch of Flowing Time on top of the Trash Void.

image

  1. Give yourself a Transmutation Tablet and a Fading Matter, and transmute the Fading Matter to start the process.
  2. No significant lag yet, as there's only two items in the player's knowledge. Give yourself a Tome of Knowledge and insert it as well.
  3. Immediately after the Tome of Knowledge is inserted, the render thread gets stuck updating the player's EMC value on the client and what items the player can learn. Therefore, the next frame on the client will not render until the player's EMC is depleted or the setup is broken or disrupted in any way.

According to the spark profiler results generated at https://spark.lucko.me/HlILvmyN5h, almost all of the time after the first few seconds was spent in moze_intel.projecte.network.packets.to_client.knowledge.KnowledgeSyncEmcPKT.handle

Modlist:

  [✔️] Cyclic-1.18.2-1.7.1
  [✔️] ProjectE-1.18.2-PE1.0.1
  [✔️] ProjectExpansion-1.18.2-1.0.10
  [✔️] spark-1.9.11-forge

Missing EMC Values

Hi, Is there a reason why the power flowers don't have EMC values along with the person link and other items?

Thanks!

Idea: Per-tier configuration of EMC generators, links, and power flowers

Currently, almost all of the EMC related stats for the new blocks and items added by the mod are hard-coded, including:

  • The per-second EMC generation for collectors.
  • The per-second EMC transfer rate and bonus for relays.
  • The per-second EMC generation multiplier for power flowers.
    • This is currently configurable globally, but not per-tier.
  • The per-second EMC limit for EMC Links.
  • The per-second item I/O limit for EMC Links.

With the default values being proportional to O(n!) in the tier of the block, the scaling may be too harsh and some modpacks may want to nerf the higher tiers, while leaving the lower tiers untouched. On the other hand, a modpack may make each tier cost a lot more EMC than the last, to the point where the total cost quickly outpaces the default values.

I propose adding the following six lists to the config, one for each of the seven values, with one entry per tier starting at tier 1 and going through the final tier:

  • Collectors - Production rate (EMC/s)
  • Relay - Max transfer rate (EMC/s)
  • Relay - Bonus rate (EMC/s)
  • Power Flower - Multiplier (EMC/s)
    • The actual generation rate is derived from the production and bonus rates for the collectors and relays respectively.
  • EMC Link - Max EMC import limit (per second)
  • EMC Link - Max item I/O limit (per second)

Ideally, the values in the new config options should be able to support numbers up to 1.79769×10308.
If that's not possible, the next best upper limit is 263-1 ≈ 9.223 quintillion.

Feature Idea: Crystal player's skull to fake the player's presence

I'd like to have an item that can be placed on a pedestal and would make systems around a certain radius think that a player is logged in, so their personal emc account is active. This would help greatly with chunkloaded automated processes which rely on emc links for materials. It would be good to use the project-e pedestal for this. A crystal replica of my skull would be a nice item to place on the pedestal.

Add: Config option to disable the notification when your EMC is changed by `/emc add|remove|set ...`

As of Project Expansion 1.0.10 (commit 1a9c502), changing a player's EMC using the /emc add|remove|set ... command sends a notification to the targeted player(s) that their EMC was changed. This notification may not be desirable, especially in the following examples:

  1. The message may be spammed by a repeating command block giving 1 EMC/tick to all players by executing execute as @a run emc add @s 1.
  2. The modpack developer may want to implement an EMC penalty for death, but they want a custom message for the EMC loss instead of the message that is hard-coded and (currently) always active when using the /emc command on a different player.

To fix this, a config option should be added that allows the notification messages to be disabled.

  • Name: EMC Command Notification
  • Description: If the /emc command should send a notification to players when their EMC is changed.
  • Effect: If false, the /emc command does not send notifications to any players targeted that have their EMC changed.

Current workaround: Delete or comment out the following lines, then compile and install the mod as usual.

player.sendMessage(new TranslationTextComponent("command.projectexpansion.emc.add.notification", formatEMC(value), getSourceName(ctx.getSource()), formatEMC(newEMC)), getSourceUUID(ctx.getSource()));

player.sendMessage(new TranslationTextComponent("command.projectexpansion.emc.remove.notification", formatEMC(value), getSourceName(ctx.getSource()), formatEMC(newEMC)), getSourceUUID(ctx.getSource()));

player.sendMessage(new TranslationTextComponent("command.projectexpansion.emc.set.notification", formatEMC(newEMC), getSourceName(ctx.getSource())), getSourceUUID(ctx.getSource()));

EMC Link Integer Overflow Bug

As of Project Expansion 1.16.5-1.0.18 for Minecraft 1.16.5, it is possible to get so much EMC so as to make it so the amount of the requested item you can afford rolls past 31 bits, causing a signed integer overflow and the following code to assume you don't have enough EMC since emc.divide(BigInteger.valueOf(cost)).intValue() < 1:

// give if item present & empty hand
IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(owner);
long cost = ProjectEAPI.getEMCProxy().getValue(item);
BigInteger emc = provider.getEmc();
int count = emc.divide(BigInteger.valueOf(cost)).intValue();
if(count > item.getMaxStackSize()) count = item.getMaxStackSize();
if(count < 1) {
player.sendStatusMessage(new TranslationTextComponent("block.projectexpansion.emc_link.not_enough_emc", new StringTextComponent(String.valueOf(cost)).mergeStyle(TextFormatting.GREEN)).mergeStyle(TextFormatting.RED), true);
return ActionResultType.FAIL;
}

To reproduce:

  1. Give yourself a billion EMC: emc add @s 1000000000
  2. Place down an EMC Link and set it to output stone or any other item worth 1 EMC.
  3. Try to take items out of the EMC link.
  4. Repeat steps 1-3 until you get a not enough EMC error message.

EMC Display On HUD

Just like ProjectEX had in 1.12, I plan on trying to port over their whole gui bit for displaying emc & gained emc in the top right of the screen. I'm still pretty new with this stuff, so getting this to work might take a while.

Transmutation Container Hang

It's hard to pinpoint this issue, but based on the fact that this codebase is brand new and I can't see anything that would directly cause, this, it seems to be an issue with too many things happening at once. (powerflowers is where I'm seeing this)

Transmutation Interface crashes the game when it receives an item

To reproduce:

  1. Install the mods listed below on a new instance (Minecraft 1.18.2, Forge 40.1.31).
  2. Create a new world with cheats enabled.
  3. Give yourself a Transmutation Interface and a Hopper.
  4. Place the Transmutation Interface.
  5. Place the Hopper next to and pointing into the Transmutation Interface.
  6. Place any item (with an EMC value) in the hopper.
  7. Crash

Logs: https://paste.ee/p/KaUIY

Modlist from crash report:

	Mod List: 
		client-1.18.2-20220404.173914-srg.jar             |Minecraft                     |minecraft                     |1.18.2              |DONE      |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f
		ProjectE-1.18.2-PE1.0.1.jar                       |ProjectE                      |projecte                      |1.0.1               |DONE      |Manifest: NOSIGNATURE
		forge-1.18.2-40.1.31-universal.jar                |Forge                         |forge                         |40.1.31             |DONE      |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90
		ProjectExpansion-1.18.2-1.0.6.jar                 |Project Expansion             |projectexpansion              |1.18.2-1.0.6        |DONE      |Manifest: e9:fa:82:d2:7b:66:ce:37:db:52:70:63:25:68:04:a9:72:41:8f:cf:6c:9a:da:52:ab:05:5b:97:2c:13:54:37

EMC/s numeric display is not working as intended when you are losing EMC over time

As of mod version 1.0.11 for Minecraft 1.16.5, losing EMC over time shows two minus signs in front of the number, like below:

To reproduce:

  1. Use a Transmutation Table or something similar to put in some items.
  2. Wait 5 seconds.
  3. Use a Transmutation Table or similar to take out many items.
  4. Notice that the EMC display shows you are losing EMC, but with 2 minus signs instead of 1.
    image

To reproduce with larger numbers, which cause the number to not be shortened when required:

  1. emc set @s 1000000000000
  2. Wait 5 seconds
  3. emc set @s 100000000000
  4. Notice that the EMC display shows you are losing EMC, but the number is not formatted.
    image

This may be caused by the following line of code prepending a negative sign to a negative number that formats to a string generated by the EMCFormat.INSTANCE.format function which already contains a leading negative sign:

if(!change.equals(BigInteger.ZERO)) str += " " + (change.compareTo(BigInteger.ZERO) > 0 ? (TextFormatting.GREEN + "+") : (TextFormatting.RED + "-")) + EMCFormat.INSTANCE.format(change.doubleValue()) + "/s";

Matter upgrader not working

I have made an matter upgrader, the description says I need to learn the next tier. So I made the next tier with the hand but when I want to upgrade my other collectors it still says I need to learn the next tier. I have 58 million EMC so that cant be the issue. How does this item work?

NBT Filtering

Currently emc links just accept items regardless of emc, if setup without might thought this can toss out things like enchanted items & custom mod items that have emc values

Some kind of item or a gui could be made to toggle a feature for this

Infinite Steak / Coal should check that their base items have EMC values before working

Currently, when Infinite Coal is placed in a furnace while Coal has no EMC value, or Infinite Steak is eaten while Steak has no EMC value, the item works, but the player's EMC is not adjusted.

This may cause balancing issues, especially as the former can result in infinite furnace fuel (and FE with other mods) at no ongoing cost, while the latter may effectively result in the player being able to eat for free.

Issue exists since 7bb2272, so any version of Project Expansion that has the Infinite Fuel and Infinite Steak should be able to reproduce this.

To reproduce:

  1. Remove the EMC value from Coal (minecraft:coal) and Steak (minecraft:cooked_beef).
  2. Give yourself the Infinite Coal, Infinite Steak, any smeltable item such as cobblestone, and a furnace.
  3. Place down the furnace and place the Infinite Coal in its fuel slot.
  4. Place any smeltable item in the same furnace.
  5. Make yourself hungry: effect give @s hunger 2 255
  6. Try eating the Infinite Steak.
  7. If hunger is restored after eating, the Infinite Steak worked for free.
  8. Check the furnace.
  9. If the furnace successfully smelted an item, the Infinite Coal worked for free.

Some EMC values above 1000000 are multiplied by 1000 during rendering

It appears that the latest updates to Project Expansion broke the way some EMC values are displayed. To be more specific, if the actual EMC value is more than 1000000, it appears to be multiplied by 1000 during rendering. For example, 1,234,567 would be shortened to "1.23 Billion" instead of "1.23 Million". If the actual EMC value was 2,147,483,648 (Yellow Fuel), it would be rendered as "2.14 Trillion" instead of "2.14 Billion".

This did not happen in older versions of Project Expansion, which correctly format the numbers with 1000000 being a million and not a billion.

Mod list
	Mod List: 
		client-1.18.2-20220404.173914-srg.jar             |Minecraft                     |minecraft                     |1.18.2              |DONE      |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f
		configured-1.5.3-1.18.2.jar                       |Configured                    |configured                    |1.5.3               |DONE      |Manifest: NOSIGNATURE
		forge-1.18.2-40.1.0-universal.jar                 |Forge                         |forge                         |40.1.0              |DONE      |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90
		jei-1.18.2-9.5.5.174.jar                          |Just Enough Items             |jei                           |9.5.5.174           |DONE      |Manifest: NOSIGNATURE
		ProjectE-1.18.2-PE1.0.1.jar                       |ProjectE                      |projecte                      |1.0.1               |DONE      |Manifest: NOSIGNATURE
		ProjectExpansion-1.18.2-1.0.4.jar                 |Project Expansion             |projectexpansion              |1.18.2-1.0.4        |DONE      |Manifest: e9:fa:82:d2:7b:66:ce:37:db:52:70:63:25:68:04:a9:72:41:8f:cf:6c:9a:da:52:ab:05:5b:97:2c:13:54:37

[1.16.5]Multiplayer Log Spam "EMC/maxPer"

console.log
(redirected from stdout)

As shown above, the log on server is spammed by lines of "[EMC/maxPer] <some random number> null"
This only happens when any type of collector/relay from ProjectExpantion is placed in world, and the number of lines per seconds are same as the number of those blocks. So, when many of them are placed in world, the server's disc is overwhelmed and eventually it breaks.
the numbers in lines are possibly linked to emc generation.

This phenomenon is not recorded on latest.log.

[1.0.31] EMC (Item) Links Reporting Incorrect Number of Items

Version .31 is not reporting the correct number of items for EMC links to other storage mods (such as AE2). In version .26 (or maybe it was .24?) the link would report the amount as the number of items that could be supplied given your current EMC. While not correct, it was at least usable. In the current version it is always reporting the amount as 1, which is definitely not usable for automated crafting.
Specifically, in my case, I'm using an AE2 storage bus on an EMC (item) Link.

Ideally the reported value should be the lesser of TotalEMC/ItemEMC or the item limit for the EMC Link in question.

The Transmutation Interface seems to be working fine.

[Edit] The version of AE2 did not change between these two scenarios.

Unformatted number for "not enough EMC" message when extracting from an EMC Link

As of Project Expansion 1.0.9 for Minecraft 1.18.2, when attempting to extract items from an EMC Link but without having enough EMC to extract the item, the message "You do not have enough emc to purchase this; you need %s" is displayed, where %s is the EMC value of the item.

However, this value is displayed raw, with no formatting whatsoever.
Example when extracting an item worth 1.23 Million EMC: "You do not have enough emc to purchase this; you need 1234567"
Corrected: "You do not have enough emc to purchase this; you need 1.23 Million"

This is because there are still some instances where String.valueOf is used to format a (large) EMC value, where EMCFormat.format should be used.

Example:

player.displayClientMessage(new TranslatableComponent("item.projectexpansion.matter_upgrader.not_enough_emc", EMCFormat.format(BigInteger.valueOf(diff))).setStyle(ColorStyle.RED), true);

Non-example:

player.displayClientMessage(new TranslatableComponent("block.projectexpansion.emc_link.not_enough_emc", new TextComponent(String.valueOf(BigInteger.valueOf(ProjectEAPI.getEMCProxy().getValue(itemStack)))).setStyle(ColorStyle.GREEN)).setStyle(ColorStyle.RED), true);

Request of configuration options.

Hello!

I'm glad you did this one. Using: ProjectExpansion-1.18.2-1.0.12.jar
Previously I've used the old ProjectEX to tone down greatly power-flower and collector input, so encourage more clever solutions by hidden loops and such. The old config is here: https://pastebin.com/W9HEahDJ

Together with ProjectE set to 1/5 value and rounding down, that removed huge cobblestone makers, made the player think rather crafting than simply getting an item out from EMC, and a general building material helper.

Looking at the config here I'd be grateful if I'be able to set these multipliers to a fraction number, like "0.2":
collectorMultiplier = 1
emcLinkItemLimitMultiplier = 1
emcLinkFluidLimitMultiplier = 1
emcLinkEMCLimitMultiplier = 1
powerflowerMultiplier = 1
relayBonusMultiplier = 1
relayTransferMultiplier = 1

Plus if there'd be a switch which disables crafting the old collectors and relays, the game would be lesss laggy as EMC would be added by seconds and not by ticks.

These changes would raise this mod again to the sorrow of all EMC users, and as you know, the success of a server needs player-tears.
(also make EMC an useful tool instead breaking most other mods depending on resources)

Thank you kindly, and have a fun weekend!

(ps: do you know a mod which connests EMC to the Building Gadget for 1.18.2?
https://www.curseforge.com/minecraft/mc-mods/emcgadgets )

EMC Link Fluid Mode

Mostly just an idea off the top of my head I've had while playing in a modpack. This would likely not be too hard to implement, and could either involve the same method as current, but assume we're exporting fluids if a bucket is present, or have some way to configure the block to export fluids

== Feature Suggestions ==

Having been playing with some mods that adds things missing from ProjectEX, there's a few things I'd love to see implemented as well in this.

  • EMC-Linked Fuel of some sort, to where it'll pull the equivalent of 1 Coal to restart the burn cycle instead of having to fill numerous sets of coal into a machine or absolutely overkill ones like the 40 months burn time one.

  • Integration with Mass Storage Mods such as Refined Storage or Applied Energistics 2, This feature has been quite enjoyable to use as it removes the constant need to run back and forth from Tablet/Table to my crafting menu, and removes need to have all the raw materials stored in my system and can be linked using External Storage and stored in EMC form instead.

The mod that currently adds both of these features is a Helper Mod someone wrote for the modpack "Project Architect" called "Project Architect Additions" - CurseForge: Project Architect Additions

That mod also features an infinitely consumable food that drains EMC on consumption but the two things I'd love to see actually added is the EMC-Linked Fuel (EMC Coal) and integration with mass storage mods like RS and AE2

1.13 & 1.17 Support

This isn't a real issue, it's for a pin when people come inevitably crying to me about these versions not existing.

ProjectE has officially skipped 1.17, and will almost certainly not make an official 1.13 release.
The reasons being:

  • 1.17: Official Notice From Devs - "This is an all around unstable and incomplete version of the game, it has been skipped in favor of 1.18."
  • 1.13: The ProjectE developers have noted that 1.13 is unstable and does not have a release build, and it seems unlikely that they will make a release for it.

Minecraft Versions

  • 1.19 (forge: 43.1.25)
  • 1.18 (forge: 40.1.0)
  • 1.17 (ProjectE skipped 1.171)
  • 1.16 (forge: 36.2.3)
  • 1.15 (forge: 31.2.57)2
  • 1.14 (forge: 28.2.26)2
  • 1.13 (ProjectE skipped 1.133)
  • 1.12 (I'm not supporting 1.12)

All currently supported versions are fully functional.

Footnotes

  1. Notice From Devs

  2. These versions have been discontinued. 2

  3. While they do have a 1.13 branch on their github repository, no official releases have been made for 1.13. The most likely cause seems to be that forge 1.13 is unstable and does not have a release build

(...) getStackInSlot is abstract crash

I cannot tell exactly what this issue is as the method is clearly defined, this is only happening in an instance with many other mods so this may also be an incompatibility with a mod that's causing this. So far I've seen this with pipez, but I suspect it can happen with any mod that has similar functionalities.

As far as I can tell, this effects any tile entity with an inventory, so this is likely something with my implementation
TileEMCImport Crash
TileEMCExport Crash

EMC Links show fluid export limit in "MB/s" instead of "mB/s"

All of the EMC links have the correct fluid import and export limits, but the units are incorrect. "MB" could be interpreted as "megabuckets", which 10^9 times the intended unit, which is millibuckets (mB).

Therefore, the following translation should instead say Fluid Export Limit: %s mB/s:

"block.projectexpansion.emc_link.limit_fluids": "Fluid Export Limit: %sMB/s",

Bug exists since Project Expansion 1.0.8 (commit 5fb33e4).

`emc get` should actually return the target's EMC for `execute store result`

Project Expansion adds the emc remove command, which allows the player to gain negative emc if emc remove is called with a value greater than the player's current EMC total.

Instead of the command setting the EMC negative, it should fail, with the result encoding whether the player had enough EMC to take the hit (1) or not (0).

To reproduce, create a new world with cheats enabled, then run the following commands in order:

scoreboard objectives add a dummy
scoreboard objectives setdisplay sidebar a
emc add @s 100

# Returns 1 and deducts 64 from your EMC, leaving 36 EMC.
execute store result score @s a run emc remove @s 64

# Not enough EMC to take the hit, so this should fail, return 0, and leave your EMC unchanged.
# But, it instead succeeds, returns 1, and sets your EMC negative.
execute store result score @s a run emc remove @s 64

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.