This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
SquidDev's profile picture

[MC 1.8.9-1.12.2] Plethora

Started by SquidDev, 06 August 2016 - 12:35 PM
SquidDev #1
Posted 06 August 2016 - 02:35 PM
Plethora The most anticipated mod of the month! As featured on CCJam 2016!
Plethora is a ComputerCraft peripheral provider for Minecraft 1.8.9+. It aims to provide both metadata and peripherals for vanilla Minecraft and most mainstream mods.

Plethora also adds a series of "modules" to the game. These modules can be used by the player with varying success. They really come in to their element when put in a manipulator, providing a series of methods which allow interacting with your environment. This includes:
  • Introspection: investigating the current player's inventory (and ender chest)
  • Scanner: scans blocks in an area, gathering metadata about them and allowing wrapping peripherals remotely
  • Sensor: scans entities in an area. Like the scanner this allows getting metadata and wrapping them as peripherals.
  • Frickin' laser beam. It fires lasers.
If you've ever wanted to embed a computer in your skull then today is your lucky day. Plethora provides a neural interface which can be attached to your head, or some unsuspecting animal or monster. Right clicking the entity with a neural controller allows you to interact with it. You can insert modules (which will be wrapped as peripherals) and manipulate them with the built-in computer. Building a cyborg army has never been so easy.

You can also add a kinetic augment to the neural interface. This allows controlling the host entity in various ways.

Documentation
There is pretty comprehensive documentation on the Plethora website. This contains tutorials, explanations of several fundamental concepts and thoroughly explained examples.

You can also create a HTML dump of all methods by running the command /plethora dump out.html. When run in a single player world this will save a file in the active directory (normally .minecraft or your modpack's folder). This documentation is also available online.

Download
Download from CurseForge A full list of dependencies can be found on the website.

Screenshots
SpoilerMod integration


Some modules


The neural interface
I

The culmination of this mod: Squid with frickin' laser beams attached to their heads!
Edited on 03 May 2019 - 11:33 AM
Bomb Bloke #2
Posted 06 August 2016 - 03:02 PM
Squid with frickin' laser beams attached to their heads!

I suppose with no sharks (nor ill-tempered mutated seabass), you just had to make do. ;)/>
Bomb Bloke #3
Posted 08 August 2016 - 06:45 AM
Regarding 1.0.0-beta1;

Does interfacing a critter nametag them (that is, prevent them from despawning)?

Seems odd to just have kin.disableAI(), as opposed to a toggle? Said function makes it impossible to move my test dummy (a zombie pigman) at all - whether it be by my character pushing them, kin.launch(), whatever.

kin.launch() seems a tad… overpowered? I mean, kin.launch(0,270,4) translates to "send entity over fifty blocks up into the air"… Likewise, that infinite-ammo laser really packs a wallop…

getTransferLocations() seems to show up in places where it shouldn't (ie pretty much everywhere).

While messing about with inventory reading on myself, I crashed out with this. I can reproduce by entering into the Lua console:

inv = peripheral.wrap("whatevs")

inv = inv.getInventory()

inv.list() -- Can call this as much as I like.

-- Duck out and modify inventory contents here

inv.list() -- MC crash

Best I can make out there's no way to "use" items other than food yet, and no way to interact with external inventories? I may just be missing something there?
SquidDev #4
Posted 08 August 2016 - 07:40 AM
Does interfacing a critter nametag them (that is, prevent them from despawning)?
It doesn't nametag them but does prevent them from despawning. That should be enough.

Seems odd to just have kin.disableAI(), as opposed to a toggle? Said function makes it impossible to move my test dummy (a zombie pigman) at all - whether it be by my character pushing them, kin.launch(), whatever.
That method needs a rework: I'm pretty sure it also disables gravity. The point was to prevent mobs trying to kill you, but it ends up disabling all physics.

kin.launch() seems a tad… overpowered? I mean, kin.launch(0,270,4) translates to "send entity over fifty blocks up into the air"… Likewise, that infinite-ammo laser really packs a wallop…
Balance is not my strong suite. I don't know why launch seems to throw you in the air so high when horizontal velocity is so low. There is a sort of rate limiting on the laser but making everything non-op needs some work.

getTransferLocations() seems to show up in places where it shouldn't (ie pretty much everywhere).
Everywhere. Yeah, I probably need a flag on methods saying whether they transfer things.

-everything is awful-
I have no clue why this is happening but I've filed an issue.

Best I can make out there's no way to "use" items other than food yet, and no way to interact with external inventories? I may just be missing something there?
Other interaction methods are on the todo list, just not implemented. You should be able to wrap chests and what-not as peripherals from a computer so I guess you're talking about from the neural interface? At the moment no: I'm not sure the best way to handle it. All ideas welcome!

Thanks for the feedback (and trying out the mod).
Bomb Bloke #5
Posted 08 August 2016 - 01:03 PM
Balance is not my strong suite. I don't know why launch seems to throw you in the air so high when horizontal velocity is so low. There is a sort of rate limiting on the laser but making everything non-op needs some work.

If I might hazard a suggestion: an expensive crafting station would make it rather more "fair" to have individual, high-powered items at a cheap price.

You totally need to add a Cortex Reaver mob, by the way.

You should be able to wrap chests and what-not as peripherals from a computer so I guess you're talking about from the neural interface? At the moment no: I'm not sure the best way to handle it. All ideas welcome!

Beats me how viable this is on the backend, but from the Lua-scripting side of things I guess it'd make sense to have the block sensor return a list of inventory blocks in range of the entity as a list of strings - presumably they have their own UUIDs or something. You could then either getInventory(UUID) them, or ownInventory.push() to them.

An augment which adds an inventory to entities which otherwise wouldn't usually have them would be cool, too, especially if it gave them the innate ability to such up dropped items automatically like a player does.

I haven't tried them, so I guess I'll ask if modems be equipped in augment slots?
SquidDev #6
Posted 08 August 2016 - 06:48 PM
If I might hazard a suggestion: an expensive crafting station would make it rather more "fair" to have individual, high-powered items at a cheap price.
Like this? I'm not convinced that making things super-expensive works: resources are generally dirt cheap in modded anyway. However some things could do with making more expensive or having a higher cost: such as consuming XP or food from a player.

You totally need to add a Cortex Reaver mob, by the way.
Went and looked this up. I'm more interested with the laser rapier.

Beats me how viable this is on the backend, but from the Lua-scripting side of things I guess it'd make sense to have the block sensor return a list of inventory blocks in range of the entity as a list of strings - presumably they have their own UUIDs or something. You could then either getInventory(UUID) them, or ownInventory.push() to them.
Most of the infrastructure is there already. I'd have to have a think about how transfer sources are shared between different modules. Putting it on the block module is a good idea though.

An augment which adds an inventory to entities which otherwise wouldn't usually have them would be cool, too, especially if it gave them the innate ability to such up dropped items automatically like a player does.
The neural interface can manipulate the equipment slots of entities, but doesn't add additional inventory space. I guess it might be possible. Sucking/dropping is going on my todo list has been added. Thanks!

I haven't tried them, so I guess I'll ask if modems be equipped in augment slots?
They're modules, not augments :P/>. Modems should work fine (that is what I've said about everything else though :(/>).. I'm hoping to allow other mods items to be used as modules, for instance the thaumometer could tell you the aspects makeup of an item.

If you have other ideas do post them! Its really useful having other voices in the mix.
Edited on 08 August 2016 - 07:46 PM
HDeffo #7
Posted 08 August 2016 - 10:03 PM
I wasnt quite as excited for 1.8 modpacks to start coming out until you released this. Now I have to impatiently wait until someone puts it into a modded game
immibis #8
Posted 27 September 2016 - 07:48 AM
Is that neural interface what it looks like - does CC now have an API for embedding computers into things?
SquidDev #9
Posted 27 September 2016 - 10:01 AM
Is that neural interface what it looks like - does CC now have an API for embedding computers into things?
No. I just ended up using some internal classes. Its ugly, hacky and frowned upon but it works :)/> :wacko:/>
SquidDev #10
Posted 12 November 2016 - 11:20 PM
Well, long time no see. I must say: I've missed working on this mod and am excited to get another update out. Grab it on curse! We're still in beta so expect some things to change, like they have in this version.

The biggest change you'll notice is that I've done a re-work of modules. Instead of each module being independent of the others, methods can depend on multiple modules. For instance if there was a "goggles of revealing" module you could use that and the introspection upgrade to list aspects inside your inventory. As a result of this, the neural interface has separate slots for peripherals and modules now: modules are mounted on the "back" slot of the computer. There is also a Mk II manipulator which can hold 5 modules at once.

I've added a load more mod-compatibility with support for Vanilla, CCTweaks, Baubles, IC2 and RF. There are also use and walk methods on the kinetic augment, allowing you to send an unsuspecting entity walking around. Sadly you can't control yourself yet :(/>.

Everything is now configurable, allowing you to disable transfer sources, meta provides and methods, blacklist entire mod specific integration and add a "base cost" to every method: allowing rate-limiting method calls.

There are also a load of bug fixes, but we'll not focus too much on them :)/>.
Edited on 13 November 2016 - 08:46 AM
Bomb Bloke #11
Posted 13 November 2016 - 09:23 AM
Oh hey, just last night I was wondering what would become of this. :)/>

I'm having a bit of trouble with it, though. First I tried loading up a zombie pigman with modules - I could wrap them via the "back" peripheral and got a load of functions in the resulting table, but they all threw "The module has been removed" when called. Including listModules(). Putting aside that the modules were clearly still in place, it'd be handy if the error specified which modules it thought were missing…

Trying listModules() on myself didn't error, but didn't list anything, either. A quick check of launch() yielded some success (whee!), but walk() seems to be missing from my character's interface (the pigman got it, even if it didn't work - I'd assume both functions should come from the kinetic module?).

After moving the kinetic module around a bit in the hopes of getting the missing walk() / isWalking() functions to appear, I re-wrapped the rear peripheral and started getting "The module has been removed" for everything through my own interface. At this point I quit to the main menu and re-entered the world, only to find it had rolled back to a point very shortly before I had first stuck the interface on the pigman.

