UltimateCards
Introduction
Play Poker and Blackjack in Minecraft!
This is a plugin that allows you to play sleek, automated card games, in Minecraft. It is an extremely easy to use plugin, and very convenient for users. It includes some cunning features, such as on-screen GUI (without any additional client mods or spout!), extensive configuration and customization, and more. It currently has support for Texas Hold'em Poker and Blackjack.
The only requirements for this plugin are:
- Vault
- An economy system supported by Vault, doesn't matter which. Tested on iConomy 6.
Links
DOWNLOAD
HOW TO INSTALL & PLAY
COMMANDS
FEATURES
PERMISSIONS
CONFIGURATION FILE
CHANGELOG
HOW TO REPORT BUGS
SOURCE
MCSTATS
Images
On-Screen GUI


Videos
Recent
Outdated
Privacy Disclaimer
This plugin sends anonymous usage data (such as amount of players currently on your server) to http://mcstats.org/plugin/UltimateCards. No server can be identified, usage reports are fully anonymous. You can opt-out in plugins/PluginMetrics/config.yml on your server directory (set opt-out to true).
An auto-update feature also exists. If you do not wish for the plugin to check for and automatically download updates, you can opt-out in plugins/UltimateCards/config.yml on your server directory (set autoUpdate to false).

-
View User Profile
-
Send Message
Posted Jun 21, 2012Okay, I like this plugin from what I've seen and it was one of the reasons I wanted to help build a casino on my server. However, 2 problems are coming up with this. 1) I create a table and simply use /table open. The other ops (the reason I say ops is because of #2) join and when I use the /table start command, it boots all of us from the game and stops the table without even beginning the game. I have no idea why this happens and I will try to get an error log tomorrow when I can recreate it. 2) Is this compatible with PermissionsEX? I gave the permission node for everyone to be able to use the table, but it says that they do not have permission still. The permission I used was upoker.play
-
View User Profile
-
Send Message
Posted Jun 18, 2012I want to get a super stable, bug-free version out before I work on hand evaluation, so here is a new version that fixed a few annoying bugs!
IMPORTANT:
If you are running a UNIX based server, you probably noticed a very weird file called 'UltimatePoker\UltimatePoker.db' being created in your 'plugins/' directory. That bug should be fixed now, but if you want to keep your statistics database then you need to move that file into 'plugins/UltimatePoker/' and rename it to 'UltimatePoker.db'.
ALSO IMPORTANT:
The Total Winnings and Amount won at Showdown statistics were being calculated incorrectly. It is fixed now, but I recommend you delete your database file and let the plugin create a new one if you want your statistics to be fully correct. I have said before that statistics were experimental and in a very early development stage and knew that some things had to be changed. You don't have to reset the database, but it does mean that your statistics won't be fully correct.
Version 1.1.1
-
View User Profile
-
Send Message
Posted Jun 2, 2012@Norbo11
Generating what? The list of possible hands? You can just iterate through with loops...I can write an example of that too if I get time tomorrow.
-
View User Profile
-
Send Message
Posted Jun 2, 2012@KnightsOfTables
Hmm... I see. But how would I actually go about generating all of this?
-
View User Profile
-
Send Message
Posted Jun 2, 2012@Norbo11
What I had in mind would be, pretend each players hand is 7 cards, and check the value of each permutation of the 7 cards, once sorted. So generate a list of 7 cards per player (their hand + turn/flop/river, and then evaluate the value of cards like this:
You get the idea. During each calculation just check if the new poker hand is better than the players previous one you checked. In the end you'll find the best one for that player. Do this for all players in the table, and then check which player had the highest valued hand. This player is the winner.
-
View User Profile
-
Send Message
Posted Jun 2, 2012@KnightsOfTables
Thanks for all the coding tips, I'll keep those in mind. Regarding the evaluator, I have a few questions.
I wanted to make it so that I can pass in the hand of each player (2 cards per player), and then pass in the community cards (5 cards) and see which player is the winner. I'm not sure how I would be able to do this with what you provided, but it's a start nevertheless. The changes to the Card class I can implement very easily, but I won't do it just yet.
-
View User Profile
-
Send Message
Posted Jun 1, 2012@Norbo11
Well looking at the source, it needs a lot of work. First, card values are stored as strings, which is a waste of memory. Store them as bytes, (0-13, map it however you like, 0=>ace, 1=>2...13=>king, or w/e)
This also makes life a lot easier when dealing with evaluation, and tbh should make life easier in general while coding any applications involving cards.
I whipped up a quick example of how this could be implemented, no guarantees it's perfect, but it works for a bunch of test cases I threw at it. It can even do as much as detect who won even if all the cards are the exact same except for one, and also returns exactly what kind of poker hand the hand gives. The function I provided only takes in a 5card hand as a parameter, so for Texas Hold'em you'd need to generate all the possible 5card hands and test them all, picking the highest valued one to represent that player.
I didn't submit this as a pull request since I changed your Card function greatly and it would likely impact the rest of the code. Heres a repo where you can see it instead: https://github.com/Mashlol/Poker-Hand-Evaluator
To implement it in your own code you'd have to either change your Card class to be more like mine (better overall for your code anyways) or add a function to convert the strings into integers (pretty dumb to store things as strings when you can do all the math with them as integers, just need strings to actually display them to users)
As a side note, you have wayyy too many public variables, there is really no need for them hardly at all. You pretty much made everything public. Use privates for java to know what actually needs to be accessed and what doesn't, it will help you clean up unused code and make your software run better. Also, I find you passing the main plugin class into a bunch of your subclasses, but never actually using any of the main plugin functions or variables. No need to pass variables that you don't use.
-
View User Profile
-
Send Message
Posted Jun 1, 2012@KnightsOfTables
If you do really know how to integrate hand evaluation I would be more than happy for you to try.
Source: https://github.com/Norbo11/UltimatePoker
-
View User Profile
-
Send Message
Posted May 31, 2012Hand evaluation is actually really simple, I created a simple hand evaluator for a Grade 12 project. I can walk you through how it might be done, can even detect who wins in pairs, (i.e. higher cards, or higher suits even) or other tie "hands". It's simple and lightweight.
If you put the source on github I'd be glad to take a look and maybe do a pull request. Otherwise just PM me here and I can see if I can grab up my old source from the grade 12 project if I have it and send it (its another language, but the algorithm is whats important)
-
View User Profile
-
Send Message
Posted May 31, 2012New version out!
Version 1.1
I will now also add a few pages to this project which will contain much more information.
-
View User Profile
-
Send Message
Posted May 29, 2012@evocraft
That poker engine looks very interesting. Before I even began this plugin I looked around for a hand evaluator, but all of them seemed very difficult and huge. This seems pretty lightweight, I will look into it, and who knows, maybe sometime in the feature we can have a fully automatic hand evaluation system ;)
Regarding the bugs and glitches, I am aware that the current release contains quite a bit of bugs. Rest assured that the next version fixes them all (or most). It also contains some features, for example, playing a sound when it's a person's turn, or displaying all stacks/who's turn it is in /poker players, etc. You will see soon :) As soon as I actually fix side pots correctly, that are causing me such a headache right now...
-
View User Profile
-
Send Message
Posted May 28, 2012@Norbo11
Na apologies I failed at actually testing the stuff I state.. Also I'm guessing you already did see http://code.google.com/p/pokerengine/ right :)?
The thing that taunts us the most is the occasional glitches and human errors, like not knowing who's turn it is etc.
-
View User Profile
-
Send Message
Posted May 28, 2012@evocraft
I'm not sure what you mean by this? Do you want every message to be within the 30 block radius?
-
View User Profile
-
Send Message
Posted May 27, 2012@Norbo11
For whats it worth though, could you make all announces beside the creation of a table within that 30 block radius? For a server with 50 people on it might be a bit annoying.
-
View User Profile
-
Send Message
Posted May 27, 2012@evocraft
Thank you SO much for making this video! I will put it in the OP now :)
Also, new version of the plugin should be coming out this week, with statistics, lots of bug fixes and some other sleek features!
-
View User Profile
-
Send Message
Posted May 26, 2012Hey, For whats its worth I made a video to explain the system to my server so if your intrested.
http:www.youtube.com/watch?v=wKgaReVu4N0&feature=youtu.be
-
View User Profile
-
Send Message
Posted May 17, 2012@DeeHuynh
Quick search: http://www.youtube.com/watch?feature=player_embedded&v=MRYNel4oX5k
-
View User Profile
-
Send Message
Posted May 16, 2012a lot harder then it sounds lol.
-
View User Profile
-
Send Message
Posted May 16, 2012alright. thanks alot :)
-
View User Profile
-
Send Message
Posted May 16, 2012@DeeHuynh
Get a permission system such as bPermissions, PEX, or any other one of your choice. Plenty of tutorials out there too :) Then you just set the nodes you want, like upoker.* for all commands.