GithubHelp home page GithubHelp logo

comet-java's Introduction

Comet Server

Comet is a high performance game server written in Java.

comet-java's People

Contributors

leonhartley avatar deletedaccount56456 avatar matty avatar doeha avatar teledor avatar ljph avatar kennethgomez avatar leon-good-life avatar dotmbf avatar billiboy avatar

Stargazers

Quentin GAROT avatar  avatar

Watchers

Jack White avatar  avatar Mark Huitema avatar  avatar

comet-java's Issues

Gift bug (Middle Priority)

If you buy a item from the catalogue which you searched (a furniture with a offer_id):
http://prntscr.com/dlvb4v

And you gift it to anyone, they can't open it.
It's because the emulator can't get the catalogue page from furniture with an offer_id.

This is the data of the gift that can't get open:
GIFT::##{"pageId":-12345678,"itemId":486735381,"senderId":3,"receiver":"M","message":"","spriteId":3372,"wrappingPaper":0,"decorationType":0,"showUsername":true,"extraData":""}

It will work again when the pageId is correct settled in the data.

Teleporter bug

You won't be able to go in a teleporter anymore when many people used it.

Everytime you click to get in, it won't do anything.

Stacktile bug

If you configure a stacktile on 100, it goes to 40 automatic but you can't stack on it. Works again when you click on the button: http://prntscr.com/djv05x

It should direct work without clicking again on the button

(Still not fixed after some changed in it)

Hide forum thread/message bug (Middle Priority)

When a normal player hides his thread/message in a forum, it gets state 20.

When a staff hides a thread/message, it should set the state of the thread/message on 20
When a player hides a thread/message, it should set the state of the thread/message on 10

State 20 is the default state at the moment for every thread/message that's hided which cause the message: 'Hidden by Hotel staff'

Example:
http://prntscr.com/dkra58

Room Categories

Add a check to see if the Room Category a room is set is actually a valid category because when upgrading or converting a database a room category id may no longer be valid causes null error in RoomWriter class at

"msg.writeInt(room.getData().getCategory().canTrade() ? 2 : 0);"

.getCategory() is null

Reload catalog

The in-correct way at the moment:
:reload catalog does open the catalogue by every player online.

The correct way:
If i do :reload catalog, and someone got the catalogue open. It needs get open again by the players who already got the catalogue open and let it show a message: 'There has been worked on the catalogue' or something like that.

The catalogue should not get opened or re-opened by the players who didn't even got the catalogue open.

List

======================================== Minigames ============================================

Slot machines

User would double click a slot machine furniture but before double clicking they can execute a command such as ;gamble (amount) this makes it so that user can bet what he/she wants and the more they bet the more they win if they get lucky that is.

Color Wars (If possible if not then scrap this) - This is basically kickwars
So basically two teams either on the blue side or green side, they fight each other in a specific room, they would have to go through a gate such as the barzaini gate or whatever its called and once they go through the gate they would either be dressed as blue or green and then once the minimum requirement which would be 5 players a side has been reached then they would begin so they can fight each other by typing some command like ;hit (username). Each user would have 100 health, so once that users health go's to 0 then they would reload the room meaning they have lost and must wait until the game has finished. Whoever is last is the winner, so if the last player was green then all the team members that was in the green team would receive some reward from events staff.

=============================== Basic Roleplay commands ==========================

;wire (amount) (currency) (username)

This would be useful so users wouldn't have to take a while to send credits, diamonds or duckets to each other especially if they won 1million credits. So a user would execute the command and a confirm notification would popup to the user that executed the command to make sure they want to send currency to that user, the user that is trying to send the currency would have to type a command such as ;confirm or ;decline, if that user has decided to type ;confirm then the currency would be sent to the user. The user that receives the currency would also get a message that pops up saying "Username, has sent you (Amount) (currency_name)!"

;rape (username)

Simple enough, user would execute this command on a user to rape him/her and they would have messages popping up that would symbol that they are being raped. Haha

