uakfdotb / gcb Goto Github PK
View Code? Open in Web Editor NEWgcb
Home Page: https://www.ghostpp.com/forum/index.php?board=9.0
License: Other
gcb
Home Page: https://www.ghostpp.com/forum/index.php?board=9.0
License: Other
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
I want to change some behaviour in GarenaTCP, if players is downloading map.
I reviewed the code and i can not find any solution to know it.
Is it possible to send from Ghost++ to GCB when player 'start downloading' and when player 'finished downloading'?
please update rooms ID
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)
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
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.
please implement a code with bot status, or better with rooms status. Then to view status(connected/disconected/banned/full rooms/..) in php like in this example: https://github.com/OHSystem/OHSystem/blob/master/openstats/install/simple_bot_status.php
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)
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.
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
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.18the 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 = 60whether 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, mbgcb_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 = rootJDBC 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 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.
[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.
#0 disables this function
gcb_tcp_maxbufferedpackets = 500
gcb_tcp_standarddelay = 3000
gcb_tcp_sotimeout = 1000
gcb_tcp_srttalpha = 0.125
gcb_tcp_srttbeta = 0.25
gcb_tcp_srttlower = 10
gcb_tcp_srttupper = 60000
gcb_tcp_srttg = 20
gcb_tcp_srttk = 4
gcb_tcp_maxpacketsize = 512
gcb_tcp_maxtcpsize = 2000
gcb_tcp_connectionsperworker = 50
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
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.
Can I write to skype? I would like to know more about the work of the tunnel
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...
del me
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
*_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.
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.
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?
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
[GInterface 50] Unable to locate main host: con3.garenaconnect.com
[GarenaReconnect] GARENA_MAIN disconnected; reconnecting shortly...
@uakfdotb con3.garenaconnect.com - not work. How to fix?
Can we decrypt mappath in REVERSE and make a variable 'mappath' in REVERSE?
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.
The reconnection system fails if the initial connection fails. Could be caused by some exception fatal'ing the initial reconnection.
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
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.
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.
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?
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)
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?
Add log level to control what you want to have in your log.
For some Reason i get all the time this issue [GInterface 1] Decryption error in readGSPSessionInitReply: Illegal key size
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:
Add a separate thread for each room to connect to. This could have heavy load if we're connecting to a lot of rooms.
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.
this is working mainhost 119.28.105.188
but when i run GCB it always say my username or passwork is invalid.
but its not invalid
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.