The resultant log's a bit lengthy, so please excuse this Mediafire link to a zip. I doubt you'll find anything of interest in it other than this being repeated ad nauseam, however:

Spoiler
[19:41:08] [File IO Thread/ERROR]: Failed to save chunk
java.lang.NullPointerException
	at net.minecraft.nbt.NBTTagCompound.func_150298_a(NBTTagCompound.java:387) ~[dn.class:?]
	at net.minecraft.nbt.NBTTagCompound.func_74734_a(NBTTagCompound.java:24) ~[dn.class:?]
	at net.minecraft.nbt.NBTTagCompound.func_150298_a(NBTTagCompound.java:392) ~[dn.class:?]
	at net.minecraft.nbt.NBTTagCompound.func_74734_a(NBTTagCompound.java:24) ~[dn.class:?]
	at net.minecraft.nbt.NBTTagList.func_74734_a(SourceFile:45) ~[du.class:?]
	at net.minecraft.nbt.NBTTagCompound.func_150298_a(NBTTagCompound.java:392) ~[dn.class:?]
	at net.minecraft.nbt.NBTTagCompound.func_74734_a(NBTTagCompound.java:24) ~[dn.class:?]
	at net.minecraft.nbt.NBTTagCompound.func_150298_a(NBTTagCompound.java:392) ~[dn.class:?]
	at net.minecraft.nbt.NBTTagCompound.func_74734_a(NBTTagCompound.java:24) ~[dn.class:?]
	at net.minecraft.nbt.CompressedStreamTools.func_150663_a(CompressedStreamTools.java:111) ~[dx.class:?]
	at net.minecraft.nbt.CompressedStreamTools.func_74800_a(CompressedStreamTools.java:101) ~[dx.class:?]
	at net.minecraft.world.chunk.storage.AnvilChunkLoader.func_183013_b(AnvilChunkLoader.java:232) ~[anj.class:?]
	at net.minecraft.world.chunk.storage.AnvilChunkLoader.func_75814_c(AnvilChunkLoader.java:210) [anj.class:?]
	at net.minecraft.world.storage.ThreadedFileIOBase.func_75736_b(SourceFile:37) [auc.class:?]
	at net.minecraft.world.storage.ThreadedFileIOBase.run(SourceFile:30) [auc.class:?]
	at java.lang.Thread.run(Unknown Source) [?:1.8.0_66]

module.use() is all kinds of awesome and I want to play with it some more.
SquidDev #12
Posted 13 November 2016 - 09:32 AM
Putting aside that the modules were clearly still in place, it'd be handy if the error specified which modules it thought were missing…
That is really, really weird. Everything worked when testing, so I'll have another look to see if I accidentally broke something during release. Thanks for the report: I'll be including the removed module in the error message.

Sorry about this :(/>.

walk() seems to be missing from my character's interface (the pigman got it, even if it didn't work - I'd assume both functions should come from the kinetic module?).
Ahh, walk won't be implemented on player's as they don't have an AI. I apologise for false advertising -_-/>. I'll look into adding it, though it might involve some hacks so I'm not too sure about it. In the mean time I'll remove that from the OP.
Edited on 13 November 2016 - 08:45 AM
SquidDev #13
Posted 13 November 2016 - 09:07 PM
-snip-
I've been unable to reproduce this so just a couple of questions:
  • Were you using a world which had Plethora already on it? I don't think this would cause breakages, but I did change some item and block names which might have caused this issue.
  • Did you call disableAI() on the Pigman before using walk? Otherwise the Pigman's AI might override your walk instruction and wander somewhere else.
I hopefully have fixed the issues with modules, though I'm also unable to reproduce the "not attached" issue, I'll have a fiddle to see where anything might be breaking. I've added the module name to the error message which should help a little.

Thanks for the report though :)/>.

I've got a 1.10.2 build working, though I'm not sure it is ready for general consumption. If people are interested in an "alpha", PM me/post something here or on the GitHub.
Bomb Bloke #14
Posted 13 November 2016 - 10:12 PM
Sorry about this :(/>.

Pish posh. Thank you for your work. :)/>

Were you using a world which had Plethora already on it? I don't think this would cause breakages, but I did change some item and block names which might have caused this issue.

Yes. I'd intended to test a new world (and perhaps upgrade Forge), but ran out of time last night.

Trying a new world just now yielded some success - but depending on how I shuffled the modules, I was still able to generate either "module has been removed" errors, or new "no such method X" messages. Further shuffling got it working again, but the long list of "Failed to save chunk" messages also recurred within the log.

After this I went back to the first world and tried the same thing there, and was able to get the same results (some success, some failure). One method that seems to be fairly reliable in terms of bugging things out is placing modules (any types) in just the left and / or right arrow slots, leaving the other three empty - I can't even wrap the rear peripheral that way. Putting other modules in may lead to the "missing" modules being detected, shuffling them around may make them go missing again (even if I don't touch the bugged slots directly), and so on.

Turns out I'm already on the latest Forge (11.15.1.1902), though I could try the older, "recommended" build if you think it's worthwhile (11.15.1.1722)?

Did you call disableAI() on the Pigman before using walk? Otherwise the Pigman's AI might override your walk instruction and wander somewhere else.

No, but I called a bunch of other functions beforehand. They all without exception threw the "module has been removed" error, as did walk(), so it was a bit of a moot point at the time.

Is it intentional that the interface doesn't work with all vanilla mobs at this stage? Eg, Endermites, Pigmen children? Certainly the majority of mobs seem to accept them…
Edited on 13 November 2016 - 09:15 PM
SquidDev #15
Posted 13 November 2016 - 11:11 PM
Is it intentional that the interface doesn't work with all vanilla mobs at this stage? Eg, Endermites, Pigmen children? Certainly the majority of mobs seem to accept them…
I've explicitly blocked baby mobs. Why would you do such a horrible thing to them? It won't render the overlay on mobs where it looks stupid on (such as bats, chickens and entermites). That being said, you should still be able to attach it to them, it just won't render.
Edited on 13 November 2016 - 10:11 PM
Bomb Bloke #16
Posted 14 November 2016 - 01:29 AM
I've explicitly blocked baby mobs. Why would you do such a horrible thing to them?

Putting aside that they're vicious little half-human, half-pig, undead abominations, and that they likely dream of being the Terminator when they grow up… because that's what the monster egg gave me. :P/>

Seriously though, it seems… arbitrary. :mellow:/>

This is just me babbling, but launch() makes me think back to the ultra dense cannon. Makes me yearn for a module made out of compressed TNT blocks or something.
SquidDev #17
Posted 16 November 2016 - 06:20 PM
Well, here is another Plethora release with a load of bugfixes. Hopefully it'll be less buggy than the previous one though I know how well that has turned out. I've also released a 1.10.2 version if you fancy. Grab them both on Curse.

Changelog
  • Implement IComputerItem and IMedia on neural interface (can now be placed in disk-drive).
  • Fix issue when getting metadata of turtles
  • Fix NPE when serializing entities due to the DisableAI capability
  • Fix neural interface peripheral not being rebound
  • Add neural interface overlays for remaining mobs
  • Ignite TNT when hit by a laser
  • Display module name in "module removed" error message
  • Nerf the Y velocity on the kinetic augment
Look at this adorable bat:


Seriously though, it seems… arbitrary. :mellow:/>
Currently the main reason I'm avoiding it is that all the neural interface offsets would have to be different. It would be fine for "humanoid" entities such as zombies, but most of the time it looks stupid.
Edited on 16 November 2016 - 05:23 PM
Xerxes #18
Posted 30 November 2016 - 02:14 AM
SwitchCraft has added Plethora to it's mod list.
The 1.10.2 version of Plethora is considered stable and suitable for public server usage.
I'm hosting a HTML dump of all of the methods on the version of Plethora that SwitchCraft uses (as of version 1.10.2-1.0.0-beta3) at http://switchcraft.p...thora_docs.html
Edited on 30 November 2016 - 02:08 AM
SquidDev #19
Posted 05 December 2016 - 09:12 AM
Just for fun I wrote a little inventory management system using Plethora:


You can search for items, extract them and insert them back into the system. It'll try to guess where to place items based off where items of the same type are stored and where there is room. This also requires CCTweaks in order to transfer items across the network, though I guess you could modify it to transfer using turtles instead. For those interested, you can find the source on GitHub.
Bomb Bloke #20
Posted 05 December 2016 - 09:40 AM
Sooo… you've made an even cheaper ME system than AE gives us, yes? ;)/>
SquidDev #21
Posted 05 December 2016 - 10:25 AM
Sooo… you've made an even cheaper ME system than AE gives us, yes? ;)/>

Yeees, though it is much more limited. Scanning an inventory takes a lot of time so I maintain a cache of all chests in memory. Adding or removing items manually will make the cache inaccurate and so break everything. You could always re-scan a random inventory every 30 seconds or so to ensure it is up to date. Auto-crafting is also not implemented, though wouldn't be too hard with the help of turtles.

Yeah, this is slightly OP, though you can tweak the configs to make this more infeasible/impossible should you fancy. Thanks to the introspection module and wireless bridge, it would be possible to transfer items directly from/to your inventory which is kinda cool, but problematic from a "balance" point of view: CC and Plethora aren't exactly late game. I guess the only "balancing" factor is that you still have to knuckle down and implement it.

Part of the point of Plethora was to be able to automate much of a world using just CC and peripheral mods. You could have some pretty nifty things like sending out a turtle to harvest wood or crops when you're running low.
Edited on 05 December 2016 - 09:29 AM
Bomb Bloke #22
Posted 05 December 2016 - 10:43 AM
When you get down to it, "reasonably balanced" is in the eye of the user. Personally I'm at the point where I strictly play creative, and then only to plonk down computers and start typing code into them. Giving powerful features to users "on the cheap" isn't necessarily a bad thing, even if I like to poke fun at it.

… when I do play survival, though, I still find ME systems to be too "cheap" to use… they make pretty much all other storage / automaton mods completely redundant. Certainly I'd rather run a Plethora-based system. :)/>
SquidDev #23
Posted 30 December 2016 - 10:20 PM
Guys, it happened. Eventually. An actual, proper, non-beta release. I'm happy to announce to you:

