Giter Club home page Giter Club logo

gcb's People

Contributors

perennate avatar pguakf avatar uakfdotb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gcb's Issues

Как запустить GCB b BNET на одном порту?

Здравствуйте, я поставил Bnet и gcb, но они должны слушать один порт, как мне запустить GCB с привязкой к IP адресу?

GCB сейчас выглядит так:
2014-12-31_134909

BNET нормально привязывается:

2014-12-31_135102

java.io.EOFException

java.io.EOFException
at java.io.DataInputStream.readFully(DataInputStream.java:197)
at gcb.GarenaTCP.run(GarenaTCP.java:586)

I see this error quite a bit and don't know what it is or what it causing it

The main problem GCB

Hi, I'm more than a year using GCB, it does have one very big disadvantage, please help to understand.

I specifically scored his Internet channel to test.
When I play straight through Battle.net, all is well, lags have but there is no connection breaks.
When playing through Garena (GCB) immediately eject from the game after waiting administrator.

Because of what is going on? How to fix it or reduce the breaks?

Here is the error: [GarenaTCP -478944396] Terminating connection -478944396 with /IP (Name)

UDP Send to all but

Can you add the UDP black list function to the recipients? I think you can do so that some kind of user did not receive the package? Or tell me where to patch

There should be system to automatically shutdown once X hours in case of idle state

I found that there are some CPU and Memory leaks if gcb is working for much time (in my case it was one month with a bit). In my case GCB was eating ~150% of CPU in idle state and ~30 megabytes more memory, than usually. It's not a problem. But to fix that, it's a good idea to make automatic shutdown system, which can be initiated once X hours when state is idle (0 players connected).

It does not need to be started automatically after that, because it's easy to do with bash script, but if it will be inside the code of gcb, it would be perfect.

Not work new gcb

Players can not connect to host.

[STATUS] connected: 0; mem: 494080 KB; threads: 57; rooms/users: 10/209; up: 10s
Exception in thread "Timer-0" java.lang.NullPointerException
at gcb.GarenaTCPPool.getStatistics(GarenaTCPPool.java:176)
at gcb.Main$StatusTask.run(Main.java:621)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
[GarenaTCPPool] Allocated a new worker thread (count=1, id=0)
[TCPWorker 0] Starting TCP connection with TemKa_sd
[GarenaTCP -612705413] Starting new virtual TCP connection -612705413 with user TemKa_sd at /77.34.123.82 to 6121
[GarenaTCP -612705413] Connecting to GAMEHOST at localhost on port 6121 for connection -612705413
Exception in thread "Thread-53" java.lang.NullPointerException
at gcb.GarenaTCPPool.incrementStatistics(GarenaTCPPool.java:160)
at gcb.GarenaTCP.data(GarenaTCP.java:311)
at gcb.TCPWorker.run(GarenaTCPPool.java:362)

New setting to the rooms

