rPractice ($45) | Kohi Model | New discord & video

Status
This thread has been locked.

Redis

Banned
Feedback score
4
Posts
284
Reactions
82
Resources
0
Practice is a kohi's practice exact replica ($45)

DISCORD SERVER: https://discord.gg/ChNNMvf
VIDEO SETTING UP:

Features:
  • Ranked and Un-Ranked queues
  • Kit Editing
  • Teams (FFA, TEAM, 2v2 Queues)
  • Duels
  • Statistics (MongoDB )
  • Multi-Arena (Many duels in just one arena!)
  • Post-Match Inventories (Health, food, missed potions, etc).
  • Sumo ladders
  • Tournaments
  • More and more!
Commands:
  • Arena command (create, delete, list, authors, position, ffacorners)
  • Ladder command (create, delete, list, icon, settings, inventory)
  • Duel command (send, accept)
  • Team command (create, disband, invite, kick, open)
Config:
Code:
DATABASE:
  AUTH:
    HOST: "127.0.0.1"
    PORT: 27017
  NAME: "Practice"
  COLLECTIONS:
    ARENA: "Arenas"
    LADDERS: "Ladders"
    PROFILES: "Profiles"
WORLD:
  NAME: "lobby_practice"
  EDITOR:
    NAME: "lobby_practice"
    X: 5
    Y: 100
    Z: 6
SCOREBOARD:
  SIDEBAR:
    ENABLED: true
    TITLE: "&6&lKohi &a[Practice]"
  NAMETAGS:
    ENABLED: true
    COLORS:
      ENEMY: "RED"
      MEMBER: "DARK_GREEN"
      SPECTATOR: "GRAY"
MATCHES:
  MINIMUM_UNRANKED: # Minimum unranked matches that are needed to queue for a ranked queue.
    ENABLED: true
    NUMBER: 10
 
Last edited:
PebbleHost
High performance, consistent uptime and fast support. Minecraft hosting that just works.

Redis

Banned
Feedback score
4
Posts
284
Reactions
82
Resources
0
** RESERVED FOR UPDATES **