Plethora 1.0.0
I know. I can hardly contain myself. Let's talk about what has changed since the last time I released something.

Firstly, we have a brand new, shiny website. This serves as both a showcase of the mod's capabilities, whilst providing a source of documentation, tutorials and examples. Please have a browse through it, hopefully it makes it easier to get into the mod. If you've got any feedback on the design or content of the website, please do tell me: it has been written and proof-read by people familiar with the mod so may gloss over things which aren't obvious.

Now the juicy bit, the actual mod. Truth be told, most of this update is just polishing up various aspects of the mod and fixing tonnes of bugs. Of course, there are some new features though:
  • Add note block module.
  • Add keyboard: allows controlling computers remotely.
  • Integration with Tinkers' construct, StorageDrawers, Tesla, Forestry, RefinedStorage, Applied Energistics and JEI (some of these are 1.10.2 only).
  • Lasers set mobs on fire and can light nether portals.
  • Preserve pocket computer's ID when upgrading to a neural interface.
  • Allow blacklisting modules.
  • Additional methods and meta providers.
I've spent a lot of time checking that every feature works as expected, but I'm sure there are things which have crept through the gaps. As always, please report any bugs you find so I can fix them as soon as possible.

Well, enjoy I guess. And happy new year.
SquidDev #24
Posted 04 January 2017 - 04:02 PM
I'm working towards a minor update with some bug fixes (thanks BombBloke for the reports), but a little something might have snuck in:



Hrrmrm, lasers might need balancing slightly.

Most Plethora modules are now added as upgrades for turtles (and pocket computers if CCTweaks is installed). As always, there is a config option to prevent specific modules being used as upgrades.
Edited on 04 January 2017 - 03:03 PM
Lupus590 #25
Posted 04 January 2017 - 08:28 PM
Suggestion, lasers use turtle fuel when on a turtle? Perhaps use fuel in player inventory too?
Shaka #26
Posted 08 January 2017 - 01:37 PM
Thanks a lot for this mod, I'm really loving the possibilites it provides!

I might have found a small bug that's easily reproducable:

Drop wood into an unlit furnace(that has coal in it) with this script:

function printname()
for k, v in pairs(furnace.getMetadata()) do
  if k == "name" then
  print(v)
  end
end
end
furnace = peripheral.wrap("bottom")
printname()
turtle.dropDown(1)
furnace = peripheral.wrap("bottom")
printname()

This works the first time but when trying to repeat it just returns "The block is no longer there"
I circumvented it by having the turtle go up and down before the second wrap but thought you'd might want to look into it.

Thanks again for the great mod, just finished a Botania flower/rune crafter thanks to the chest searching ability.
SquidDev #27
Posted 08 January 2017 - 05:59 PM
-snip-
Thank you for the report, just one little thing: are you running Minecraft 1.8.9 or 1.10.2? I'll have a look at fixing this now.

Thanks again for the great mod, just finished a Botania flower/rune crafter thanks to the chest searching ability.
Great to hear! It is really encouraging to see people using this mod for automation - part of the reason I wrote it was so I could automate my entire world with CC.
Shaka #28
Posted 08 January 2017 - 06:40 PM
Running version 1.10.2
SquidDev #29
Posted 07 February 2017 - 09:55 PM
Update time! Plethora 1.1.0 has just been published to Curse, featuring a whole host of exciting new features (and less exciting bug fixes). Some highlights of this release are:

Modules in-world
Any modules which have a block form (noteblocks and daylight sensors) can be wrapped as a peripheral in-world, allowing you to use their module methods directly. No manipulator required! If you wish to disable particular modules (for instance you want people to use an iron noteblock instead) you can just add the module name to the blacklist.blacklistModulesTile config setting.

Turtle and pocket upgrades
Most modules can now be used in turtles and, if you have CCTweaks installed, pocket computers. This means we finally have laser turtles back after so long. See this post for some of the fun things you can do with them. Do note that not all modules can be used as upgrades: the kinetic augment, for instance, cannot be used in a turtle. As above, there are config options to disable specific modules being used.

Chat recorder
The chat recorder is a variation of your standard chat box. Instead of speaking as its own entity, the chat recorder allows you to speak as the player to the whole server and message the player privately. Similarly, it only fires events on chat messages from the active player. What is really special about this module is the capture method. This allows you to match chat messages against one or more Lua patterns, discarding the message if it matches one. This allows you to capture chat messages such as "1 stack of wood" and respond to it, without notifying the whole world.


local chat = peripheral.find("neuralInterface")
--# Capture all messages of the form "<count> stacks of <item>"
chat.capture("(%d+) stacks? of (.+)")
while true do
  --# Listen to all such messages
  local ev, message, pattern = os.pullEvent("chat_capture")
  local count, item = message:match(pattern)
  --# Tell the player that we're requesting them. Actual fetching of items is left as an exercise for the reader.
  chat.tell("Requesting " .. count .. " of " .. item)
end

Full changelog
  • Expose module methods on blocks whose items are modules (noteblocks and daylight sensors).
  • Add volume parameter to playNote.
  • Add turtle and pocket computer upgrades
  • Add redstone integrator
  • Add chat recorder module
  • Add additional meta providers
  • Rename plethora:modules to neuralInterface and manipulator. Sorry, this will break a couple of programs.
  • Several bug fixes
For those using CCTweaks
If you're using CCTweaks (and if not, why not? :P/>) then you must update to 1.3.0. If you're not, then nothing to worry about.
Edited on 07 February 2017 - 08:57 PM
Bomb Bloke #30
Posted 12 February 2017 - 10:52 AM
My computers see stand-alone noteblocks as type "Music", but my turtle sees equipped ones as "minecraft:noteblock". Would be nice if they were standardised, preferably to something no other peripheral mod would use.

For anyone interested, I've adapted Note to work with Plethora. Fortunately it already handled most any screen size, so there's no problem using it through a neural interface.

The chat recorder would allow us to code mobs we could talk to and order about - if only it threw events when attached to them!!
SquidDev #31
Posted 12 February 2017 - 02:04 PM
My computers see stand-alone noteblocks as type "Music", but my turtle sees equipped ones as "minecraft:noteblock". Would be nice if they were standardised, preferably to something no other peripheral mod would use.
Yeah. um, that is an issue. It is actually worse as you can also play from the neural interface and manipulator - they have different names as well. I'm not sure what to do here: I either leave as is or special case tiles with modules. Neither approach seems appealing.

For anyone interested, I've adapted Note to work with Plethora. Fortunately it already handled most any screen size, so there's no problem using it through a neural interface.
Awesome! I've got some ideas to remove the delay for some methods which should make them easier to use, I just haven't worked everything through yet. Hopefully it should be "fixed" in the next version.

The chat recorder would allow us to code mobs we could talk to and order about - if only it threw events when attached to them!!
This is actually by design, though I'm happy to reconsider. The chat recorder was designed for communicating between you and the computer and so only captures chat messages the wearer says. I guess it does make sense for it to receive events for all chat messages that the wearer gets.
Bomb Bloke #32
Posted 12 February 2017 - 09:48 PM
Yeah. um, that is an issue. It is actually worse as you can also play from the neural interface and manipulator - they have different names as well. I'm not sure what to do here: I either leave as is or special case tiles with modules. Neither approach seems appealing.

I don't mind the interface / manipulator having their own types; it's just weird having turtles see equipped peripherals differently to how computers see block peripherals.

This is actually by design, though I'm happy to reconsider. The chat recorder was designed for communicating between you and the computer and so only captures chat messages the wearer says. I guess it does make sense for it to receive events for all chat messages that the wearer gets.

Ah, I didn't get to test whether my own installed recorder could pick up messages from players other than myself… I just figured two-way external communications were meant to be a thing, given that there's a "say" function in there.

I've also been wondering about the feasibility of a key listener. It'd essentially make it possible to create quick-fire macros; eg, tap a button to search your inventory for a health potion, or to fire the kinetic module, etc…
SquidDev #33
Posted 12 February 2017 - 10:08 PM
I've also been wondering about the feasibility of a key listener. It'd essentially make it possible to create quick-fire macros; eg, tap a button to search your inventory for a health potion, or to fire the kinetic module, etc…
That would be nice, though it might be rather network heavy: you'd have to send a packet for every key press whilst you have this item. Though I guess that is what happens when you are using the Keyboard item or interacting with a computer so it isn't too bad.
Lupus590 #34
Posted 13 February 2017 - 09:10 AM
I've also been wondering about the feasibility of a key listener. It'd essentially make it possible to create quick-fire macros; eg, tap a button to search your inventory for a health potion, or to fire the kinetic module, etc…
That would be nice, though it might be rather network heavy: you'd have to send a packet for every key press whilst you have this item. Though I guess that is what happens when you are using the Keyboard item or interacting with a computer so it isn't too bad.
Could you setup something so that the actual key listening happens on the client side and has some pre-processing? I.E. Is this a key that the lua script has asked to listen for?
Bomb Bloke #35
Posted 13 February 2017 - 10:49 PM
I dunno about having scripts register keys, but I suppose it might be viable to just listen to eg ten buttons (configured the same as for any other mod)?
SquidDev #36
Posted 16 February 2017 - 08:55 PM
It's adorable!


Edit:
To explain a little further, this adds minecarts for computers. I haven't fully decided on everything here. I'd like a way for them to interact with the world. I'm not sure whether to change them to be turtles or have the ability to add peripherals and modules like the neural interface. Any feedback appreciated.
Edited on 16 February 2017 - 08:32 PM
KingofGamesYami #37
Posted 16 February 2017 - 10:13 PM
I like the idea of adding peripherals and modules, it makes them a bit more unique. Though some sort of control over their movement would be nice (forward/backward).
SquidDev #38
Posted 16 February 2017 - 11:15 PM
Though some sort of control over their movement would be nice (forward/backward).
I'm planning to add something like propel(velocity) to the kinetic augment module. Basically add velocity in the direction it is facing.
vico #39
Posted 23 February 2017 - 01:10 AM
I cant wait for Minecarts with computers (perharps turtles would be a more coherent?)

Well, if it doesnt sound too rude, but can i ask for something for you add too?