Fighting spam is successful thanks harvested code refresh packets game. /*ByteBuffer refreshPacket = ByteBuffer.allocate(16);

I could barely run two gcb on a single server.
I'd love to see a new setting to the rooms.

garena1_username = Username
garena1_password = ************
garena1_mainhost = con3.garenaconnect.com
garena1_roomid = 65750
garena1_roomhost = 203.117.124.12
garena1_peerport = 0
garena1_maps = Legion TD Mega (B3), Dota Allstars 6.78, Pudge Wars 10.2

The essence garena1_maps setting that would indicate to the GCB cards that can be broadcast into the room.

fix rank Vip in GCB

hi
fix rank Vip in GCB

See [03:48:14] [System Message] V.I.P < username> has entered the room

plz fix it

&
all commands to Whisper display Except Command : Staff

TanQ

connect garenalan ?

I'm trying to connect to garenalan while the main server error, tell me what could be the problem.

C:\Users\newPK\Desktop\gcb-master\bin>java -jar gcb.jar
gcb 1.0.2-dev
[GInterface 1] Initializing...
[GEncrypt] Initializing AES Keys...
[GEncrypt] Initializing RSA Keys...
[GEncrypt] Reading private key in PEM format...
[GInterface 1] Connecting to 208.91.197.46...
[STATUS] connected: 0; mem: 125952 KB; threads: 16; rooms/users: 1/0; up: 10s
[GInterface 1] Error while connecting to main host: connect timed out
[GarenaReconnect] GARENA_MAIN disconnected; reconnecting shortly...
[GInterface 1] Failed to send lookup: peer socket not initialized
[GInterface 1] Connecting to room...
[GInterface 1] Automatically searching for roomid and roomhost...
[GInterface 1] Autoset found match; name is [ Russia TD Room 03 (1.26a)], id is
[196800], host is [203.117.124.18], and game is [WC3/RPG]
[GInterface 1] Conducting hostname lookup...
[GInterface 1] Connecting to 203.117.124.18...
[GInterface 1] Initializing...
[GEncrypt] Initializing AES Keys...
[GEncrypt] Initializing RSA Keys...
[GEncrypt] Reading private key in PEM format...
[GInterface 1] Connecting to 208.91.197.46...
[GInterface 1] Error while connecting to main host: connect timed out
[GarenaReconnect] GARENA_MAIN disconnected; reconnecting shortly...
[GInterface 1] Error while connecting to room host: Connection timed out: connect
[GarenaReconnect] GARENA_ROOM disconnected; reconnecting shortly...
[PluginManager] Searching through 3 files for plugins...
[PluginManager] 2 plugins found!
[PluginDB] Connecting to MySQL database...
[PluginDB] Creating plugindb table if not exists...
[TRIVIA] Loaded 0 scores!
[PluginManager] Loading 1 plugins...
[GInterface 1] Initializing...
[GEncrypt] Initializing AES Keys...
[GEncrypt] Initializing RSA Keys...
[GEncrypt] Reading private key in PEM format...
[GInterface 1] Connecting to 208.91.197.46...
[GInterface 1] Error while connecting to main host: connect timed out
[GarenaReconnect] GARENA_MAIN disconnected; reconnecting shortly..

my config

whether to keep a log

gcb_log = true

the log level, determining which messages to log

this is flag based; add the flag values for desired messages to get the overall log level

1 (2^0) - uncategorized system messages (should be enabled)

2 (2^1) - uncategorized error messages (should be enabled)

4 (2^2) - logging-related notifications

8 (2^3) - startup-related messages (can be disabled, since errors will be logged under 2^1)

16 (2^4) - unimportant system messages

32 (2^5) - uncategorized room messages (should be enabled)

64 (2^6) - uncategorized room error messages (should be enabled)

128 (2^7) - unimportant room messages (includes many room connection messages)

256 (2^8) - room messages that come from the Garena server

512 (2^9) - room messages that come from other players

1024 (2^10) - debug room messages

2048 (2^11) - debug system messages

4096 (2^12) - TCP debug messages (should be disabled except for debugging)

for example, to get everything except the debug messages, use 1023

gcb_loglevel = 1023

whether to keep a seperate log of commands used

gcb_log_commands = true

interval between creating a new log file; in milliseconds (prevents gcb.log from getting too large)

set to 0 to disable

don't set to over 2147483647

gcb_log_new_file = 86400000

whether or not to output caught exceptions for debugging

gcb_debug = false

path to plugins

gcb_plugin_path = plugins/

the current Garena version

gcb_version = 0x0000027C

hostname(s) and port(s) where GHost++ is located

Garena clients connecting via gcb will connect to whatever game is hosted by GHost++

Note that each port must be unique (for example, you cannot use 6112 on two different hostnames)

Also make sure that GHost++ is set to broadcast packets to the server hosting gcb (if GHost++ is on a separate machine/LAN, update it's udp_broadcasttarget configuration)

To specify a list, do something like:

localhost:6112, localhost:6113, localhost:6114

gcb_tcp_host = localhost:6112

whether to enable debug for TCP connections (will generate lots of output!)

gcb_tcp_debug = false

whether to buffer the TCP output to GHost++ to check for name spoofing and other things

gcb_tcp_outbuffer = true

whether to buffer the TCP output from GHost++

this will read entire W3GS packets at a time instead of fragments

gcb_tcp_localbuffer = true

names to reserve when connecting to GHost++

To specify a list, do something like:

gcb_tcp_reservednames = ownername, rootadminname, Open, Closed

gcb_tcp_reservednames = Open, Closed

plugins to automatically load at startup

You must put the fully qualified name of the plugin (includes package)

To specify a list, do something like:

gcb_plugins = gcb.examples.hello, awesome.myplugin, awesome.myplugin2

gcb_plugins =

the port to listen for Warcraft III game broadcasts

you shouldn't have to change this

gcb_broadcastport = 6114

gcb will rebroadcast packets captured from gcb_broadcastport to the following ports

Use if you wish to run multiple instances of gcb. gcb_broadcastport must be modified as well.

example: gcb_rebroadcast = 6113, 6114

gcb_rebroadcast =

if enabled, gcb will filter received UDP packets on gcb_broadcastport

Specifically, only valid W3GS_GAMEINFO packets with addr=gcb_tcp_host and port in gcb_tcp_port will be passed on

Note that this does not affect gcb_rebroadcast functionality (all UDP packets will be rebroadcasted)

gcb_broadcastfilter = true

filtering IP address doesn't seem to work very well for local address; filter anyway?

gcb_broadcastfilter_ip = false

if enabled, gcb will create a random entry key to send to Garena users

This way, the actual LAN entry key will be invisible to them

gcb_broadcastfilter_key = true

if enabled, gcb will cache UDP packets

This saves bandwidth because we only send these packets when user requests through SEARCHGAME packet

Note: gcb_broadcastfilter_key must be enabled for this to work because of implementation

gcb_broadcastfilter_cache = true

if set, this will be used to rewrite the gamename taken from the host bot

You can use %g to represent the original gamename

For example:

gcb_broadcastfilter_gamename = [GARENA] %g

This will rewrite "Gamename" into "[GARENA] Gamename"

gcb_broadcastfilter_gamename =

how often to reconnect to Garena (in minutes)

Might be necessary if running gcb for extended periods of time

set to 0 to disable

gcb_reconnect_interval = 10

whether to only reconnect if idle state is detected

gcb_reconnect_idleonly = true

interval in seconds to display the STATUS message

gcb_status = 60

whether to display member information while gcb is running

if enabled, gcb will output to room_users_{id}.txt, where {id} is the connection identifier

output includes user id, username, country, experience, IP address, etc.

gcb_display_members = false

whether to enable GCBI protocol

GCBI sends information about the joining Garena user to GHost++

Requires a patch in GHost++, however (gcbi-extend-v2.patch)

gcb_enablegcbi = false

use command line interface

gcb_bot_commandline = false

the number of workers to use for startup connections

after startup, GarenaReconnect takes over

gcb_connectworkers = 8

address to bind on, or blank to bind on all / any address

gcb_bindaddress =

the external IP address to send to room, or blank to autodetect

gcb_externaladdress =

###################

GARENA SETTINGS

###################

your Garena username and password

if set, this overrides the connection-specific username/password settings

garena_username = ******
garena_password = ******

Garena username for this connection (if global garena_username/password are not set)

#garena1_username = host_td

Garena password for this connection (if global garena_username/password is not set)

#garena1_password =

the main host (login server) to use

garena1_mainhost = con3.garenaconnect.com

the room gcb should join (if gcb_roomid and gcb_roomhost are not set)

note that not set means the option must be commented out

you should use gcb_roomid and gcb_roomhost if at all possible

also, using gcb_roomname may not work if there is more than room with that name

garena1_roomname = Russia TD Room 03 (1.26a)

the room ID gcb should join

See README for details on how to find this.

#garena1_roomid = 196800

the room host for gcb_roomid

See README for details on how to find this.

#garena1_roomhost = 67.228.76.60
#garena1_roomhost = 203.117.124.18

the room password; leave uncommented or blank to not set one

garena1_roompassword =

the GP2PP port

each Garena connection should use a different port

in some cases you might have to forward this port (UDP) on router

the Garena client attempts to use 1513 if possible

if it is set to 0, then the port will be chosen automatically

it is recommended to do this if you're using the exit nicely feature

garena1_peerport = 5001

####################

TCP SETTINGS

####################

The options below control the properties of gcb's

virtual TCP over UDP connection algorithm. Tweaking

them is not recommended for normal users because

the defaults should give optimal performance.

However, on some systems or configurations, other

values might be better.

Times are all set in milliseconds for this section.

the maximum number of packets to buffer before we stop sending packets

packets are only removed from the buffer when they are acknowledged by the remote end

0 disables this function

a larger value is recommended if there is a greater ping

gcb_tcp_maxbufferedpackets = 20

Delay in milliseconds for standard retransmission of packets

If an acknowledgement packet is not sent for this delay, then the packet will be retransmitted

Note that gcb will dynamically determine the actual standard retransmission delay, this is only the initial value

gcb_tcp_standarddelay = 3000

timeout on packets sent from local connection until we do standard retransmission

this isn't too important anymore since we also standard retransmit every gcb_tcp_srttg milliseconds

gcb_tcp_sotimeout = 1000

the alpha value used to calculate smoothed round trip time

a higher value will change more quickly to new round trip time calculations

gcb_tcp_srttalpha = 0.125

the beta value used to calculate smoothed round trip time

this has same function as alpha, but for the variation in the SRTT

gcb_tcp_srttbeta = 0.25

the minimim round trip time (milliseconds)

gcb_tcp_srttlower = 10

the maximum round trip time (milliseconds)

gcb_tcp_srttupper = 60000

the clock granularity (milliseconds)

this is also how often we will check for standard retransmission of packets

Note that we still check at other times.

gcb_tcp_srttg = 20

the K value, should be 4

gcb_tcp_srttk = 4

maximum size of UDP packets to send

packets larger than this will be broken into small chunks

gcb_tcp_maxpacketsize = 512

maximum size of TCP packets to receive from local/remote

packets larger than this will be rejected

gcb_tcp_maxtcpsize = 2000

the maximum number of virtual TCP over UDP connections to allow per worker thread

gcb_tcp_connectionsperworker = 5

#################

RCON SETTINGS

#################

whether to enable rcon or not

rcon allows you to send commands to gcb via sockets

for example, to exit gcb nicely

gcb_rcon = false

the rcon password

this MUST be set, otherwise rcon will reject all connections

rcon_password =

rcon bind address

rcon_bind = 0.0.0.0

rcon server port

rcon_port = 7464

if gcb rcon should only accept local connections (recommended)

rcon_localonly = true

####################

REVERSE SETTINGS

####################

whether to enable REVERSE or not

REVERSE changes the function of gcb so that you can join other Garena client's games

This should help with playing over Garena on unsupported systems, such as Linux

It functions quite similarly to GProxy++, although currently support for reconnection is not planned

Note that gcb is incompatible with REVERSE, so this will automatically disable gcb; gcb_bot can still be enabled

gcb_reverse = false

your Warcraft III version; Garena seems to change the war3version, so gcb changes it back

For example, if your room uses 1.24d, write

gcb_reverse_war3version = 24

gcb_reverse_war3version = 26

the starting port to host local games on, or 0 to use any free ports

gcb hosts games on LAN

Once you connect to the game, gcb will route packets between you and the Garena remote server

Note that one port for each LAN game is necessary (see gcb_reverse_num for more details)

gcb_reverse_port = 0

the number of LAN games to host

gcb will create this many server sockets

Every time gcb receives a GAMEINFO broadcast, it will host on the next available server

The ports start at gcb_reverse_port and go up from there

If gcb_reverse_port = 16000 and gcb_reverse_num = 25, then the last port will be 16024

gcb_reverse_num = 25

the hostname to send UDP packets received from Garena to

For example, if you want to use Warcraft III only on your own computer, then set

gcb_reverse_target = 127.0.0.1

If you want the entire LAN to receive broadcast packets from this gcb, then set

gcb_reverse_target = 255.255.255.255

gcb_reverse_target = 127.0.0.1

####################

LAN FIX SETTINGS

####################

whether to enable LAN FIX or not

LAN FIX is necessary if you wish to communicate with Garena clients on the same LAN as you

LAN FIX is only intended for testing purposes; LAN Garena clients can connect to GHost++ over LAN instead of through gcb

Note that if LAN FIX is on, game names to all users will be renamed and will contain a 'w'

This is to differentiate for LAN users between joining the LAN game and joining through gcb

gcb_lanfix = false

the Garena username of the LAN Garena client

gcb_lanfix_username = td_host

the internal IP address of the LAN Garena client

gcb_lanfix_ip = 192.168.1.2

the GP2PP port of the LAN Garena client

gcb_lanfix_port = 1513

################

BOT SETTINGS

################

whether to run gcb_bot

if set to true, gcb_bot will run

gcb_bot = false

whether to disable gcb (only if gcb_bot is enabled)

gcb_bot_disable = true

whether you have channel admin

disables commands and features that require channel admin access if false

gcb_bot_channel_admin = false

whether to ban user from room when using ban command; only works if you also have channel admin

gcb_bot_room_ban = false

whether to unban user from room when using unban command; only works if you also have channel admin

gcb_bot_room_unban = false

any string representing this bot's owner or organization

gcb_bot_owner =

root admin; leave blank to disable root

gcb_bot_root =

the bot trigger

gcb_bot_trigger = .

time in milliseconds to wait after a chat message is sent, before sending another message

gcb_bot_delay = 500

time in milliseconds a public user must wait before bot will respond to another command

gcb_bot_publicdelay = 3000

realm; only used in GHost++ and GHostOne databases

gcb_bot_realm =

GHost++ botid to target; only used in GHost++ extended databases

gcb_bot_id = 0

what to do when banned word/phrase is detected

0 = nothing, 1 = warn, 2 = kick, 3 = ban

gcb_bot_detect = 0

if gcb_bot_detect is 3, how many days to ban for

gcb_bot_detect_ban_length = 999

announcement when banned word/phrase is detected; only if gcb_bot_detect is true

gcb_bot_detect_announcement = Banned word/phrase detected

message to display when a user does not have access to a command; leave blank to disable this functionality

gcb_bot_access_message = You do not have access to this command

message to send to public user when they join the room

gcb_bot_welcome_message = Welcome

whether to allow public commands

gcb_bot_publiccommands = true

whether to have announcements when a ranked user enters the room

gcb_bot_user_join_announcement = false

whether to whisper a message to a public user when they join the room

gcb_bot_public_join_message = false

any string representing current DotA version used in the room

gcb_bot_dota_version = 6.72f

any string representing current Warcraft 3 version used in the room

gcb_bot_warcraft_version = 1.24e / 1.24.4.6387

show user's IP address in whoami/whois

gcb_bot_showip = false

interval between each automatic message in seconds; will only be used if there is at least 1 message

set to 0 to disable this feature

gcb_bot_auto_ann_interval = 120

kick players out of the room if they are not within level range or are safelist rank or higher

gcb_bot_entry_level = false

level range for players entering room, only if gcb_bot_entry_level is set to true

gcb_bot_min_level = 10
gcb_bot_max_level = 60

whether to check if players are bypassing flood protection i.e. using cracked garena

gcb_bot_check_same_message = false

whether to enable trivia plugin command aliases

gcb_bot_trivia_plugin_alias = true

command aliases

gcb_bot_alias_commands = commands, command, cmd, cmds, c
gcb_bot_alias_addadmin = addadmin, aa, adda
gcb_bot_alias_addexaminer = addexaminer, ae, adde
gcb_bot_alias_addvip = addvip, av, addv
gcb_bot_alias_addsafelist = addsafelist, as, adds
gcb_bot_alias_ban = ban, b
gcb_bot_alias_roomban = roomban, rb
gcb_bot_alias_botban = botban, bb
gcb_bot_alias_unban = unban, ub
gcb_bot_alias_kick = kick, k
gcb_bot_alias_quickick = quickkick, qk
gcb_bot_alias_addautoannounce = addautoannounce, aaa
gcb_bot_alias_delautoannounce = delautoannounce, daa
gcb_bot_alias_setautoannounceinterval = setautoannounceinterval, saai
gcb_bot_alias_announce = announce, ann
gcb_bot_alias_say = say, s
gcb_bot_alias_whisper = whisper, w
gcb_bot_alias_clear = clear, c
gcb_bot_alias_promote = promote, p
gcb_bot_alias_demote = demote, d
gcb_bot_alias_findip = findip, fip
gcb_bot_alias_version = version, v
gcb_bot_alias_uptime = uptime, ut, upt
gcb_bot_alias_roomstats = roomstats, roomstat, rs
gcb_bot_alias_banword = banword, bw
gcb_bot_alias_unbanword = unbanword, ubw
gcb_bot_alias_allstaff = allstaff, alls
gcb_bot_alias_staff = staff, staf, stf, st
gcb_bot_alias_mute = mute, m
gcb_bot_alias_unmute = unmute, um
gcb_bot_alias_random = random, r
gcb_bot_alias_traceuser = traceuser, tu
gcb_bot_alias_traceip = traceip, tip
gcb_bot_alias_checkuserip = checkuserip, cui, cuip
gcb_bot_alias_creater = creater, creator
gcb_bot_alias_getpromote = getpromote, getpromotes, gp
gcb_bot_alias_status = status, stat
gcb_bot_alias_getunban = getunban, getunbans, gub
gcb_bot_alias_baninfo = baninfo, bi
gcb_bot_alias_kickinfo = kickinfo, ki
gcb_bot_alias_help = help, h
gcb_bot_alias_whoiisuid = whoisuid, whouid, wuid, wid, finduid
gcb_bot_alias_multiban = multiban, mban, mb

gcb_bot_alias_trivia on = trivia on, t on
gcb_bot_alias_trivia off = trivia off, t off
gcb_bot_alias_delay = delay, del, dly, dl
gcb_bot_alias_category = category, cat, ca
gcb_bot_alias_difficulty = difficulty, dif, diff
gcb_bot_alias_top = top, tp
gcb_bot_alias_score = score, sc

#####################

BOT SPAM SETTINGS

#####################

whether to check if a user is spamming

gcb_bot_spam = false

how many new lines (enter key) the user can have per message without receiving a warning

gcb_bot_spam_warn_lines = 5

number of new lines (enter key) the user can have per message without being autokicked

gcb_bot_spam_max_lines = 15

how many equality signs ('<' and '>') the user can have per message without receiving a warning

gcb_bot_spam_warn_equality = 16

number of equality signs ('<' and '>') the user can have per message without being autokicked

gcb_bot_spam_max_equality = 40

number of warnings for the user to be kicked; can not be set to less than 3

gcb_bot_spam_kick = 5

#########################

BOT DATABASE SETTINGS

#########################

interval between synchronising MySQL database and bot in seconds

gcb_bot_refresh_rate = 60

gcb_bot database settings

login information

gcb_bot_db_username = root
gcb_bot_db_password = root

JDBC hostname

Format should be: jdbc:mysql://hostname/databasename

gcb_bot_db_host = jdbc:mysql://localhost/gcb

database type

gcb: database created by gcb install.sql script

ghostone: GHostOne database

ghost++: GHost++ database (will not support safelist)

ghost_extended: GHost++ database with safelist table and commands through MySQL modification

gcb_bot_db_type = gcb

Aggregate performance stats

Aggregate performance stats can be helpful to determine what parts of gcb could use a performance boost, and how we can tweak virtual TCP over UDP settings for speed. Things like % packets retransmitted, % time loop is idle, etc.

Connecting to a Database error

[SQL] Unable to connect to mysql database: Unknown character set index for field '255' received from server.
java.sql.SQLException: Unknown character set index for field '255' received from server.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.ConnectionImpl.getCharsetNameForIndex(ConnectionImpl.java:3079)
at com.mysql.jdbc.Field.(Field.java:200)
at com.mysql.jdbc.MysqlIO.unpackField(MysqlIO.java:763)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:428)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:3131)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2299)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2722)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2809)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2758)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1612)
at com.mysql.jdbc.ConnectionImpl.loadServerVariables(ConnectionImpl.java:4179)
at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3582)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2531)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2301)
at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:834)
at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at gcb.bot.SQLThread.connection(SQLThread.java:98)
at gcb.bot.SQLThread.add(SQLThread.java:234)
at gcb.GChatBot.playerJoined(GChatBot.java:2078)
at gcb.GarenaInterface.readGCRPLoop(GarenaInterface.java:1159)
at gcb.GarenaThread.run(GarenaThread.java:34)

someonehelp me with this [SQL] Unable to connect to mysql database: Unknown character set index for field '255' received from server.

Very often breaks the connection for no reason

Very often breaks the connection for no reason.

TCP SETTINGS

The options below control the properties of gcb's

virtual TCP over UDP connection algorithm. Tweaking

them is not recommended for normal users because

the defaults should give optimal performance.

However, on some systems or configurations, other

values might be better.

Times are all set in milliseconds for this section.

the maximum number of packets to buffer before we stop sending packets

packets are only removed from the buffer when they are acknowledged by the remote end

#0 disables this function

a larger value is recommended if there is a greater ping

gcb_tcp_maxbufferedpackets = 500

Delay in milliseconds for standard retransmission of packets

If an acknowledgement packet is not sent for this delay, then the packet will be retransmitted

Note that gcb will dynamically determine the actual standard retransmission delay, this is only the initial value

gcb_tcp_standarddelay = 3000

timeout on packets sent from local connection until we do standard retransmission

this isn't too important anymore since we also standard retransmit every gcb_tcp_srttg milliseconds

gcb_tcp_sotimeout = 1000

the alpha value used to calculate smoothed round trip time

a higher value will change more quickly to new round trip time calculations

gcb_tcp_srttalpha = 0.125

the beta value used to calculate smoothed round trip time

this has same function as alpha, but for the variation in the SRTT

gcb_tcp_srttbeta = 0.25

the minimim round trip time (milliseconds)

gcb_tcp_srttlower = 10

the maximum round trip time (milliseconds)

gcb_tcp_srttupper = 60000

the clock granularity (milliseconds)

this is also how often we will check for standard retransmission of packets

Note that we still check at other times.

gcb_tcp_srttg = 20

the K value, should be 4

gcb_tcp_srttk = 4

maximum size of UDP packets to send

packets larger than this will be broken into small chunks

gcb_tcp_maxpacketsize = 512

maximum size of TCP packets to receive from local/remote

packets larger than this will be rejected

gcb_tcp_maxtcpsize = 2000

the maximum number of virtual TCP over UDP connections to allow per worker thread

gcb_tcp_connectionsperworker = 50

Invalid retransmission

conducted an experiment: wrote a program that, through Garena on TCP, sends packets to it. The packet is 8 bytes (4 headers and length, 4 more is an integer that is incremented by 1). The packets were transmitted every 200 ms. If the packet does not arrive within 1500 ms, a notification is displayed.

P.S. Packets are lost almost immediately so that every number that comes up is output.

Client log
The number in brackets is milliseconds since the start (client log)

[0] [GSERVER] starting winsock
[8] [GSERVER] setting process priority to "above normal"
[47] Connected!!!
[317] 1 Recerved
[508] 2 Recerved
[702] 3 Recerved
[918] 4 Recerved
[1130] 5 Recerved
[1294] 6 Recerved
[1484] 7 Recerved
[1685] 8 Recerved
[1881] 9 Recerved
[2081] 10 Recerved
[2361] 11 Recerved
[2506] 12 Recerved
[3463] 13 Recerved
[3463] 14 Recerved
[3464] 15 Recerved
[3465] 16 Recerved
[3482] 17 Recerved
[3774] 18 Recerved
[3892] 19 Recerved
[4095] 20 Recerved
[5304] 21 Recerved
[6810] The package is delayed (start lagging)
[7828] 22 Recerved
[7828] Stop Lagging (size buffer 8
[7981] 23 Recerved
[7982] 24 Recerved
[7983] 25 Recerved
[7983] 26 Recerved
[7984] 27 Recerved
[7985] 28 Recerved
[7986] 29 Recerved
[7987] 30 Recerved
[7988] 31 Recerved
[7989] 32 Recerved
[7991] 33 Recerved
[7992] 34 Recerved
[7994] 35 Recerved
[7995] 36 Recerved
[7996] 37 Recerved
[7997] 38 Recerved
[7998] 39 Recerved
[8118] 40 Recerved
[8313] 41 Recerved
[8814] 42 Recerved
[8815] 43 Recerved
[8908] 44 Recerved
[9103] 45 Recerved
[9307] 46 Recerved
[9491] 47 Recerved
[9707] 48 Recerved
[9920] 49 Recerved
[10149] 50 Recerved
[10801] 51 Recerved
[10802] 52 Recerved
[10803] 53 Recerved
[10904] 54 Recerved
[11104] 55 Recerved
[11313] 56 Recerved
[12174] 57 Recerved
[12175] 58 Recerved
[12176] 59 Recerved
[12177] 60 Recerved
[12306] 61 Recerved
[13002] 62 Recerved
[13003] 63 Recerved
[13004] 64 Recerved
[13102] 65 Recerved
[14608] The package is delayed (start lagging)
[16182] 66 Recerved
[16183] Stop Lagging (size buffer 8
[16184] 67 Recerved
[16185] 68 Recerved
[16186] 69 Recerved
[16187] 70 Recerved
[16188] 71 Recerved
[16189] 72 Recerved
[17696] The package is delayed (start lagging)
[20285] 100 Sended
[23253] 73 Recerved
[23254] Stop Lagging (size buffer 8
[23256] 74 Recerved
[23257] 75 Recerved
[23258] 76 Recerved
[23259] 77 Recerved
[23260] 78 Recerved
[23261] 79 Recerved
[23262] 80 Recerved
[23264] 81 Recerved
[23265] 82 Recerved
[23266] 83 Recerved
[23267] 84 Recerved
[23269] 85 Recerved
[23270] 86 Recerved
[23271] 87 Recerved
[23273] 88 Recerved
[23274] 89 Recerved
[23276] 90 Recerved
[23277] 91 Recerved
[24783] The package is delayed (start lagging)
[40734] 200 Sended
[47394] 92 Recerved
[47394] Stop Lagging (size buffer 8
[47396] 93 Recerved
[47397] 94 Recerved
[47398] 95 Recerved
[47399] 96 Recerved
[47400] 97 Recerved
[47401] 98 Recerved
[47402] 99 Recerved
[47404] 100 Recerved
[47405] 101 Recerved
[47406] 102 Recerved
[47407] 103 Recerved
[47408] 104 Recerved
[47410] 105 Recerved
[47410] 106 Recerved
[47411] 107 Recerved
[47413] 108 Recerved
[48920] The package is delayed (start lagging)
[61109] 300 Sended
[81555] 400 Sended
[102002] 500 Sended
[122438] 600 Sended
[142861] 700 Sended
[163241] 800 Sended
[183614] 900 Sended
[203998] 1000 Sended
[224398] 1100 Sended
[244867] 1200 Sended
[265283] 1300 Sended
[285691] 1400 Sended
[306086] 1500 Sended
[326489] 1600 Sended
[346897] 1700 Sended
[367353] 1800 Sended
[387739] 1900 Sended
[408152] 2000 Sended
[428577] 2100 Sended
[448988] 2200 Sended
[469384] 2300 Sended
[489790] 2400 Sended
[510147] 2500 Sended
[530521] 2600 Sended
[550953] 2700 Sended
[571399] 2800 Sended
[591808] 2900 Sended
[612226] 3000 Sended
[632637] 3100 Sended
[641694] [TCPSOCKET] error (recv) - ECONNRESET
[641695] ECONNRESET
Для продолжения нажмите любую клавишу . . .

Server log

Lost (but the server gets the packages correctly)

For comparison, the client log with the load but only when connected via TCP directly (the number of times in 100 is displayed)

[50] [GSERVER] starting winsock
[55] [GSERVER] setting process priority to "above normal"
[240] Connected!!!
[20095] 100 Recerved
[20206] 100 Sended
[26479] The package is delayed (start lagging)
[26624] Stop Lagging (size buffer 40
[28132] The package is delayed (start lagging)
[28234] Stop Lagging (size buffer 64
[29850] The package is delayed (start lagging)
[29968] Stop Lagging (size buffer 16
[36673] The package is delayed (start lagging)
[40716] 200 Sended
[45956] Stop Lagging (size buffer 16
[47462] The package is delayed (start lagging)
[56944] Stop Lagging (size buffer 432
[56945] 200 Recerved
[60198] The package is delayed (start lagging)
[60542] Stop Lagging (size buffer 64
[61146] 300 Sended
[62049] The package is delayed (start lagging)
[63693] Stop Lagging (size buffer 72
[63695] 300 Recerved
[66203] The package is delayed (start lagging)
[67586] Stop Lagging (size buffer 40
[75641] The package is delayed (start lagging)
[77023] Stop Lagging (size buffer 16
[80443] The package is delayed (start lagging)
[81587] 400 Sended
[84484] Stop Lagging (size buffer 16
[84611] 400 Recerved
[86827] The package is delayed (start lagging)
[87004] Stop Lagging (size buffer 16
[96611] The package is delayed (start lagging)
[97993] Stop Lagging (size buffer 16
[100731] 500 Recerved
[102044] 500 Sended
[115239] The package is delayed (start lagging)
[115411] Stop Lagging (size buffer 16
[121454] 600 Recerved
[122455] 600 Sended
[129490] The package is delayed (start lagging)
[129611] Stop Lagging (size buffer 16
[139914] The package is delayed (start lagging)
[142886] 700 Sended
[143673] Stop Lagging (size buffer 40
[144365] 700 Recerved
[147360] The package is delayed (start lagging)
[163288] 800 Sended
[183714] 900 Sended
[204136] 1000 Sended
[224573] 1100 Sended
[245005] 1200 Sended
[265446] 1300 Sended
[285883] 1400 Sended
[289142] [TCPSOCKET] error (recv) - ECONNRESET
[289148] ECONNRESET
Для продолжения нажмите любую клавишу . . .

After 200, there was a large load on the channel until the moment of rupture

Worker de-allocation

TCP worker threads should be de-allocated when they are no longer needed. This isn't too important since anyway they will idle if they are not assigned any connections.

Tunnel Mechanics

Can I write to skype? I would like to know more about the work of the tunnel

what is the problem

D:\My Files\My Games\GCB\gcb-gcb1.0.1\bin>java -jar gcb.jar
gcb 1.0.1
[GInterface 1] Initializing...
[GEncrypt] Initializing AES Keys...
[GEncrypt] Initializing RSA Keys...
[GEncrypt] Reading private key in PEM format...
[GInterface 1] Connecting to 119.28.110.234...
[GInterface 1] Using local port: 54071
[GInterface 1] Initializing peer socket...
[GInterface 1] Autoset peerport=62216
[GInterface 1] Sending GSP session init...
[GInterface 1] Reading GSP session init reply...
[GInterface 1] GSP session init reply received!
[GInterface 1] Sending GSP session hello...
[GInterface 1] Reading GSP session hello reply...
[GInterface 1] GSP session hello reply received!
[GInterface 1] Sending GSP session login...
[GEncrypt] Internal IP address determined at 192.168.254.173
[GInterface 1] Reading GSP session login reply...
[GInterface 1] Successfully logged in!
[GInterface 1] Server says your ID is: 436382918
[GInterface 1] Server says your username is: BOT-ENT.HOSTING
[GInterface 1] Server says your country is: PH
[GInterface 1] Server says your experience is: 1
[GInterface 1] Server says your email address is:
[Main] Waiting for lookup response on connection 1...
[GInterface 1] PeerLoop: set address to 110.54.240.18 and port to 12797
[Main] Received lookup response!
[GInterface 1] Connecting to room...
[GInterface 1] Conducting hostname lookup...
[GInterface 1] Connecting to 203.117.124.13...
[STATUS] connected: 0 (max: 0/0); mem: 15872 KB; threads: 17; rooms/users: 1/0; up: 10s
[GInterface 1] Error while connecting to room host: Connection timed out: connect
[GarenaReconnect] GARENA_ROOM disconnected; reconnecting shortly...

How rebordcast game from warcraft III?

How rebordcast game from warcraft III? how to setup config GCB that start rebordcast Warcraft III game at garena. I do not want to use Ghost

In short, I want to make it through GCB so that the game can be seen in 2+ rooms without the Ghost

Sent whisper to players

*_UPDATED_ will be great if gcb can inform (via a whisper, not a chat window) a banned player when try to join in lobby like this: [GCB] you are banned: reason : bla bla bla
A garena player, ofcourse.

Set room limit

Can we get a feature to enforce a room limit?
For example, to kick anyone who joins if there are more than 225 people in a room.

fix problem

hi
fix rank Vip in GCB

See [03:48:14] [System Message] V.I.P < username> has entered the room

plz fix it

&
all commands to Whisper display Except Command : Staff

TanQ

Can you update the bot problems be fix ?

This is very important. Please Fix problem !!

As will be better?

As will be better?

Now I have: GCB + Ghost1 + Ghost2 + Ghost3 + Ghost4
Can do so: GCB + Ghost1, GCB + Ghost2, GCB + Ghost3, GCB + Ghost4 ?

Linux: Linux version 3.2.0-4-amd64 ([email protected]) x
x Build: (gcc version 4.6.3 (Debian 4.6.3-14) ) x
x Release : 3.2.0-4-amd64 x
x Version : #1 SMP Debian 3.2.60-1+deb7u3 x
x cpuinfo: model name : Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz x
x cpuinfo: vendor_id : GenuineIntel x
x cpuinfo: microcode : 0x424 x
x cpuinfo: cpuid level : 13 x
x # of CPUs: 20 x
x Machine : x86_64

GCB autobanned

Hi guys,
After 2 years I tried to host to russia TD rooms and every time I'm auto banned with reason "bot-detected".
It looks like gcb has a signature and the russians stuf kick and ban all the bots who don't pay for hosting, Garena Singapore don't care about that, they abandoned the support for w3.
Question. How they detect the gcb signature? if i join with garena client i'm not banned.

Spam in chat and Terminating connection

Hello guys. GCB often spam about creating games, how to remove spam chat Garena? I use bot Ghost one 1.17
Uakfdotb, u can help me?

And when you try to log into the game, the bot will not let me, maybe the problem the keys.
Logs :
Detected new game with name -ap test; generated entry key: -2048569853 (original: 67305985)
[Oct 9, 2017 9:01:03 AM] [GInterface] Starting TCP connection with Sefanreid
[Oct 9, 2017 9:01:03 AM] [GarenaTCP] Starting new virtual TCP connection -913651317 with user Sefanreid at /95.72.133.108 to 6113
[Oct 9, 2017 9:01:03 AM] [GarenaTCP] User Sefanreid tried to connect on port 6113; terminating
[Oct 9, 2017 9:01:03 AM] [GarenaTCP] Terminating connection -913651317 with /95.72.133.108 (Sefanreid)
[Oct 9, 2017 9:01:03 AM] [GInterface] User requested termination on connection -913651317
[Oct 9, 2017 9:01:03 AM] [GarenaTCP] Terminating connection -913651317 with /95.72.133.108 (Sefanreid)
[Oct 9, 2017 9:01:03 AM] [GInterface] Warning: CONN packet received from user 354312832 at /95.72.133.108, but connection -913651317 not started with user

Feature request: wisp to inform players

will be great if gcb can inform (via a whisper, not a chat window) a banned player when try to join in lobby like this: [GCB] you are banned: reason : MH#.
And the second part is to inform players who try to join in lobby but is full: wisper "no more free slots". i req. this becouse some players think are banned when gamelist show 10/11 and they cannot join.

Connection hash: include member ID

Currently the connection is only mapped by connection ID, which means that if someone connects with a duplicate connection ID their connection will be rejected (or occasionally it may even overwrite another player's connection!). Ideally we should be able to handle duplicate connection ID's, by including the member ID in the mapping. But since the mapping is accessed on each packet, it needs to be very efficient.

Help compiled GCB

Help compiled GCB.

I run command:
javac -classpath .:../bin/lib/* gcb/Main.java
java -classpath .:../bin/lib/* gcb.Main

All is well, GCB works. How now do it in gcb.jar?

MD5 encryption NullPointerException

Got an issue when running GCB.

[GInterface 1] Sending GCRP me join...
[GEncrypt] Internal IP address determined at 192.168.1.8
[GInterface 1] deflated myinfo block from 92 bytes to 57 bytes
Exception in thread "Thread-4" java.lang.NullPointerException
        at gcb.GarenaEncrypt.md5(GarenaEncrypt.java:149)
        at gcb.GarenaInterface.sendGCRPMeJoin(GarenaInterface.java:1037)
        at gcb.Main.initRoom(Main.java:309)
        at gcb.ConnectWorkerPool$ConnectWorker.run(ConnectWorkerPool.java:105)

Will gcb work if I change gcb_broadcastport?

Java binds 6112 port by default settings, which makes warcraft III unusable, cause it too wants to bind this port.
{Everyone else joins my ghost++ game on PC just fine, and play without me ;( }.
Question is, if I change it to another number, will Garena clients still be able to connect to my Ghost++ instance?

Log level

Add log level to control what you want to have in your log.

Multithreaded room connection

Currently, on startup gcb connects to the room connnections sequentially. While this is a bit useful to decrease network load, Garena's servers don't seem to have any anti-flood protection and the bandwidth used in connecting is negligible.

There are two possibilities for improving this, so that we can connect to multiple rooms at the same time, greatly decreasing the startup time:

  1. Add a separate thread for each room to connect to. This could have heavy load if we're connecting to a lot of rooms.

  2. Add a configuration parameter for the number of worker threads to use for connecting to rooms on startup. Each worker connects to one room at a time, but there are multiple workers.

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.