;dropkick (username)

User would execute this command on a user and a message would popup saying "Username, has drop kicked you" and the user that has been drop kicked would lay down on the floor.

;kiss (username)

User would execute the command on a user and would both get a message saying something like "You've been kissed be (username) and an effect would happen such as the love heart effect.

=============================== Sell and Buy Rooms System ==========================

The room owner could sell that room by executing a command such as ;sellroom (amount) this makes it so users can buy users rooms with all the furniture in so once a user executes this command they would not be able to pickup furniture unless they cancel it by typing a command such as ;cancelroom or something. The user that wants to purchase the room would type a command such as ;buyroom and then a notification would popup saying are you sure and user would then type ;confirm or ;decline, if the user types ;confirm then credits would be deducted from them and they would be the new room owner alongside with the furniture.

NOTE: Make sure all the commands have a cooldown so users don't constantly execute the commands.

Wired bug

http://prntscr.com/djh9b8

This bug is only with the first option of 'wf_act_match_to_sshot' selected!

//////
Step 1: https://gyazo.com/a9a5f053ee298fbf08b867888f85bf7b

If you configure
wired action: player steps on gate
wired reaction: player teleports
wired reaction (wf_act_match_to_sshot): to close the door (the first option only)
//////

//////
Step 2: https://gyazo.com/44cb02971d2d3570137e89891243d683

and you walk on the roller behind the gate with open gates
the gates get closed
//////

//////
Step 3: https://gyazo.com/d0be9126f889436bc524c3d22a178287

then you go again on the roller, and there is the bug. You go through the gate.
//////

When you open the gate and close it, you can't roll in it when it's closed anymore, because it refreshes the furni state then.

And when you click all 3 options in the 'wf_act_match_to_sshot' wired, it will work as it needs to.

Pickall, ejectall and rights

There are some stuff that are not the same as in Habbo. Here is the way how Habbo works and the way how Comet should work with these things that are noted here:


Pickall command
Room owner: Only gets his OWN furniture (rest of the furniture stays)
Somebody with rights: Nothing (everything stays the same)

Ejectall command
Room owner: Only the people with rights get their furniture back (own furniture stays)
Somebody with rights: Gets his OWN furniture (furniture of the room owner and other people with rights stays)

If you got furniture in a room, and you don't got rights anymore, you need to be able to click on 'Pick up' and do :ejectall

Walkable teleports

I need to fix the teleports which aren't full solid boxes, namely the ones that you can walk on.

Players get stuck in rooms

java.lang.NullPointerException
at com.cometproject.server.game.rooms.types.components.EntityComponent.addEntity(EntityComponent.java:120)
at com.cometproject.server.game.rooms.entities.types.PlayerEntity.joinRoom(PlayerEntity.java:103)
at com.cometproject.server.game.players.types.Player.loadRoom(Player.java:141)
at com.cometproject.server.network.messages.incoming.room.engine.InitalizeRoomMessageEvent.handle(InitalizeRoomMessageEvent.java:24)
at com.cometproject.server.network.messages.MessageHandler.handle(MessageHandler.java:279)
at com.cometproject.server.network.clients.ClientHandler.channelRead0(ClientHandler.java:28)
at com.cometproject.server.network.clients.ClientHandler.channelRead0(ClientHandler.java:18)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103)
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:341)
at io.netty.channel.DefaultChannelHandlerContext.access$700(DefaultChannelHandlerContext.java:30)
at io.netty.channel.DefaultChannelHandlerContext$8.run(DefaultChannelHandlerContext.java:332)
at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:36)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
at java.lang.Thread.run(Thread.java:745)
java.lang.NullPointerException
at com.cometproject.server.game.rooms.types.components.EntityComponent.addEntity(EntityComponent.java:120)
at com.cometproject.server.game.rooms.entities.types.PlayerEntity.joinRoom(PlayerEntity.java:103)
at com.cometproject.server.game.players.types.Player.loadRoom(Player.java:141)
at com.cometproject.server.network.messages.incoming.room.engine.InitalizeRoomMessageEvent.handle(InitalizeRoomMessageEvent.java:24)
at com.cometproject.server.network.messages.MessageHandler.handle(MessageHandler.java:279)
at com.cometproject.server.network.clients.ClientHandler.channelRead0(ClientHandler.java:28)
at com.cometproject.server.network.clients.ClientHandler.channelRead0(ClientHandler.java:18)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103)
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:341)
at io.netty.channel.DefaultChannelHandlerContext.access$700(DefaultChannelHandlerContext.java:30)
at io.netty.channel.DefaultChannelHandlerContext$8.run(DefaultChannelHandlerContext.java:332)
at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:36)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
at java.lang.Thread.run(Thread.java:745)