What about a simple cart-linking mechanism, similar to TrainCarts.

I know "there is railcraft around" but i just want this very small mechanism, and with the possibility to use a computer as a locomotive, the possibilities are endless even without railcraft (stuck in 1.10.x and still filled with bugs)

What about it Squid?
SquidDev #40
Posted 23 February 2017 - 08:37 AM
What about a simple cart-linking mechanism, similar to TrainCarts.
Whilst train linking is a useful thing, I don't feel it fits within the scope of Plethora - it would be much better suited to a mod which just adds this feature. Knowing the modded community, there is probably something out there already.
vico #41
Posted 25 February 2017 - 03:00 AM
Whilst train linking is a useful thing, I don't feel it fits within the scope of Plethora - it would be much better suited to a mod which just adds this feature. Knowing the modded community, there is probably something out there already.

I asked several times in modding circlejerks (mainly MMD) and the only answer i've got was: "Get Railcraft".
SquidDev #42
Posted 26 February 2017 - 07:20 PM

What's this old boy? Is this another Plethora update. Oh how absolutely spiffing!

I've just released Plethora 1.1.1. This isn't a big release, with the most notable "feature" being a beta release of Plethora for Minecraft 1.11.2. As always, there will probably be bugs so please report them as soon as possible.

For those who aren't on Minecraft 1.11.2, there are still some useful changes and additions:

Changelog
  • Fire chat_message event for all chat messages, now contains the entity's name and UUID.
  • Add Baubles support to neural interface: can now be placed in the head slot.
  • Change several methods to have no delay - allowing most note programs to run correctly.
  • Allow keyboard to be mounted as a module. It monitors all key presses a player makes (so you don't have to open the keyboard or computer GUI).
  • Fix key repeat events not being triggered when using JEI.
Edited on 26 February 2017 - 06:22 PM
SquidDev #43
Posted 14 March 2017 - 10:57 PM
I've just pushed Plethora 1.1.2. This really isn't anything to get excited about, it just fixes a couple of bugs and crashes people were having.

Changelog (1.8.9, 1.10.2)
  • Fix keyboard not working on multiplayer
Changelog (1.11.2)
  • All of the above
  • Fix crashing with block scanner
  • Fix keyboard text not being translated on multiplayer
Also worth noting that Plethora is now out of beta for 1.11.2 so, if that was stopping you before, worry no more!
Edited on 15 March 2017 - 06:50 AM
SquidDev #44
Posted 02 April 2017 - 02:18 AM
I've just released Plethora 1.1.3. There are a couple of minor adjustments and improvements which I thought I'd share:

Fall damage
Firstly, the kinetic augment will adjust your "fall distance" after launching you, meaning you won't die from fall damage if your velocity is sufficiently low. This allows some rather interesting things: I wrote a silly little program which allows you to fly, slowing you down as you come near to the ground. Yes, Plethora is rather OP.



Minecart Computer upgrades
You can now place a cohort of modules and peripherals on the minecart computer. It has four slots (top, left, right and back) which should be highlighted when you mouse over. Do note that this is rather flakey at the moment: sometimes it looks like it should register but doesn't. Sorry about that, Minecraft doesn't make complex entity interactions easy.



Full changelog
  • Add support for CCTweaks' custom roms.
  • Fix lasers not obeying the doTileDrops gamerule.
  • Fix lasers sometimes breaking their manipulator.
  • Reset fall damage after being launched by the kinetic augment.
  • Allow adding upgrades to the minecart computer.
  • Add command API to command computer minecarts.
  • Add propel(velocity) method to the kinetic augment for minecarts.
  • [1.10.2] Add .setActive() method to elytra item.
Bomb Bloke #45
Posted 02 April 2017 - 04:55 AM
Firstly, the kinetic augment will adjust your "fall distance" after launching you, meaning you won't die from fall damage if your velocity is sufficiently low. This allows some rather interesting things: I wrote a silly little program which allows you to fly, slowing you down as you come near to the ground. Yes, Plethora is rather OP.

I'd tried my hand at such a script a while back, and landing was indeed a bit of a problem. My main issue, though, was that the server I was on kept on kicking me for flying. Beats me how that works, as there were plenty of mods that added jetpacks and creative-mode flight options…

That, and presumably due to latency I couldn't actually stay airbourne without frequent high-velocity launches.
SquidDev #46
Posted 02 April 2017 - 08:33 AM
I'd tried my hand at such a script a while back, and landing was indeed a bit of a problem. My main issue, though, was that the server I was on kept on kicking me for flying. Beats me how that works, as there were plenty of mods that added jetpacks and creative-mode flight options…
Yeah, I've had the same issue. I've had a look at MC's flight detection, it looks like it should be pretty simple to prevent.

That, and presumably due to latency I couldn't actually stay airbourne without frequent high-velocity launches.
I was initially having the same problem, so I ended up running multiple loops in parallel: one checking player velocity, another handling fall recovery, etc… It seems to do the trick, but I wouldn't want to risk it on a server, where you're going to get lag spikes and other computers slowing things down.
SquidDev #47
Posted 05 April 2017 - 11:12 AM
It begins:


Well, I've begun working on something that I've had requested a couple of times: terminal glasses.

I'm currently planning two drawing modes: 2D and 3D. The former will only be available on the neural interface, and will render like a heads-up display. You will be able to render 3D objects from the neural interface, manipulator and any other module owner. These will be rendered in world, allowing you to do a far more effective version of this.

However, I'd really appreciate other people's thoughts on the matter: what features could you see yourself using? What do you feel is missing? Please post your comments here or on the Plethora issue tracker. Thanks!
Bomb Bloke #48
Posted 06 April 2017 - 06:00 AM
Dunno what you've already got planned for it, but it strikes me that being able to plot text characters into the world would be handy. Even if they just automatically turn to face the viewer, there's a lot that could be done with them, and having the support built in to the mod directly would likely reduce overhead on servers.

What's the deal with the 3D rendering? Vertices? Planes? Solids? Alpha control?

You might even consider implementing Minecraft particle support. We can produce them via command computers but it'd be pretty cool to open them up to non-ops.
Edited on 06 April 2017 - 04:02 AM
CinnamonLoaf #49
Posted 07 April 2017 - 07:14 PM
Not sure where the best place to post errors would be, but I'm having issues starting my server with this mod. It crashes every time it gets to initializing the actual mod. I've added the crash report below. Any help would be greatly appreciated.

Spoiler
---- Minecraft Crash Report ----
WARNING: coremods are present:
  UnborkedPlugin (unborked-1.10.2-1.80pr0-1.0.5.jar)
Contact their authors BEFORE contacting forge
// Quite honestly, I wouldn't worry myself about that.
Time: 4/7/17 1:39 PM
Description: Exception in server tick loop
net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Plethora Core (plethora-core)
Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/renderer/block/model/ModelManager
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.getConstructor(Unknown Source)
at net.minecraftforge.fml.common.eventhandler.EventBus.register(EventBus.java:129)
at net.minecraftforge.fml.common.eventhandler.EventBus.register(EventBus.java:113)
at org.squiddev.plethora.integration.computercraft.IntegrationComputerCraft.setup(IntegrationComputerCraft.java:35)
at org.squiddev.plethora.core.PlethoraCore.preInit(PlethoraCore.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:616)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:243)
at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:221)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:145)
at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:624)
at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:99)
at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:328)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:121)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:431)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.renderer.block.model.ModelManager
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 40 more
Caused by: net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerException: Exception in class transformer net.minecraftforge.fml.common.asm.transformers.SideTransformer@a22cb6a from coremod FMLCorePlugin
at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:253)
at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279)
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176)
... 42 more
Caused by: java.lang.RuntimeException: Attempted to load class byp for invalid side SERVER
at net.minecraftforge.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:56)
at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:249)
... 44 more

A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- System Details --
Details:
Minecraft Version: 1.10.2
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.8.0_111, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 5869965384 bytes (5598 MB) / 7203192832 bytes (6869 MB) up to 7203192832 bytes (6869 MB)
JVM Flags: 2 total; -Xmx7g -Xms7g
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP 9.32 Powered by Forge 12.18.3.2254 8 mods loaded, 8 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCH mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)
UCH FML{8.0.99.99} [Forge Mod Loader] (forge-1.10.2-12.18.3.2254-universal.jar)
UCH Forge{12.18.3.2254} [Minecraft Forge] (forge-1.10.2-12.18.3.2254-universal.jar)
UCH unborked_core{1.0.5} [Unborked Core] (minecraft.jar)
UCH ComputerCraft{1.80pr0} [ComputerCraft] (ComputerCraft1.80pr0.jar)
UCE plethora-core{1.1.3} [Plethora Core] (plethora-1.10.2-1.1.3.jar)
UCE plethora{1.1.3} [Plethora] (plethora-1.10.2-1.1.3.jar)
UCH unborked{1.0.5} [Unborked] (unborked-1.10.2-1.80pr0-1.0.5.jar)
Loaded coremods (and transformers):
UnborkedPlugin (unborked-1.10.2-1.80pr0-1.0.5.jar)
  org.squiddev.unborked.core.UnborkedTransformer
Profiler Position: N/A (disabled)
Is Modded: Definitely; Server brand changed to 'fml,forge'
Type: Dedicated Server (map_server.txt)

As a note I'm able to run everything on a single player mode. I've also tried removing all other mods excluding ComputerCraft, Unborked and Plethora without any change in the crash. If anyone has an idea of how to make it work for my server that would be awesome.

Launch Options :


java -Xmx7g -Xms7g -d64 -server -jar forge-1.10.2-12.18.3.2254-universal.jar nogui
pause
Edited on 09 April 2017 - 11:36 PM
SquidDev #50
Posted 07 April 2017 - 09:29 PM
Not sure where the best place to post errors would be, but I'm having issues starting my server with this mod. It crashes every time it gets to initializing the actual mod. I've added the crash report below. Any help would be greatly appreciated.
Really sorry about this. This was my fault for only testing this on single player. I've just pushed Plethora 1.1.4 which should fix this crash. Sorry.

