Also, you have several other weird things going on in your code. '==' cannot be used to compare strings in Java, you need to use String.equals().
Yes, my compiler keeps bitching at me about that too, but either it's smart enough to swap it behind the scenes, or it works anyway, even if it's not proper form, because I've successfully used it in other programs before. I find == to be much easier for me to be able to tell what something does at a glance.
Also, it's really strange to do "Knight".equals(Y). I suppose it works, but it's not idiomatic.
And then, in the one part of the code where I decided to try it out, you've got problems with my variable names? Really?
Whenever programmers have a large list of variables that differ only in indexing, we use arrays, i.e. slot1, slot2, ... should instead be Item[] slots = new Item[8] (note that you still have to individually initialize each slot, since initializing arrays of objects in Java sets all the values in the array to null).
I've used arrays before; I actually changed Item to be an array while I was trying to figure out why it wasn't working here. That said, it honestly didn't seem to change anything - I literally just did a "find-replace" for "Item#" with "Item[#]" (making sure to add in a Item[0], of course). Is there any real benefit for having it in an array?
You should use more descriptive variable names. A function with arguments A, B, C, b, c, d, e, f isn't going to tell you much (even if you've written comments, it's just so much easier to program if your variable names are in plain english), you're bound to forget what everything does, and calling it item() is kinda undescriptive. Variables in Java are usually multi-word things written in camelCase, i.e. lowercase first letter and uppercase letters whenever you reach a new word.
I use descriptive variables where they make a difference. I suppose I
could have named that function CreateItem(String TypeofItem,String CreatureWears,String CreatureWields,int EpicChance,int GreaterMagicChance,int MagicChance,int LesserMagicChance,int CommonChance)... but you know what? Those variables are only used during item creation, and are immediately used to generate random numbers, nothing more; I find it a lot easier to just note with a quick //.
Consider reading up a bit more on programming in Java before proceeding with your project, especially since you don't seem to yet have a grip on OOP, which is vital to programming in Java.
How dare you question my vast experience - I took a single college-level class over a decade ago! I'm totally a pro! :P
I'll admit that I'm rusty, which is probably what caused this problem here (I looked through some of my old programs afterwards, and saw where I ran into the same thing- I must've forgotten in the several year hiatus from programming I took.) I honestly have no idea where I got it into my head that everything should be static - I'll have to try and beat it out of my coding.
Anyway, sorry if I come across as sorta britsly Normandy, but I'll note that this topic is called (For Dummies), and (believe it or not) I've actually managed to code some fairly complex stuff (under the hood, anyway - making a working graphical UI is apparently right at the edge of my abilities, since it's giving me a bitch of a time on something else I'm working on.) And don't think I don't appreciate the pointers... just not so much the condescending attitude that came with it.