02/18/18 - Created the thread.
02/18/18 (21:40) - Finished almost everything, need to start working on teams.
03/18/18 (11:53) - Finished Ranked and Un-Ranked queues.
03/18/18 (14:25) - Scoreboard stuff (https://gyazo.com/f20cd407c1cee07f9874000443feeb2b)
03/18/18 (15:00) - Pre-Sales are now open, they are $20, when the plugin releases the cost will be $40.
03/18/18 (18:05) - Almost finished teams https://gyazo.com/132b9b9f70ede9d05dd55555123bb64f
03/19/18 (12:35) - Finished teams, started working on the Kit Editor
03/23/18 (11:56) - Finished the Kit Editor https://gyazo.com/2cffe4c3a563ec95bbcc04f4a0f23275
03/24/18 (05:52) - Added /arena setcorners for team ffa spawns. (And finished Team Deathmatch)

ALERT: The PRACTICE has been finished, the plugin is $45.

Sorry for the lack of updates, I am not in my house; I'll upload a video when I'm back... sorry!!

02/04/18 (06:03) - Added the ability to make a Sumo ladder
03/04/18 (14:17) - Started working on Tournaments

ABANDONED NOW, SELLING SOURCE FOR $50
*************************
 
Last edited:
Banned forever. Reason: Ban Evading (Andromeda)

lfw

Australian Developer / @lfw_0
Supreme
Feedback score
3
Posts
43
Reactions
34
Resources
0
You seem to like your MongoDB don't you :).

Plugin looks good, however from the code snippet you showed there would be two things I would change.

  1. Instead of putting the @Getter annotation on each of the various variable in the main class, what you can actually do is put @Getter at the top of the class above the "public class kPractice extends JavaPlugin" and this will make every variable within the class have a @Getter and overall will just make the class look a lot cleaner
  2. Separate the MongoDB information into its own MongoManager with the various collections. This would just make it so that the main class isn't over populated with redundant items that could easily be done in another class.
Besides that the code looks very clean and organised. Good luck with sales!
 

Redis

Banned
Feedback score
4
Posts
284
Reactions
82
Resources
0
You seem to like your MongoDB don't you :).

Plugin looks good, however from the code snippet you showed there would be two things I would change.

  1. Instead of putting the @Getter annotation on each of the various variable in the main class, what you can actually do is put @Getter at the top of the class above the "public class kPractice extends JavaPlugin" and this will make every variable within the class have a @Getter and overall will just make the class look a lot cleaner
  2. Separate the MongoDB information into its own MongoManager with the various collections. This would just make it so that the main class isn't over populated with redundant items that could easily be done in another class.
Besides that the code looks very clean and organised. Good luck with sales!
Oh, yeah, forgot that @Getter thing haha, gonna do it. For the MongoDB, I will change the class so the main looks cleaner, thanks for the suggestion!
 
Banned forever. Reason: Ban Evading (Andromeda)

Burdened

lets all love lain
Premium
Feedback score
35
Posts
707
Reactions
345
Resources
0
kPractice is a kohi's practice exact replica (It will be around $25).

Features:
  • Ranked and Un-Ranked queues
  • Kit Editing
  • Teams (FFA, TEAM, 2v2 Queues)
  • Duels
  • Statistics (MongoDB)
  • Multi-Arena (Many duels in just one arena!)
  • More and more!
Some code:

Code:
@Getter
public class Practice extends JavaPlugin {
    @Getter private static Practice plugin; // This one needs the @Getter withoout exception!
  
    private MongoClient mongoClient;
    private MongoDatabase mongoDatabase;

    private MongoCollection arenasCollection;
    private MongoCollection laddersCollection;
    private MongoCollection profilesCollection;

    private ArenaManager arenaManager;
    private LadderManager ladderManager;
    private ProfileManager profileManager;
    private MatchManager matchManager;
    private QueueManager queueManager;

    private EntityHider entityHider;

    @Override
    public void onEnable() {
        plugin = this;

        /* Initialize Mongo first*/
        mongoClient = new MongoClient(getConfig().getString("DATABASE.AUTH.HOST"), getConfig().getInt("DATABASE.AUTH.PORT"));
        mongoDatabase = mongoClient.getDatabase(getConfig().getString("DATABASE.NAME"));

        arenasCollection = mongoDatabase.getCollection(getConfig().getString("DATABASE.COLLECTIONS.ARENA"));
        laddersCollection = mongoDatabase.getCollection(getConfig().getString("DATABASE.COLLECTIONS.LADDERS"));
        profilesCollection = mongoDatabase.getCollection(getConfig().getString("DATABASE.COLLECTIONS.PROFILES"));
        /* Initialize Mongo first*/

        arenaManager = new ArenaManager();
        arenaManager.getArenasFromDatabase().forEach(Arena::save);

        ladderManager = new LadderManager();
        ladderManager.getLaddersFromDatabase().forEach(Ladder::save);

        profileManager = new ProfileManager();
        matchManager = new MatchManager();
        queueManager = new QueueManager();

        entityHider = new EntityHider(this, EntityHider.Policy.BLACKLIST);

        new ListenerRegisterer();
        new CommandRegistrer();
    }

    @Override
    public void onDisable() {
        arenaManager.getArenas().values().forEach(Arena::save);
        ladderManager.getLadders().values().forEach(Ladder::save);
        profileManager.getProfiles().values().forEach(Profile::save);
    }
}
Could you possibly add support for MySQL? I know MongoDB is cool but I'm a lazy person and MySQL is the most compatible with anything
 

Redis

Banned
Feedback score
4
Posts
284
Reactions
82
Resources
0
Could you possibly add support for MySQL? I know MongoDB is cool but I'm a lazy person and MySQL is the most compatible with anything
I prefer MongoDB only, it can handle more data than mySQL and I am more used to it, sorry :(
 
Banned forever. Reason: Ban Evading (Andromeda)

Water

League Name Sniping
Supreme
Feedback score
19
Posts
142
Reactions
99
Resources
0
I prefer MongoDB only, it can handle more data than mySQL and I am more used to it, sorry :(
Well- if this helps, a lot of people are more inclined to buy if it's on mysql.
 

Redis

Banned
Feedback score
4
Posts
284
Reactions
82
Resources
0
That's a dealbreaker then, preformance vs compatibility ¯\_(ツ)_/¯
Well- if this helps, a lot of people are more inclined to buy if it's on mysql.
I mean, you can setup MongoDB easily. You can find more info in Mongo's website or StackOverFlow!
 
Banned forever. Reason: Ban Evading (Andromeda)

Water

League Name Sniping
Supreme
Feedback score
19
Posts
142
Reactions
99
Resources
0
I mean, MongoDB has no complications to setup, it is pretty easy. You can find more info in Mongo's website or StackOverFlow!
I'm not saying it's hard, it's just you will earn more if it's on mysql because it's the most widely used and as previously mentioned, people are lazy. Not trying to persuade you.
 

Redis

Banned
Feedback score
4
Posts
284
Reactions
82
Resources
0
Banned forever. Reason: Ban Evading (Andromeda)

Redis

Banned
Feedback score
4
Posts
284
Reactions
82
Resources
0
i think they are completely different plugins
Same names :p
Yeah, they are completely different plugins, this is called kPractice because kohi's practice was called like that and this is a replica, but I can change the name of it if you want, no problem!
 
Banned forever. Reason: Ban Evading (Andromeda)

Nerm

Deactivated
Feedback score
21
Posts
851
Reactions
714
Resources
0
Yeah, they are completely different plugins, this is called kPractice because kohi's practice was called like that and this is a replica, but I can change the name of it if you want, no problem!
You don't have to, I'm just pointing that Kipes has the same name.
 

Redis

Banned
Feedback score
4
Posts
284
Reactions
82
Resources
0
You don't have to, I'm just pointing that Kipes has the same name.
Okay, thanks for the info! (I will just name it Practice)
 
Banned forever. Reason: Ban Evading (Andromeda)
Status
This thread has been locked.
Top