Fully Changelog
  • Reset floating time when launching using the kinetic manipulator. This means you will not get kicked for flying when using it. This can be disabled in the config, should you wish to.
  • Add CCTweaks's wireless bridge as a minecart upgrade.
  • Fix crashing server on launch.

What's the deal with the 3D rendering? Vertices? Planes? Solids? Alpha control?
I'm planning to add some basic primitives (lines, triangles and the more general line loop and polygon). I'm probably going to add a cube or box primitive, but you should be able to build solids just using triangles. You'll be able to set the colour and alpha of any object. I'm not 100% sure how semi-transparent objects will work yet, I'll probably need to sort them.

The only other "fancy" thing I'm considering is a way of rendering blocks: either as their item form, or the block model. The former would be mostly useful in 2D GUIs, and I'm sure people could find a use of the block model in world.

Dunno what you've already got planned for it, but it strikes me that being able to plot text characters into the world would be handy. Even if they just automatically turn to face the viewer, there's a lot that could be done with them, and having the support built in to the mod directly would likely reduce overhead on servers.
For basic 2D shapes like rectangles and text, I'm planning to have two forms: rotatable and floating. The former can be oriented in a specific direction, the latter will rotate to face the player.

You might even consider implementing Minecraft particle support. We can produce them via command computers but it'd be pretty cool to open them up to non-ops.
That would be interesting. I'm not entirely sure of a way to do it which integrates with everything else, as particles have a lifespan, but I will definitely look into it. Thanks very much for the comments!
SquidDev #51
Posted 09 April 2017 - 11:00 PM
I've just pushed Plethora 1.1.5 with a couple of minor bug fixes.

Changelog
  • Fix not being able to "swap" items in the manipulator GUI.
  • Fix manipulator not being reset on death (again).
  • Fix being kicked from a server when using a module and changing modules at the same time.
  • Fix incorrect rendering of items in the manipulator on 1.10.2 and 1.11.2.
  • Fire chat_message events, even if the chat recorder has no owner.
augiteSoul #52
Posted 15 April 2017 - 07:49 PM
You'll hate me, but why not a 1.7.10 version?
SquidDev #53
Posted 15 April 2017 - 09:51 PM
You'll hate me, but why not a 1.7.10 version?

A couple of reasons:
  • There are a lot of changes between 1.7.10 and 1.8.9+, which makes managing multiple versions hard.
  • There are plenty of 1.7.10 peripheral mods already: most of this mod's functionality is duplicated somewhere else.
  • Let it go. Please, just let 1.7.10 die.
Edited on 16 April 2017 - 11:01 AM
D3matt #54
Posted 20 April 2017 - 11:17 PM
I'd like to see a mod that adds RFID and Mag Stripe/swipe cards like what ImmibisPeripherals used to have. Would you be willing to add this to Plethora?
SquidDev #55
Posted 22 April 2017 - 12:07 PM
I'd like to see a mod that adds RFID and Mag Stripe/swipe cards like what ImmibisPeripherals used to have. Would you be willing to add this to Plethora?
Probably not - it's a cool feature, but something I'm not really interested in adding to Plethora.
Edited on 22 April 2017 - 10:08 AM
SquidDev #56
Posted 09 May 2017 - 08:46 AM
I've recently updated the 1.10.2 version of Plethora to support the "bleeding-edge" ComputerCraft version. Plethora 1.1.6 requires a recent build of ComputerCraft. Note that if you're using CCTweaks, you will not be able to update.

Changelog
  • Fix IMedia provider using client side methods.
  • Port pocket upgrades to use ComputerCraft's built-in system.
  • Move from CCTweaks's IContainerComputer to ComputerCraft's version.
vico #57
Posted 26 May 2017 - 12:56 AM
I've got this error trying to launch a server and I'm dumb enough not to know what the problem is:

Spoiler—- Minecraft Crash Report —-

WARNING: coremods are present:
UnborkedPlugin (unborked-1.11.2-1.80pr0-1.1.5.jar)
CXLibraryCore (cxlibrary-1.11.2-1.4.0.jar)
CreativePatchingLoader (CreativeCore v1.7.4 mc1.11.2.jar)
TweaksLoadingPlugin (CCTweaks-1.11.2-1.4.0.jar)
Contact their authors BEFORE contacting forge

// I blame Dinnerbone.

Time: 25/05/17 20:58
Description: Exception in server tick loop

net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Plethora Core (plethora-core)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.squiddev.cctweaks.core.registry.Registry
at org.squiddev.plethora.integration.cctweaks.IntegrationCCTweaks.attachCapabilities(IntegrationCCTweaks.java:32)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_34_IntegrationCCTweaks_attachCapabilities_Item.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:185)
at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:596)
at net.minecraft.item.ItemStack.forgeInit(ItemStack.java:1099)
at net.minecraft.item.ItemStack.<init>(ItemStack.java:109)
at net.minecraft.item.ItemStack.<init>(ItemStack.java:95)
at net.minecraft.item.ItemStack.<init>(ItemStack.java:82)
at net.minecraft.item.ItemStack.<init>(ItemStack.java:77)
at net.minecraft.item.ItemStack.<init>(ItemStack.java:72)
at org.squiddev.plethora.integration.vanilla.IntegrationVanilla.setup(IntegrationVanilla.java:48)
at org.squiddev.plethora.core.PlethoraCore.preInit(PlethoraCore.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:641)
at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:252)
at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:230)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:147)
at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:647)
at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:100)
at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:328)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:121)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:442)
at java.lang.Thread.run(Unknown Source)


A detailed walkthrough of the error, its code path and all known details is as follows:
—————————————————————————————

– System Details –
Details:
Minecraft Version: 1.11.2
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_131, Oracle Corporation
Java VM Version: Java HotSpot™ 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 599735272 bytes (571 MB) / 929038336 bytes (886 MB) up to 2844786688 bytes (2713 MB)
JVM Flags: 0 total;
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP 9.38 Powered by Forge 13.20.0.2304 34 mods loaded, 34 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCH minecraft{1.11.2} [Minecraft] (minecraft.jar)
UCH mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)
UCH FML{8.0.99.99} [Forge Mod Loader] (forge-1.11.2-13.20.0.2304-universal.jar)
UCH forge{13.20.0.2304} [Minecraft Forge] (forge-1.11.2-13.20.0.2304-universal.jar)
UCH creativecoredummy{1.0.0} [CreativeCoreDummy] (minecraft.jar)
UCH unborked_core{1.1.5} [Unborked Core] (minecraft.jar)
UCH <CCTweaks ASM>{1.4.0} [<CCTweaks ASM>] (minecraft.jar)
UCH bspkrscore{7.5.2.1} [bspkrsCore] ([1.11.2]bspkrsCore-universal-7.5.2.1.jar)
UCH treecapitator{1.42.1} [TreeCapitator] ([1.11.2]TreeCapitator-client-1.42.1.jar)
UCH bibliocraft{2.3.0} [BiblioCraft] (BiblioCraft[v2.3.0][MC1.11.2].jar)
UCH birdsnests{1.5.1} [Bird's Nests] (BirdsNests1.11.2-1.5.1.jar)
UCH computercraft{1.80pr0} [ComputerCraft] (ComputerCraft1.80pr0-patched-DO-NOT-DISTRIBUTE.jar)
UCE cctweaks{1.4.0} [CCTweaks] (CCTweaks-1.11.2-1.4.0.jar)
UCH chesttransporter{2.7.9} [Chest Transporter] (ChestTransporter-1.11.2-2.7.9.jar)
UCH crafttweakerjei{1.0.1} [CraftTweaker JEI Support] (CraftTweaker-1.11.2-3.0.25.jar)
UCH crafttweaker{3.0.25} [Crafttweaker] (CraftTweaker-1.11.2-3.0.25.jar)
UCH creativecore{1.7.4} [CreativeCore] (CreativeCore v1.7.4 mc1.11.2.jar)
UCH customstuff4{0.2.1} [Custom Stuff 4] (customstuff4-1.11.2-0.2.1.jar)
UCH cxlibrary{1.4.0} [CXLibrary] (cxlibrary-1.11.2-1.4.0.jar)
UCH ironchest{1.11.2-7.0.19.803} [Iron Chest] (ironchest-1.11.2-7.0.19.803.jar)
UCH loottweaker{0.0.6.2} [LootTweaker] (LootTweaker-1.11.2-0.0.6.2.jar)
UCH mercurius_updater{1.0} [mercurius_updater] (MercuriusUpdater-1.11.2.jar)
UCH morefurnaces{1.9.5} [More Furnaces] (MoreFurnaces-1.11.2-1.9.5.jar)
UCH multipagechest{1.8.0} [Multi Page Chest] (MultiPageChest-1.11-1.8.0.jar)
UCH netherportalfix{1.0} [NetherPortalFix] (NetherPortalFix_1.11-4.3.1.jar)
UCH opframe{1.4.0} [OnlinePictureFrame] (OnlinePicFrame v1.4.0 mc1.11.2.zip)
UCH parachutemod{1.6.2} [Parachute Mod] (parachutemod-ng-1.11.2-1.6.2-426.jar)
UCE plethora-core{1.1.5} [Plethora Core] (plethora-1.11.2-1.1.5.jar)
UCE plethora{1.1.5} [Plethora] (plethora-1.11.2-1.1.5.jar)
UCH sensorcraft{0.5.0} [SensorCraft] (sensorcraft-1.11-0.5.0.jar)
UCH simplecorn{2.1.5} [Simple Corn] (SimpleCorn1.11.2-2.1.5.jar)
UCE storageboats{2.0} [Storage Boats Mod] (StorageBoats-2.3.jar)
UCH unborked{1.1.5} [Unborked] (unborked-1.11.2-1.80pr0-1.1.5.jar)
UCH wearablebackpacks{2.3.2} [Wearable Backpacks] (WearableBackpacks-1.11.2-2.3.2.jar)
Loaded coremods (and transformers):
UnborkedPlugin (unborked-1.11.2-1.80pr0-1.1.5.jar)
org.squiddev.unborked.core.UnborkedTransformer
CXLibraryCore (cxlibrary-1.11.2-1.4.0.jar)
cubex2.cxlibrary.CoreModTransformer
CreativePatchingLoader (CreativeCore v1.7.4 mc1.11.2.jar)

TweaksLoadingPlugin (CCTweaks-1.11.2-1.4.0.jar)
org.squiddev.cctweaks.core.asm.ASMTransformer
Profiler Position: N/A (disabled)
Is Modded: Definitely; Server brand changed to 'fml,forge'
Type: Dedicated Server (map_server.txt)
CCcrafter #58
Posted 03 June 2017 - 12:29 AM
Seems to be caused by cc tweaks
SquidDev #59
Posted 03 June 2017 - 10:17 AM
I've got this error trying to launch a server and I'm dumb enough not to know what the problem is:
Seems to be caused by cc tweaks
Yep. This bug was also reported on the GitHub, so I marked it fixed there but not here - CCTweaks 1.4.1 fixes this problem.
SquidDev #60
Posted 10 June 2017 - 02:41 PM
Plethora 1.1.7-pr0
I've just updated Plethora to work on the latest builds of ComputerCraft. This doesn't add any interesting functionality, just makes sure nothing crashes :)/>.