need to check this out asap

Timer (wired) bug #2

When you're setting the time with the wired 'wf_act_match_to_sshot' and use the wired 'wf_act_toggle_state' to let it count, it doesn't do anything.

Example: https://gyazo.com/444e16e6ea10344398939754ef3a608a

But if you're setting the time manually without wired, and use 'wf_act_toggle_state' to let it count, it works like supposed to.

Example: https://gyazo.com/46c1454bdd843fc0219a0229a683434a

So the wired 'wf_act_toggle_state' need to be able to let the timer count when it's configured via the wired 'wf_act_match_to_sshot'

Room Promotion bugs

  • If you buy a room promotion and select a room in the catalogue, it doesn't create the room promotion for the selected room, instead of it creates the room promotion for the room which you are in on that moment.

  • If you try to buy 2 promotions after each other, it tell's that you don't got any rooms left without a room promotion. This is resolved if you rejoin the/a room.

Properly handle null Item Definitions

If an Item Definition doesn't exist it will return null which can cause problems with catalog purchasing, trading etc.. because it doesn't check if the Item Definition actually exists, we need either some kind of validation or check, or to return a dummy Item Definition

Wired BUG (every condition)

If you configure multiple conditions on each other, the staple just applies one, not all of them.

As example this staple:
http://prntscr.com/djvn0c

If condition #1 & #2 is configured on a location

and condition #1 selected furniture and #2 furniture selected furniture on the selected place, it works
but even if you change condition #2 selected furniture, it still works because condition #1 selected furniture is on the same place.

So #2 doesn't matter if it's correct or isn't.

Random walking

Sometimes if you click on a person, you walk random somewhere else in the room.

Group room bug (Middle Priority)

When you create a group and select a group room where you're not in, it doesn't make the group room in the selected room.

You need to stand in the room that you select before it sets it as an group room.

Wired data (Idea)

At the moment if you place some data in a wired, and you pick it up and place it again in a room, it sets the extra_data on {}. But sometimes is this buggy and then is the previous furniture still selected till you pick it up and place it again.

Maybe is it a better idea to set the extra_data immediately on {} when you pick the wired up?

Wired wf_act_match_to_sshot bug (High Priority)

2 examples of the same problem:


Example #1

The wired doesn't set the selected furniture on the selected place.

On the example it needs to get on the repeat wired just like you see on the example, and after that it needs to set it back on the place where the wired stood as first, but it does go another way under another furniture:

Example:
https://gyazo.com/b2f457ade98948100d443b26e7056a06


Example #2

If you configure this one, the selected furniture doesn't always go to the configured place.

3 wireds selected to move them (what happened):
https://gyazo.com/3b64762410107731caa8676078f6c5b5

But the 3 wireds was configured to move like this:
http://prntscr.com/di65jj

Idea


Extra:

Idea to reload every player in the room when you change the floor model via flood plan editor????

Football

Ensure football has the same functionality as Habbo.com

Rollers

Rollers need to be synchronised

Commands

:teleport for VIP player (done by Ryan)
:warp x for staff
:freeze x for staff (done by Leones)
:roomfreeze for staff
:speed fast walk (done by Leones)
:setz for vip (its like magic stack tool for item)

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.