Please note, if you're using Unborked or CCTweaks, you should have a read of this post here.

ChangelogPlease note this is a beta so there may be some strange bugs - please report them on the issue tracker so I can fix them. Thanks!
Edited on 10 June 2017 - 12:42 PM
xFreak666 #61
Posted 14 June 2017 - 01:04 AM
Can you add support for Thermal Expansion please. btw i'm really thankful for this mod i've been searching for OpenPeripherals alternative for ages and i accidentally found out about your mod in a curse comment section , Thanks a lot !
EDIT : Also i would love to know how to wrap a mob in the neutral interface.
Edited on 13 June 2017 - 11:26 PM
SquidDev #62
Posted 14 June 2017 - 07:53 AM
Can you add support for Thermal Expansion please. btw i'm really thankful for this mod i've been searching for OpenPeripherals alternative for ages and i accidentally found out about your mod in a curse comment section , Thanks a lot !
Hrmrmr, Thermal Expansion should work fine. What version of it are you running - there was a bug in their code which stopped Plethora from working, but it should be fixed in the latest build.

Also i would love to know how to wrap a mob in the neutral interface.
There is some documentation on how to achieve this on the website. If you have any questions beyond that, feel free to ask - I'm aware that it is a little lacking in places :/.
xFreak666 #63
Posted 16 June 2017 - 02:54 AM
Can you add support for Thermal Expansion please. btw i'm really thankful for this mod i've been searching for OpenPeripherals alternative for ages and i accidentally found out about your mod in a curse comment section , Thanks a lot !
Hrmrmr, Thermal Expansion should work fine. What version of it are you running - there was a bug in their code which stopped Plethora from working, but it should be fixed in the latest build.

I just updated Thermal Expansion and it works Thanks ! :D/>

Also i would love to know how to wrap a mob in the neutral interface.
There is some documentation on how to achieve this on the website. If you have any questions beyond that, feel free to ask - I'm aware that it is a little lacking in places :/.

Yeah , i did all the steps mentioned in the documentation , however , what i'd love to know is the coding part. I've hooked up a chicken with a neutral interface , add a kinetic augment opened the neutral interface's gui but i cant figure out how to peripheral.wrap it to a variable to start playing with the methods.

Anyway thanks for the quick reply.
Bomb Bloke #64
Posted 16 June 2017 - 03:43 AM
If you type "peripherals" into the command line, you'll get a list of all available devices, along with their types. See this tutorial regarding how to wrap them, and also for how to discover what functions are available to them.

In this case, you're wrapping the neural interface. What the interface can do depends on what modules you've installed into it.
Edited on 16 June 2017 - 01:44 AM
xFreak666 #65
Posted 16 June 2017 - 04:24 AM
If you type "peripherals" into the command line, you'll get a list of all available devices, along with their types. See this tutorial regarding how to wrap them, and also for how to discover what functions are available to them.

In this case, you're wrapping the neural interface. What the interface can do depends on what modules you've installed into it.

Well quite obvious isn't it x) , i'm sorry i didn't know about the peripherals function thanks a lot :D/>
SquidDev #66
Posted 16 June 2017 - 10:06 AM
Yeah , i did all the steps mentioned in the documentation , however , what i'd love to know is the coding part. I've hooked up a chicken with a neutral interface , add a kinetic augment opened the neutral interface's gui but i cant figure out how to peripheral.wrap it to a variable to start playing with the methods.
Yah, that is rather less well explained. As BombBloke has mentioned already, you can run peripherals to get a list of peripherals - modules (such as the kinetic augment) get wrapped on the back slot. This peripheral exposes a getDocs method, which provides a table of method names and doc-string. These can also be found online.
SquidDev #67
Posted 09 July 2017 - 06:45 PM
I've just updated Plethora to Minecraft 1.12. It's still a beta, so there may be some issues. You'll need to use a 1.12 build from the ComputerCraft build server, as there isn't a stable build of ComputerCraft on CurseForge yet.
vico #68
Posted 21 July 2017 - 10:42 PM
I've got this error with Plethora:
Spoiler—- Minecraft Crash Report —-

WARNING: coremods are present:
CreativePatchingLoader (CreativeCore v1.7.6 mc1.12.jar)
CXLibraryCore (cxlibrary-1.12-1.5.1.jar)
ForgelinPlugin (Forgelin-1.5.0.jar)
Contact their authors BEFORE contacting forge

// Don't do that.

Time: 16/07/17 00:18
Description: Exception in server tick loop

net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Plethora (plethora)
Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/util/ITooltipFlag
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetPublicMethods(Class.java:2902)
at java.lang.Class.privateGetPublicMethods(Class.java:2917)
at java.lang.Class.getMethods(Class.java:1615)
at net.minecraftforge.fml.common.eventhandler.EventBus.register(EventBus.java:81)
at org.squiddev.plethora.gameplay.BlockBase.preInit(BlockBase.java:128)
at org.squiddev.plethora.gameplay.registry.Registry$RegisterWrapper.preInit(Registry.java:121)
at org.squiddev.plethora.gameplay.registry.Registry.preInit(Registry.java:79)
at org.squiddev.plethora.gameplay.Plethora.preInit(Plethora.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:625)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
at com.google.common.eventbus.EventBus.post(EventBus.java:217)
at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:252)
at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:230)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
at com.google.common.eventbus.EventBus.post(EventBus.java:217)
at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:147)
at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:604)
at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:98)
at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:331)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:122)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:483)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.util.ITooltipFlag
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
… 45 more
Caused by: java.lang.NullPointerException
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
… 47 more


A detailed walkthrough of the error, its code path and all known details is as follows:
—————————————————————————————

– System Details –
Details:
Minecraft Version: 1.12
Operating System: Linux (amd64) version 4.9.0-3-amd64
Java Version: 1.8.0_131, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 183346944 bytes (174 MB) / 455606272 bytes (434 MB) up to 904396800 bytes (862 MB)
JVM Flags: 0 total;
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP 9.40 Powered by Forge 14.21.1.2413 33 mods loaded, 33 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCH minecraft{1.12} [Minecraft] (minecraft.jar)
UCH mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)
UCH FML{8.0.99.99} [Forge Mod Loader] (forge-1.12-14.21.1.2413-universal.jar)
UCH forge{14.21.1.2413} [Minecraft Forge] (forge-1.12-14.21.1.2413-universal.jar)
UCH creativecoredummy{1.0.0} [CreativeCoreDummy] (minecraft.jar)
UCH bibliocraft{2.4.2} [BiblioCraft] (BiblioCraft[v2.4.2][MC1.12.0].jar)
UCH chesttransporter{2.8.3} [Chest Transporter] (ChestTransporter-1.12-2.8.3.jar)
UCH computercraft{1.80pr0} [ComputerCraft] (ComputerCraft-SquidDev-CC-ComputerCraft-feature-minecraft-1.12.2-1.80pr0-build18.jar)
UCH crafttweaker{3.0.26} [CraftTweaker2] (CraftTweaker2-1.12-4.0.0.jar)
UCH creativecore{1.7.4} [CreativeCore] (CreativeCore v1.7.6 mc1.12.jar)
UCH creeperconfetti{1.4.1} [Creeper Confetti] (creeperconfetti-1.4.1.jar)
UCH cxlibrary{1.5.1} [CXLibrary] (cxlibrary-1.12-1.5.1.jar)
UCH shadowmc{3.8.0} [ShadowMC] (ShadowMC-1.12-3.8.0.jar)
UCH extrarails{1.3.0} [Extra Rails] (ExtraRails-1.12-1.3.0.jar)
UCH forgelin{1.4.2} [Shadowfacts' Forgelin] (Forgelin-1.5.0.jar)
UCH glass_shards{1.7} [Glass Shards] (glass_shards_mc1.12-1.7.jar)
UCH ironchest{1.12-7.0.31.818} [Iron Chest] (ironchest-1.12-7.0.31.818.jar)
UCH jei{4.7.2.77} [Just Enough Items] (jei_1.12-4.7.2.77.jar)
UCH morefurnaces{1.10.1} [More Furnaces] (MoreFurnaces-1.12-1.10.1.jar)
UCH moreturtles{2.6.0} [More Turtles] (MoreTurtles-2.6.0.jar)
UCH multipagechest{1.9.1} [Multi Page Chest] (MultiPageChest-1.12-1.9.1.jar)
UCH mycommands{1.12-02} [MY Commands] (MyCommands-1.12-02.jar)
UCH netherportalfix{1.0} [NetherPortalFix] (NetherPortalFix_1.12-5.3.1.jar)
UCH parachutemod{1.7.0} [Parachute Mod] (parachutemod-ng-1.12-1.7.0-431.jar)
UCH persistentbits{1.0.6a} [Persistent Bits] (PersistentBits-1.12-1.0.6a.jar)
UCH plethora-core{1.1.7-pr0} [Plethora Core] (plethora-1.12-1.1.7-pr0.jar)
UCE plethora{1.1.7-pr0} [Plethora] (plethora-1.12-1.1.7-pr0.jar)
UCH simplecorn{2.3.1} [Simple Corn] (SimpleCorn1.12-2.3.1.jar)
UCH lteleporters{1.11.2-2.1.5} [Simple Teleporters] (simpleteleporters-1.12-2.1.5.jar)
UCH waddles{0.5.3} [Waddles] (Waddles-1.12-0.5.3.jar)
UCH wakingchunks{1.3.0} [Waking Chunks] (WakingChunks-1.3.0.jar)
UCH waterstrainer{3.1.1} [Water Strainer] (WaterStrainer-1.12-3.1.1.jar)
UCH wearablebackpacks{3.0.3} [Wearable Backpacks] (WearableBackpacks-1.12-3.0.3.jar)
Loaded coremods (and transformers):
CreativePatchingLoader (CreativeCore v1.7.6 mc1.12.jar)

CXLibraryCore (cxlibrary-1.12-1.5.1.jar)
cubex2.cxlibrary.CoreModTransformer
ForgelinPlugin (Forgelin-1.5.0.jar)

Profiler Position: N/A (disabled)
Is Modded: Definitely; Server brand changed to 'fml,forge'
Type: Dedicated Server (map_server.txt)
SquidDev #69
Posted 21 July 2017 - 10:47 PM
I've got this error with Plethora:
Ahhh, this is one of those wonderful "class doesn't exist on the dedicated sever" bugs. I've created an issue on GitHub, which I'll close when fixed.
wintertown #70
Posted 22 August 2017 - 02:16 PM
I'm having some trouble getting modules from a manipulator, so I tried one of the tutorials just to make sure, and I keep getting "A module has changed" when trying to use modules.hasModule("plethora:laser"). What might be causing this?
SquidDev #71
Posted 23 August 2017 - 10:08 PM
I'm having some trouble getting modules from a manipulator, so I tried one of the tutorials just to make sure, and I keep getting "A module has changed" when trying to use modules.hasModule("plethora:laser"). What might be causing this?
Hrmrrm, that's strange. Can you try removing and replacing a module and seeing if that fixes it? Can I check you're on the latest version? There were some issues with older versions not correctly refreshing modules.
SquidDev #72
Posted 17 January 2018 - 10:41 PM
It's been a while since the last plethora update, and even longer since I last posted an update. In that time there's been three updates (imaginatively titled 1.1.8, 1.1.9 and 1.1.10). I'll be honest, not much has changed, but there are some cool new features:
  • Add introspection module for turtles, providing more powerful interaction with the inventory.
  • Add terminal glasses. This currently only supports the basic elements (lines, polygons, etc..) but more features are in the pipeline.
  • Add creative chat recorder. This speaks as the server and can capture all player's inputs.
  • Allow placing the manipulator on the side/top of blocks.
  • Lots and lots of bugfixes.
I've also started some work on documenting the various modules/items provided by Plethora. If you've ever had questions about the mod, or are just interested, it would be fantastic if you could have a read!
SquidDev #73
Posted 16 March 2018 - 05:59 PM
I've just pushed a new version of Plethora to CurseForge (1.1.11). Whilst it's mostly a bug fix update, it does introduce a complete overhaul of the internal method system, which is a little more fool proof in terms of validation. There's also a few updates and improvements to mod integration, most notably AppliedEnergistics and Refined Storage.

Changelog
Core and gameplay
  • Allow using kinetic augment in turtles
  • Fix overlay glasses not rendering objects with a deterministic ordering
  • Allow offline players to talk through the chat recorder
  • Track ownership of manipulators and neural interfaces, ensuring the correct GameProfile is used for world interactions.
  • Rewrite the context and converter system, allowing to act more dynamically. This dramatically reduces the number of "This block has changed" errors you might get.
Mod integration
  • Add support for CC: Tweaked wired networks
  • Allow neural interface to act as a botania cosmetic bauble
  • Various improvements to AE/RS integration
    • Fix AE crafting not being accessible
    • Fix RS not showing craftable items
    • Add .export method to AE/RS item stacks.
  • Remove CCTweaks integration
Lupus590 #74
Posted 16 March 2018 - 07:49 PM
  • Allow using kinetic augment in turtles

I'm intrigued about what this does to the turtle.
SquidDev #75
Posted 16 March 2018 - 08:00 PM
Allow using kinetic augment in turtles
I'm intrigued about what this does to the turtle.
It effectively acts like CCTweaks's tool host, allowing to use arbitrary tools in a turtle.
Kepler #76
Posted 26 March 2018 - 12:06 AM
Add .export method to AE/RS item stacks.

Excellent ! I'll give a try.
blunty666 #77
Posted 21 April 2018 - 04:10 PM
I've been playing around with this and it's really good! The Overlay Glasses seem like they could be a good successor to the terminal glasses from OpenPeripherals. Do you still have plans to develop this further?

I like the fact you have the canvas.getSize() function in there which was always something that I thought was missing from the terminal glasses.

It would be nice to be able to change the Z order of the objects after they have been drawn, and being able to use the mouse with the neural interface keyboard to click and drag objects would be even better…

While I think about it :)/> being able to group objects together and move them around as one would also be nice, i.e.


objectGroup = canvas.addObjectGroup(xPos, yPos)

-- add individual objects
rectangle = objectGroup.addRectangle(xOffset, yOffset, width, height)
text = objectGroup.addText(xOffset, yOffset, text)

-- set properties for all objects at the same time
objectGroup.setPosition(xPos, yPos)
objectGroup.setScale(0.5)

-- remove individual objects from the group
objectGroup.removeObject( rectangle.getID() )

-- remove all the objects at the same time by removing the object group
objectGroup.remove()

I ended up writing a lengthy (and probably very inefficient) API to do this for the terminal glasses, but having the functionality built in would save a lot of effort and let people focus on creating more fully fledged programs instead of getting bogged down in having to keep track of drawing all the objects etc…
SquidDev #78
Posted 23 May 2018 - 04:27 PM
I'm not sure when it happened, but I just noticed Plethora has hit 10k downloads! I'd like to say a massive thank you to everyone who has contributed to this, with your translations, code, bug reports, suggestions and obviously playing with it!

I've been playing around with this and it's really good! The Overlay Glasses seem like they could be a good successor to the terminal glasses from OpenPeripherals. Do you still have plans to develop this further?
I'm really sorry, I didn't see this earlier. Yeah, there's a whole load of other stuff on the todo list for it, there's just an awful lot of decisions I need to make as to how it all fits together.
It would be nice to be able to change the Z order of the objects after they have been drawn, and being able to use the mouse with the neural interface keyboard to click and drag objects would be even better…

While I think about it :)/> being able to group objects together and move them around as one would also be nice, i.e.
Both mouse and z-index control is on the todo list, though I hadn't thought about the idea of drag-and-drop interfaces, that would definitely be very neat!

Grouping would be very cool, but I'd have to have a thunk about how it would work internally. The current system of syncing between the server and client is pretty naive, so I'd need to improve that a lot in order for groups to not have a large network cost.
EveryOS #79
Posted 23 May 2018 - 04:50 PM
I myself have tried playing it, never even got up to the menu screen before it crashed

I seriously do not know what's wrong. I've tried it from both Windows 8.1 and Windows 10 on two IP's, but everybody else seems to have it working fine. Unfair…
SquidDev #80
Posted 23 May 2018 - 04:52 PM
I myself have tried playing it, never even got up to the menu screen before it crashed
Is this the same crash as in this post? If so, have you tried running it in a fresh install of Forge + CC rather than a development environment?
EveryOS #81
Posted 23 May 2018 - 05:01 PM
I've used gradlew runClient, is that close enough

Anyways,surely you wrote the mod on a development environement
Edited on 23 May 2018 - 03:02 PM
SquidDev #82
Posted 23 May 2018 - 05:26 PM
I've used gradlew runClient, is that close enough
It depends on how you're running it, what environment you're using, etc… I suspect this page is going to be the most useful in solving your problem though.
EveryOS #83
Posted 23 May 2018 - 06:13 PM
No thanks, I'll just not use plethora
blunty666 #84
Posted 29 May 2018 - 02:01 PM
I'm really sorry, I didn't see this earlier. Yeah, there's a whole load of other stuff on the todo list for it, there's just an awful lot of decisions I need to make as to how it all fits together.
No worries, I can see you've got your hands full with quite a few projects! Thanks for all the work you're doing keeping CC up to date and adding new features. Hopefully Dan will find some time soon to get a proper release sorted!

Grouping would be very cool, but I'd have to have a thunk about how it would work internally. The current system of syncing between the server and client is pretty naive, so I'd need to improve that a lot in order for groups to not have a large network cost.
In theory it could reduce network traffic as instead of moving 100 things individually you could have them grouped and just send one update to move them all in one go? I ended up doing something similar entirely on the Lua side of things with my Tiles API for the OpenPeripheral Terminal Glasses which allowed me to create some pretty interesting programs.
SquidDev #85
Posted 29 July 2018 - 07:53 AM
I've just pushed another (long overdue) version of Plethora: 1.1.12. As always, you can get it on Curse.

I'd like to give a massive shoutout to zeroeightysix (086) and apemanzilla for their pull requests, kepler155c and shelbykauth for helping me test AE and Tinkers' integration, and everyone on SwitchCraft who has patiently waited by whilst I crashed the server.

Features
  • Add line height and drop shadow setters to the overlay glasses' text (zeroeightysix)
  • Support tab stops and new lines in the overlay glasses (zeroeightysix)
  • Module blacklist now disables the item from being used
  • Add nl_be language file (zeroeightysix)
  • Send glasses_ equivalents of mouse events when using the keyboard and overlay glasses.
  • Wait for energy to regenerate instead of erroring with a "Insufficient energy" message.
  • Add support for CC:T's server timing tracker
  • Add support for querying tinkers' multiblock structures
  • Use ore dictionary for recipes
  • Allow the beealzer to be used to query bee breeding data (apemanzilla)
  • Make some recipes a wee bit harder

Bug fixes
  • Entity sensor returns positions relative to the eye height, rather than its block
  • Fix Refined storage integration only working on the controller
  • Fix AE item filtering from not functioning correctly
  • Only proxy metadata on armour items
  • Fix overlay glasses sending information more often then needed
  • Fix redstone intgrator being thread unsafe
  • Fix numerous issues with running code after the peripheral being detached
SquidDev #86
Posted 03 August 2018 - 09:09 PM
Spoilers:

Bomb Bloke #87
Posted 04 August 2018 - 01:55 AM
I never took you for a twelve flasher, SquidDev.
SquidDev #88
Posted 04 August 2018 - 03:26 PM
I never took you for a twelve flasher, SquidDev.
My Microwave is still set to 00:00, so apparently I am!. In this case, all my testing worlds are stuck at 12:00 - it's just easier than having to worry about it getting dark. That being said, I did pretend to make an effort for the screenshots in the documentation. Speaking of which…

I've recently done a bit more work on fleshing out the docs. As well as the oft request introduction to terminal glasses, there's also some basic info on block scanners and entity sensors. Any feedback on this is welcome - I'm rather too familiar with the mod, which makes it hard for me to see potential sticking points.
Bomb Bloke #89
Posted 05 August 2018 - 01:42 AM
My only gripe would be the lack of example output for the getMetaByID / getMetaByName functions. Sure I could run the provided script that serialises it for me, but in my view, the whole point of documentation is that I shouldn't have to waste time on "probing" code such as that. It's the sort of thing I'd end up writing if I didn't have access to documentation at all.
Edited on 04 August 2018 - 11:44 PM
SquidDev #90
Posted 05 August 2018 - 11:03 AM
My only gripe would be the lack of example output for the getMetaByID / getMetaByName functions.
Yeah, the lack of documentation on meta functions has definitely been a friction point for me. I&amp;amp;#39;m not entirely sure what the best solution for this would be, as some things can end up rather complex (especially entity metadata).

One idea I've had would be to generate "example items" which are then fed through the metadata system to see what sort of things you might get. It's obviously not as comprehensive as documenting each field individually, but hopefully helps give a better idea. I've put together a small demo with some of the vanilla providers filled out - any thoughts on how useful/usable this is would be very much appreciated!
Edited on 05 August 2018 - 05:21 PM
Bomb Bloke #91
Posted 06 August 2018 - 01:51 AM
That certainly works for me. :)/>
SquidDev #92
Posted 25 August 2018 - 11:23 AM
I'm happy to announce, at long last, Plethora 1.1.13 (aka, the update squid finally paid attention to terminal overlay glasses). This update includes all sorts of exciting features such as:
  • Object groups on the 2D canvas, making it possible to move multiple items in one go.
  • An augmented-reality-esque 3D canvas, allowing you to place cubes and displays in-world.
  • A token third bullet point, because 2 didn't look quite enough.
Special shoutout to Shiranuit for helping me test the overlay glasses' 3d functionality (and finding lots of problems!). It's still very much work in progress, so do let me know if you find a problem/have suggestions. The documentation isn't quite updated yet (only includes 2d groups), but I'll try to get that updated today.

Of course, if there's something you feel the documentation is lacking, do let me know or send a pull request! This release saw the addition of metadata providers to the docs directly as a result of user feedback (♥ BombBloke).

Changelog
Features
  • Allow clearing the introspection and chat recorder player bindings by shift+right clicking.
  • Expose a module's bound player via a metadata provider.
  • Add "object groups" to the overlay glasses, effectively acting as a sub-canvas with its own position and children.
  • Add support for 3D objects in the overlay glasses. This currently supports a basic cubeoid "box" and a 2D canvas-like object.
  • Rewrite the documentation generator to provide more consistent output.
  • Include metadata providers within the documentation generator.
Bug fixes
  • Fix .getBlockMeta not reporting entirely correct metadata.
  • Prevent some overlay glasses colours being mangled when returned from .getColour.
  • Lots of fixes to argument parsing within the overlay glasses.
  • Fix neural interface thinking modules had changed when they hadn't.
  • Fix introspection module not providing a peripheral on relog.
Jummit #93
Posted 21 September 2018 - 09:18 PM
I have a question; I wanted to interact with a Shield Projector from RFTools, but there are no functions to set new filters/shield textures or damage types. Will this every be made possible, or does plethora have a limited range of modded blocks that will be implemented?
SquidDev #94
Posted 21 September 2018 - 09:21 PM
I have a question; I wanted to interact with a Shield Projector from RFTools, but there are no functions to set new filters/shield textures or damage types. Will this every be made possible, or does plethora have a limited range of modded blocks that will be implemented?
If you could file an issue on the issue tracker with what sort of functionality/methods you need, I'll try to look at it. I don't really play heavily modded packs, so very much rely on the community to tell me what integrations are missing!
Jummit #95
Posted 21 September 2018 - 09:30 PM
I have a question; I wanted to interact with a Shield Projector from RFTools, but there are no functions to set new filters/shield textures or damage types. Will this every be made possible, or does plethora have a limited range of modded blocks that will be implemented?
If you could file an issue on the issue tracker with what sort of functionality/methods you need, I'll try to look at it. I don't really play heavily modded packs, so very much rely on the community to tell me what integrations are missing!
Awesome to hear! I will happily spam the Github issues with proposals of apis as large as my modpacks :D/>
Jummit #96
Posted 21 September 2018 - 09:40 PM
I made a small list of blocks that could be cool peripherals: https://github.com/SquidDev-CC/plethora/issues/158
SquidDev #97
Posted 21 September 2018 - 10:02 PM
I made a small list of blocks that could be cool peripherals: https://github.com/S...hora/issues/158
Thank you! I can't guarantee how much I'll be able to do for all of these, as it's very dependent on how easily modifiable the RFTools blocks are for another mod, but I'll definitely investigate them all.
Jummit #98
Posted 22 September 2018 - 09:37 AM
I think a [Mod Compatibility] label would be useful it could make it easier to find what has already been suggested.
I will make some more issues for mods with their peripherals.
btw, can I also make proposals that a modded item can be used in the Manipulator?
Edited on 22 September 2018 - 07:46 AM
SoruCoder #99
Posted 12 October 2018 - 06:34 AM
It's been a while since I've used plethora, but I have a question about the Keyboard module - if it's bound to a computer, does it also capture mouse events while typing on it? And if not can we have that as a feature?
Jummit #100
Posted 12 October 2018 - 02:28 PM
It's been a while since I've used plethora, but I have a question about the Keyboard module - if it's bound to a computer, does it also capture mouse events while typing on it? And if not can we have that as a feature?
I made this request some time ago, and I think SquidDev implemented it in commit afd952a? I'm not sure about that though.
Edited on 12 October 2018 - 12:28 PM
SquidDev #101
Posted 12 October 2018 - 02:53 PM
I made this request some time ago, and I think SquidDev implemented it in commit afd952a? I'm not sure about that though.
Sort of - it only works when you're using it with the overlay glasses. As I explained in the issue, I'm not really a fan of doing it elsewhere (i.e. for normal terminals), as I don't think there's a way to do it so it makes sense. You can't actually see the terminal, so there's no visual feedback on what you're clicking on.
Jummit #102
Posted 12 October 2018 - 04:25 PM
I made this request some time ago, and I think SquidDev implemented it in commit afd952a? I'm not sure about that though.
Sort of - it only works when you're using it with the overlay glasses. As I explained in the issue, I'm not really a fan of doing it elsewhere (i.e. for normal terminals), as I don't think there's a way to do it so it makes sense. You can't actually see the terminal, so there's no visual feedback on what you're clicking on.
I fully understand that. Cool that you implemented it this way, I like it!
Edited on 12 October 2018 - 02:25 PM
SquidDev #103
Posted 03 May 2019 - 11:46 AM
Oh goodness, what's this? It's a release post! Its' been a while since I did one of these - the last Plethora update was in August 2018. Thankfully, the massive gap between releases means there's actually a (somewhat) big changelog this time.

The big news this update is that Plethora requires CC:Tweaked. This isn't a decision I've made lightly - I've always wanted Plethora to be as compatible as possible. However, some parts of Plethora reach quite far into CC internals, and it was becoming increasingly difficult to test against multiple versions of CC.

From what I can tell, most people using Plethora are already using CC:T, so this shouldn't affect too many people. We'll see :/.

On the bright side, adding a hard dependency on CC:Tweaked means we can take advantage of additional APIs exposed by CC:Tweaked. For instance:
  • turtle.inspect() provides full block metadata if scanner is available
  • turtle.getItemDetail() also includes nbtHash, like listing a chest.
  • Allow refuelling turtles from FE/RF batteries (configurable, disabled by default)
  • Wired networks can be routed through XNet networks. Think of this as AE2's peer-to-peer networks, but even friendlier on TPS!
There's been lots of other changes, including new mod integrations, new metadata providers, and new methods! As always, the full changelog is available on GitHub, but here's a could of highlights:
  • The whole system for creating new functions was rewritten again, making it more robust and much friendlier to use. Yes, this is an internal change which has no user-facing impact, but it's very cool so deserves a place in the changelog. On the bright side, the documented method signature should always be correct.
  • Expose the "captured entity" for Soul Vials (EnderIO), Morbs (Thermal expansion) and vanilla spawn eggs and spawners.
  • Allow adding items and lines to the overlay glasses' 3D canvas. (@Lignum)
  • Add integration with Astral Sorcery, Chickens, Hatchery and Roost (@Nerdpie)
  • Allow upgrading sensors and scanners with nether stars. Each star increases the range of a sensor/scanner by half the amount of the previous one.
I've also updated the method listing, so hopefully it's a little less out-of-date now (even if still impossible to read, suggestions welcome!). I'm also now providing a method/metadata listing for all supported mods, which means you don't have to generate an export if you're running a more heavily modded pack.

On a closing note, massive thanks to Nerdpie for their contributions their update! They've contributed an awful lot of code, some great ideas and have coped with incessant requests for changes
Edited on 03 May 2019 - 09:53 AM
Purple #104
Posted 13 January 2020 - 04:19 PM
Random question. Since CC-T is already on 1.14 any idea when this is going to follow?
SquidDev #105
Posted 13 January 2020 - 05:00 PM
Random question. Since CC-T is already on 1.14 any idea when this is going to follow?
Same as anything - when I have time and energy. Or someone else helps out!
Edited on 13 January 2020 - 04:01 PM