mirror of
https://github.com/moparisthebest/MoparClassic
synced 2024-12-21 15:08:50 -05:00
commit
c8312b5298
456
Database.sql
456
Database.sql
@ -1,7 +1,7 @@
|
||||
-- MoparRSC DB Structure
|
||||
--
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 5.1.49-1ubuntu8.1
|
||||
-- Server version 5.1.49-1ubuntu8.1-log
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
@ -20,42 +20,24 @@
|
||||
|
||||
CREATE DATABASE IF NOT EXISTS moparclassic;
|
||||
USE moparclassic;
|
||||
CREATE TABLE `moparclassic`.`bans` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`username` varchar(200) DEFAULT NULL,
|
||||
`ip` varchar(255) DEFAULT NULL,
|
||||
`email` varchar(80) DEFAULT NULL,
|
||||
`message` varchar(255) DEFAULT NULL,
|
||||
`expire` int(10) unsigned DEFAULT NULL,
|
||||
`ban_creator` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `bans_username_idx` (`username`(25))
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
CREATE TABLE `moparclassic`.`categories` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`cat_name` varchar(80) NOT NULL DEFAULT 'New Category',
|
||||
`disp_position` int(10) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `moparclassic`.`censoring` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`search_for` varchar(60) NOT NULL DEFAULT '',
|
||||
`replace_with` varchar(60) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
CREATE TABLE `moparclassic`.`config` (
|
||||
`conf_name` varchar(255) NOT NULL DEFAULT '',
|
||||
`conf_value` text,
|
||||
PRIMARY KEY (`conf_name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
--
|
||||
-- Definition of table `moparclassic`.`drops`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`drops`;
|
||||
CREATE TABLE `moparclassic`.`drops` (
|
||||
`id` int(11) DEFAULT NULL,
|
||||
`item` varchar(255) DEFAULT NULL,
|
||||
`amount` int(11) DEFAULT NULL,
|
||||
`weight` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`dupe_data`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`dupe_data`;
|
||||
CREATE TABLE `moparclassic`.`dupe_data` (
|
||||
`user` varchar(255) NOT NULL,
|
||||
`userhash` varchar(255) NOT NULL,
|
||||
@ -63,92 +45,33 @@ CREATE TABLE `moparclassic`.`dupe_data` (
|
||||
`time` varchar(255) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`error_reports`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`error_reports`;
|
||||
CREATE TABLE `moparclassic`.`error_reports` (
|
||||
`data` text,
|
||||
`email` varchar(255) DEFAULT NULL,
|
||||
`ip` varchar(255) DEFAULT NULL,
|
||||
`unix` varchar(255) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE `moparclassic`.`forum_perms` (
|
||||
`group_id` int(10) NOT NULL DEFAULT '0',
|
||||
`forum_id` int(10) NOT NULL DEFAULT '0',
|
||||
`read_forum` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`post_replies` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`post_topics` tinyint(1) NOT NULL DEFAULT '1',
|
||||
PRIMARY KEY (`group_id`,`forum_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
CREATE TABLE `moparclassic`.`forums` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`forum_name` varchar(80) NOT NULL DEFAULT 'New forum',
|
||||
`forum_desc` text,
|
||||
`redirect_url` varchar(100) DEFAULT NULL,
|
||||
`moderators` text,
|
||||
`num_topics` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
`num_posts` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
`last_post` int(10) unsigned DEFAULT NULL,
|
||||
`last_post_id` int(10) unsigned DEFAULT NULL,
|
||||
`last_poster` varchar(200) DEFAULT NULL,
|
||||
`sort_by` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`disp_position` int(10) NOT NULL DEFAULT '0',
|
||||
`cat_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`gp_count`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`gp_count`;
|
||||
CREATE TABLE `moparclassic`.`gp_count` (
|
||||
`unixtime` varchar(255) DEFAULT NULL,
|
||||
`amount` varchar(255) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE `moparclassic`.`groups` (
|
||||
`g_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`g_title` varchar(50) NOT NULL DEFAULT '',
|
||||
`g_user_title` varchar(50) DEFAULT NULL,
|
||||
`g_moderator` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`g_mod_edit_users` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`g_mod_rename_users` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`g_mod_change_passwords` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`g_mod_ban_users` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`g_read_board` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_view_users` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_post_replies` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_post_topics` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_edit_posts` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_delete_posts` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_delete_topics` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_set_title` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_search` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_search_users` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_send_email` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_post_flood` smallint(6) NOT NULL DEFAULT '30',
|
||||
`g_search_flood` smallint(6) NOT NULL DEFAULT '30',
|
||||
`g_email_flood` smallint(6) NOT NULL DEFAULT '60',
|
||||
PRIMARY KEY (`g_id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `moparclassic`.`invites` (
|
||||
`owner` varchar(255) NOT NULL DEFAULT '',
|
||||
`code` varchar(255) NOT NULL DEFAULT '',
|
||||
`time` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`invites` varchar(255) NOT NULL DEFAULT '1',
|
||||
`email` varchar(255) NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE `moparclassic`.`irc_online` (
|
||||
`username` varchar(255) NOT NULL,
|
||||
`rank` int(1) DEFAULT NULL,
|
||||
PRIMARY KEY (`username`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE `moparclassic`.`irc_stats` (
|
||||
`username` varchar(255) NOT NULL,
|
||||
`messages` int(10) DEFAULT NULL,
|
||||
`modes` int(10) DEFAULT NULL,
|
||||
`kicks` int(10) DEFAULT NULL,
|
||||
`kicked` int(10) DEFAULT NULL,
|
||||
`lastTimeSpoken` bigint(11) DEFAULT NULL,
|
||||
`joins` int(10) DEFAULT NULL,
|
||||
`parts` int(10) DEFAULT NULL,
|
||||
`randomstring` text,
|
||||
`moderatedchan` int(10) DEFAULT NULL,
|
||||
PRIMARY KEY (`username`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
--
|
||||
-- Definition of table `moparclassic`.`items`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`items`;
|
||||
CREATE TABLE `moparclassic`.`items` (
|
||||
`id` int(11) DEFAULT NULL,
|
||||
`name` varchar(255) DEFAULT NULL,
|
||||
@ -157,41 +80,22 @@ CREATE TABLE `moparclassic`.`items` (
|
||||
`stackable` varchar(255) DEFAULT NULL,
|
||||
`wieldable` varchar(255) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE `moparclassic`.`logins` (
|
||||
`id` int(10) DEFAULT NULL,
|
||||
`login_ip` varchar(15) DEFAULT NULL,
|
||||
`time` int(10) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE `moparclassic`.`messages` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`owner` int(10) NOT NULL DEFAULT '0',
|
||||
`subject` varchar(120) NOT NULL DEFAULT '',
|
||||
`message` text,
|
||||
`sender` varchar(120) NOT NULL DEFAULT '',
|
||||
`sender_id` int(10) NOT NULL DEFAULT '0',
|
||||
`posted` int(10) NOT NULL DEFAULT '0',
|
||||
`sender_ip` varchar(120) NOT NULL DEFAULT '0.0.0.0',
|
||||
`smileys` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`status` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`showed` tinyint(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `messages_owner_idx` (`owner`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=23964 DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE `moparclassic`.`online` (
|
||||
`user_id` int(10) unsigned NOT NULL DEFAULT '1',
|
||||
`ident` varchar(200) NOT NULL DEFAULT '',
|
||||
`logged` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`idle` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`last_post` int(10) unsigned DEFAULT NULL,
|
||||
`last_search` int(10) unsigned DEFAULT NULL,
|
||||
UNIQUE KEY `online_user_id_ident_idx` (`user_id`,`ident`(25)),
|
||||
KEY `online_ident_idx` (`ident`(25)),
|
||||
KEY `online_logged_idx` (`logged`)
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`online_count`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`online_count`;
|
||||
CREATE TABLE `moparclassic`.`online_count` (
|
||||
`unixtime` varchar(255) DEFAULT NULL,
|
||||
`online` int(20) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_bank`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_bank`;
|
||||
CREATE TABLE `moparclassic`.`pk_bank` (
|
||||
`user` varchar(255) DEFAULT NULL,
|
||||
`id` int(10) unsigned NOT NULL,
|
||||
@ -202,6 +106,11 @@ CREATE TABLE `moparclassic`.`pk_bank` (
|
||||
KEY `amount` (`amount`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_banlog`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_banlog`;
|
||||
CREATE TABLE `moparclassic`.`pk_banlog` (
|
||||
`user` varchar(255) DEFAULT NULL,
|
||||
`staff` varchar(255) DEFAULT NULL,
|
||||
@ -210,6 +119,12 @@ CREATE TABLE `moparclassic`.`pk_banlog` (
|
||||
KEY `time` (`time`),
|
||||
KEY `user` (`user`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_curstats`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_curstats`;
|
||||
CREATE TABLE `moparclassic`.`pk_curstats` (
|
||||
`user` varchar(255) NOT NULL,
|
||||
`cur_attack` int(5) unsigned NOT NULL DEFAULT '1',
|
||||
@ -235,6 +150,11 @@ CREATE TABLE `moparclassic`.`pk_curstats` (
|
||||
KEY `user` (`user`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=350943 DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_experience`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_experience`;
|
||||
CREATE TABLE `moparclassic`.`pk_experience` (
|
||||
`user` varchar(255) NOT NULL,
|
||||
`exp_attack` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
@ -278,18 +198,35 @@ CREATE TABLE `moparclassic`.`pk_experience` (
|
||||
KEY `user` (`user`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=350943 DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_friends`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_friends`;
|
||||
CREATE TABLE `moparclassic`.`pk_friends` (
|
||||
`user` varchar(255) NOT NULL,
|
||||
`friend` varchar(255) NOT NULL,
|
||||
KEY `user` (`user`),
|
||||
KEY `friend` (`friend`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_ignores`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_ignores`;
|
||||
CREATE TABLE `moparclassic`.`pk_ignores` (
|
||||
`user` varchar(255) NOT NULL,
|
||||
`ignore` varchar(255) NOT NULL,
|
||||
KEY `ignore` (`ignore`),
|
||||
KEY `user` (`user`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_invitems`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_invitems`;
|
||||
CREATE TABLE `moparclassic`.`pk_invitems` (
|
||||
`user` varchar(255) NOT NULL,
|
||||
`id` int(10) unsigned NOT NULL,
|
||||
@ -299,17 +236,34 @@ CREATE TABLE `moparclassic`.`pk_invitems` (
|
||||
KEY `user` (`user`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_ipbans`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_ipbans`;
|
||||
CREATE TABLE `moparclassic`.`pk_ipbans` (
|
||||
`ip` varchar(15) NOT NULL,
|
||||
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`ip`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_kills`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_kills`;
|
||||
CREATE TABLE `moparclassic`.`pk_kills` (
|
||||
`user` varchar(255) NOT NULL,
|
||||
`type` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`killed` varchar(45) NOT NULL,
|
||||
`time` int(10) NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_logins`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_logins`;
|
||||
CREATE TABLE `moparclassic`.`pk_logins` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`user` varchar(45) NOT NULL,
|
||||
@ -317,8 +271,13 @@ CREATE TABLE `moparclassic`.`pk_logins` (
|
||||
`ip` varchar(15) NOT NULL DEFAULT '0.0.0.0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `ip` (`ip`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=4254489 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=4254616 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_market`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_market`;
|
||||
CREATE TABLE `moparclassic`.`pk_market` (
|
||||
`owner` int(10) NOT NULL,
|
||||
`item_id` int(10) NOT NULL,
|
||||
@ -326,6 +285,12 @@ CREATE TABLE `moparclassic`.`pk_market` (
|
||||
`selling_price` int(10) NOT NULL,
|
||||
PRIMARY KEY (`owner`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_mutelog`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_mutelog`;
|
||||
CREATE TABLE `moparclassic`.`pk_mutelog` (
|
||||
`user` varchar(255) NOT NULL,
|
||||
`staff` varchar(255) NOT NULL,
|
||||
@ -333,6 +298,12 @@ CREATE TABLE `moparclassic`.`pk_mutelog` (
|
||||
`report_id` int(11) NOT NULL,
|
||||
`duration` int(10) NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_online`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_online`;
|
||||
CREATE TABLE `moparclassic`.`pk_online` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`user` varchar(45) NOT NULL,
|
||||
@ -342,6 +313,12 @@ CREATE TABLE `moparclassic`.`pk_online` (
|
||||
`world` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC COMMENT='InnoDB free: 9216 kB';
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_players`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_players`;
|
||||
CREATE TABLE `moparclassic`.`pk_players` (
|
||||
`user` varchar(255) NOT NULL,
|
||||
`username` varchar(255) NOT NULL DEFAULT '',
|
||||
@ -393,6 +370,11 @@ CREATE TABLE `moparclassic`.`pk_players` (
|
||||
KEY `user` (`user`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=350944 DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 9216 kB';
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_quests`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_quests`;
|
||||
CREATE TABLE `moparclassic`.`pk_quests` (
|
||||
`id` int(11) DEFAULT NULL,
|
||||
`stage` int(11) DEFAULT NULL,
|
||||
@ -400,6 +382,11 @@ CREATE TABLE `moparclassic`.`pk_quests` (
|
||||
KEY `user` (`user`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_reports`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_reports`;
|
||||
CREATE TABLE `moparclassic`.`pk_reports` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`from` varchar(255) NOT NULL,
|
||||
@ -418,6 +405,12 @@ CREATE TABLE `moparclassic`.`pk_reports` (
|
||||
`sendToMod` int(11) DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=4340 DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_reports_comments`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_reports_comments`;
|
||||
CREATE TABLE `moparclassic`.`pk_reports_comments` (
|
||||
`id` int(10) NOT NULL AUTO_INCREMENT,
|
||||
`report_id` int(10) NOT NULL,
|
||||
@ -426,6 +419,12 @@ CREATE TABLE `moparclassic`.`pk_reports_comments` (
|
||||
`text` text NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=4222 DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_stat_reduction`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_stat_reduction`;
|
||||
CREATE TABLE `moparclassic`.`pk_stat_reduction` (
|
||||
`user` int(10) NOT NULL,
|
||||
`account` varchar(255) NOT NULL,
|
||||
@ -434,6 +433,12 @@ CREATE TABLE `moparclassic`.`pk_stat_reduction` (
|
||||
`voucher` varchar(255) DEFAULT NULL,
|
||||
`time` int(11) NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_tradelog`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_tradelog`;
|
||||
CREATE TABLE `moparclassic`.`pk_tradelog` (
|
||||
`from` varchar(255) DEFAULT NULL,
|
||||
`to` varchar(255) DEFAULT NULL,
|
||||
@ -448,6 +453,11 @@ CREATE TABLE `moparclassic`.`pk_tradelog` (
|
||||
KEY `tradelog_time` (`time`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Definition of table `moparclassic`.`pk_worlds`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `moparclassic`.`pk_worlds`;
|
||||
CREATE TABLE `moparclassic`.`pk_worlds` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`location` varchar(45) NOT NULL,
|
||||
@ -455,182 +465,6 @@ CREATE TABLE `moparclassic`.`pk_worlds` (
|
||||
`port` varchar(45) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
|
||||
CREATE TABLE `moparclassic`.`posts` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`poster` varchar(200) NOT NULL DEFAULT '',
|
||||
`poster_id` int(10) unsigned NOT NULL DEFAULT '1',
|
||||
`poster_ip` varchar(39) DEFAULT NULL,
|
||||
`poster_email` varchar(80) DEFAULT NULL,
|
||||
`message` text,
|
||||
`hide_smilies` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`posted` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`edited` int(10) unsigned DEFAULT NULL,
|
||||
`edited_by` varchar(200) DEFAULT NULL,
|
||||
`topic_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `posts_topic_id_idx` (`topic_id`),
|
||||
KEY `posts_multi_idx` (`poster_id`,`topic_id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `moparclassic`.`ranks` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`rank` varchar(50) NOT NULL DEFAULT '',
|
||||
`min_posts` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `moparclassic`.`reports` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`post_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`topic_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`forum_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`reported_by` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`created` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`message` text,
|
||||
`zapped` int(10) unsigned DEFAULT NULL,
|
||||
`zapped_by` int(10) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `reports_zapped_idx` (`zapped`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
CREATE TABLE `moparclassic`.`reputation` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`from_user_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`time` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`post_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`reason` text NOT NULL,
|
||||
`rep_plus` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||
`rep_minus` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||
`topics_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `rep_post_id_idx` (`post_id`),
|
||||
KEY `rep_multi_user_id_idx` (`topics_id`,`from_user_id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=15940 DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE `moparclassic`.`search_cache` (
|
||||
`id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`ident` varchar(200) NOT NULL DEFAULT '',
|
||||
`search_data` mediumtext,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `search_cache_ident_idx` (`ident`(8))
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
CREATE TABLE `moparclassic`.`search_matches` (
|
||||
`post_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`word_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`subject_match` tinyint(1) NOT NULL DEFAULT '0',
|
||||
KEY `search_matches_word_id_idx` (`word_id`),
|
||||
KEY `search_matches_post_id_idx` (`post_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `moparclassic`.`search_words` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`word` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`word`),
|
||||
KEY `search_words_id_idx` (`id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `moparclassic`.`stats` (
|
||||
`date` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`posts` varchar(255) NOT NULL DEFAULT '',
|
||||
`users` varchar(255) NOT NULL DEFAULT '',
|
||||
`players` varchar(255) NOT NULL DEFAULT '',
|
||||
`active_users` varchar(255) NOT NULL DEFAULT '',
|
||||
`active_players` varchar(255) NOT NULL DEFAULT '',
|
||||
`topics` varchar(255) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE `moparclassic`.`stats_2` (
|
||||
`logins` int(5) DEFAULT NULL,
|
||||
`unique_logins` int(5) DEFAULT NULL,
|
||||
`updated` int(11) DEFAULT NULL,
|
||||
`hits` int(5) DEFAULT NULL,
|
||||
`unique_hits` int(5) DEFAULT NULL,
|
||||
`alexa_rank` int(5) DEFAULT NULL,
|
||||
`kills` int(5) DEFAULT NULL,
|
||||
`total_kills` int(5) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE `moparclassic`.`subs` (
|
||||
`user_id` int(10) DEFAULT NULL,
|
||||
`months` int(10) DEFAULT NULL,
|
||||
`google_no` varchar(255) DEFAULT NULL,
|
||||
`redeem` int(10) DEFAULT NULL,
|
||||
`status` int(5) DEFAULT NULL,
|
||||
`order_time` int(10) DEFAULT NULL,
|
||||
`last_time` int(10) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE `moparclassic`.`subscriptions` (
|
||||
`user_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`topic_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`forum_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`user_id`,`topic_id`,`forum_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
CREATE TABLE `moparclassic`.`topics` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`poster` varchar(200) NOT NULL DEFAULT '',
|
||||
`subject` varchar(255) NOT NULL DEFAULT '',
|
||||
`posted` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`first_post_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`last_post` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`last_post_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`last_poster` varchar(200) DEFAULT NULL,
|
||||
`num_views` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
`num_replies` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
`closed` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`sticky` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`moved_to` int(10) unsigned DEFAULT NULL,
|
||||
`forum_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `topics_forum_id_idx` (`forum_id`),
|
||||
KEY `topics_moved_to_idx` (`moved_to`),
|
||||
KEY `topics_last_post_idx` (`last_post`),
|
||||
KEY `topics_first_post_id_idx` (`first_post_id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `moparclassic`.`users` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`group_id` int(10) unsigned NOT NULL DEFAULT '3',
|
||||
`username` varchar(200) NOT NULL DEFAULT '',
|
||||
`password` varchar(40) NOT NULL DEFAULT '',
|
||||
`email` varchar(80) NOT NULL DEFAULT '',
|
||||
`title` varchar(50) DEFAULT NULL,
|
||||
`realname` varchar(40) DEFAULT NULL,
|
||||
`url` varchar(100) DEFAULT NULL,
|
||||
`jabber` varchar(80) DEFAULT NULL,
|
||||
`icq` varchar(12) DEFAULT NULL,
|
||||
`msn` varchar(80) DEFAULT NULL,
|
||||
`aim` varchar(30) DEFAULT NULL,
|
||||
`yahoo` varchar(30) DEFAULT NULL,
|
||||
`location` varchar(30) DEFAULT NULL,
|
||||
`signature` text,
|
||||
`disp_topics` tinyint(3) unsigned DEFAULT NULL,
|
||||
`disp_posts` tinyint(3) unsigned DEFAULT NULL,
|
||||
`email_setting` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`notify_with_post` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`auto_notify` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`show_smilies` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`show_img` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`show_img_sig` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`show_avatars` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`show_sig` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`timezone` float NOT NULL DEFAULT '0',
|
||||
`dst` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`time_format` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`date_format` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`language` varchar(25) NOT NULL DEFAULT 'English',
|
||||
`style` varchar(25) NOT NULL DEFAULT 'Air',
|
||||
`num_posts` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`last_post` int(10) unsigned DEFAULT NULL,
|
||||
`last_search` int(10) unsigned DEFAULT NULL,
|
||||
`last_email_sent` int(10) unsigned DEFAULT NULL,
|
||||
`registered` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`registration_ip` varchar(39) NOT NULL DEFAULT '0.0.0.0',
|
||||
`last_visit` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`admin_note` varchar(30) DEFAULT NULL,
|
||||
`activate_string` varchar(80) DEFAULT NULL,
|
||||
`activate_key` varchar(8) DEFAULT NULL,
|
||||
`sub_expires` int(10) unsigned DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `users_username_idx` (`username`(25)),
|
||||
KEY `users_registered_idx` (`registered`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
|
@ -18,8 +18,26 @@
|
||||
|
||||
<entry key="members">false</entry>
|
||||
<entry key="f2pwildy">true</entry>
|
||||
|
||||
|
||||
<entry key="expRate">4.0</entry>
|
||||
<entry key="subExpRate">4.0</entry>
|
||||
<!-- The minimum level required for the player to get the non-combat bonus
|
||||
XP for being in the wilderness -->
|
||||
<entry key="wild-non-combat-min-level">999</entry>
|
||||
|
||||
<!-- The following two are rates that are added to the player's XP rate -->
|
||||
<entry key="wild-non-combat-bonus">0</entry>
|
||||
<entry key="wild-combat-bonus">0</entry>
|
||||
|
||||
<!-- The amount of time (in ms) that a player must stand still in the wild
|
||||
(without being in combat) before they can log out. The message will say they
|
||||
must wait x seconds. -->
|
||||
<entry key="wild-stand-still-time">10000</entry>
|
||||
|
||||
<!-- If true, a message will be sent to all online players when someone
|
||||
reaches the max level for a skill -->
|
||||
<entry key="max-level-congrats">false</entry>
|
||||
|
||||
<!-- Separate names by commas -->
|
||||
<entry key="pmods">None</entry>
|
||||
@ -27,7 +45,7 @@
|
||||
<entry key="admins">None</entry>
|
||||
|
||||
<entry key="ip-ban-removal-delay">1800000</entry>
|
||||
<entry key="os-level-blocking">true</entry>
|
||||
<entry key="os-level-blocking">false</entry>
|
||||
<entry key="os-level-block-command">sudo route add -host ${ip} reject</entry>
|
||||
<entry key="os-level-unblock-command">sudo route del -host ${ip} reject</entry>
|
||||
<entry key="application-level-blocking">true</entry>
|
||||
@ -44,8 +62,9 @@
|
||||
This uses a LRUMap, and only has a limited number of entries, so only the
|
||||
most active IPs will be stored at a time. -->
|
||||
<entry key="connection-throttle">5</entry>
|
||||
|
||||
|
||||
<!-- The amount of time (in ms) after a connection is closed that the count is kept.
|
||||
This is used to throttle spam logging. -->
|
||||
<entry key="connection-throttle-remove-delay">180000</entry>
|
||||
|
||||
<!-- Every 100 minutes -->
|
||||
<entry key="garbage-collect-interval">6000000</entry>
|
||||
|
@ -28,17 +28,20 @@ public class Config {
|
||||
|
||||
public static boolean members, f2pWildy, APPLICATION_LEVEL_BLOCKING;
|
||||
|
||||
public static double expRate, subExpRate;
|
||||
public static double expRate, subExpRate, WILD_NON_COMBAT_BONUS,
|
||||
WILD_COMBAT_BONUS;
|
||||
|
||||
public static String[] pmods, mods, admins;
|
||||
public static int IP_BAN_REMOVAL_DELAY;
|
||||
public static int GARBAGE_COLLECT_INTERVAL;
|
||||
public static int SAVE_INTERVAL;
|
||||
public static int IP_BAN_REMOVAL_DELAY, GARBAGE_COLLECT_INTERVAL,
|
||||
SAVE_INTERVAL;
|
||||
public static String DATE_FORMAT, BLOCK_COMMAND, UNBLOCK_COMMAND,
|
||||
ALERT_CONFIG, COMMAND_CONFIG;
|
||||
public static int CONNECTION_THROTTLE_SIZE;
|
||||
public static int CONNECTION_THROTTLE_SIZE,
|
||||
WILD_LEVEL_FOR_NON_COMBAT_BONUS, WILD_STAND_STILL_TIME,
|
||||
DELAY_REMOVAL;
|
||||
public static boolean OS_LEVEL_BLOCKING, APPLICATION_LEVEL_THROTTLE_ALERT,
|
||||
OS_LEVEL_THROTTLE_ALERT, OS_LEVEL_UNBLOCK_FAILED_ALERT;
|
||||
OS_LEVEL_THROTTLE_ALERT, OS_LEVEL_UNBLOCK_FAILED_ALERT,
|
||||
CONGRATS_FOR_MAX_LEVEL;
|
||||
|
||||
static {
|
||||
loadEnv();
|
||||
@ -102,6 +105,8 @@ public class Config {
|
||||
.getProperty("os-level-blocking-throttle-alert"));
|
||||
OS_LEVEL_UNBLOCK_FAILED_ALERT = Boolean.parseBoolean(props
|
||||
.getProperty("os-level-blocking-unblock-failed-alert"));
|
||||
DELAY_REMOVAL = Integer.parseInt(props
|
||||
.getProperty("connection-throttle-remove-delay"));
|
||||
|
||||
GARBAGE_COLLECT_INTERVAL = Integer.parseInt(props
|
||||
.getProperty("garbage-collect-interval"));
|
||||
@ -112,6 +117,17 @@ public class Config {
|
||||
ALERT_CONFIG = props.getProperty("alert-config");
|
||||
COMMAND_CONFIG = props.getProperty("command-config");
|
||||
|
||||
WILD_STAND_STILL_TIME = Integer.parseInt(props
|
||||
.getProperty("wild-stand-still-time"));
|
||||
WILD_LEVEL_FOR_NON_COMBAT_BONUS = Integer.parseInt(props
|
||||
.getProperty("wild-non-combat-min-level"));
|
||||
WILD_NON_COMBAT_BONUS = Double.parseDouble(props
|
||||
.getProperty("wild-non-combat-bonus"));
|
||||
WILD_COMBAT_BONUS = Double.parseDouble(props
|
||||
.getProperty("wild-combat-bonus"));
|
||||
CONGRATS_FOR_MAX_LEVEL = Boolean.parseBoolean(props
|
||||
.getProperty("max-level-congrats"));
|
||||
|
||||
props.clear();
|
||||
|
||||
Constants.GameServer.MOTD = "@yel@Welcome to @whi@"
|
||||
|
@ -79,6 +79,12 @@ public class Formulae {
|
||||
private static Random r = new Random();
|
||||
public static final int[] runeIDs = { 31, 32, 33, 34, 35, 36, 37, 38, 40,
|
||||
41, 42, 46, 619, 825 };
|
||||
/**
|
||||
* Safe packets:<br>
|
||||
* PlayerAppearanceUpdater<br>
|
||||
* FollowRequest<br>
|
||||
* InvUseOnItem<br>
|
||||
*/
|
||||
public static final int[] safePacketIDs = { 70, 123, 128, 255 };
|
||||
public static final String[] statArray = { "attack", "defense", "strength",
|
||||
"hits", "ranged", "prayer", "magic", "cooking", "woodcut",
|
||||
|
@ -1,34 +0,0 @@
|
||||
package org.moparscape.msc.gs;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.collections.map.LRUMap;
|
||||
|
||||
/**
|
||||
* A basic cache backed by a {@link LRUMap}.
|
||||
*
|
||||
* @author CodeForFame
|
||||
*
|
||||
*/
|
||||
public class Cache<K, V> {
|
||||
|
||||
private Map<K, V> cache;
|
||||
|
||||
public Cache() {
|
||||
this(100);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public Cache(int size) {
|
||||
cache = new LRUMap(size);
|
||||
}
|
||||
|
||||
public V get(K key) {
|
||||
return cache.get(key);
|
||||
}
|
||||
|
||||
public void put(K key, V value) {
|
||||
cache.put(key, value);
|
||||
}
|
||||
|
||||
}
|
@ -7,25 +7,34 @@ import org.apache.mina.common.IoFilter;
|
||||
import org.apache.mina.common.IoSession;
|
||||
import org.apache.mina.filter.BlacklistFilter;
|
||||
import org.moparscape.msc.config.Config;
|
||||
import org.moparscape.msc.gs.Instance;
|
||||
import org.moparscape.msc.gs.event.SingleEvent;
|
||||
import org.moparscape.msc.gs.util.Cache;
|
||||
|
||||
public class ConnectionFilter extends BlacklistFilter {
|
||||
private Cache<InetSocketAddress, Integer> connections = new Cache<InetSocketAddress, Integer>(
|
||||
private Cache<String, Integer> connections = new Cache<String, Integer>(
|
||||
Config.CONNECTION_THROTTLE_SIZE);
|
||||
|
||||
public void sessionCreated(IoFilter.NextFilter nextFilter, IoSession session) {
|
||||
final SocketAddress sa = session.getRemoteAddress();
|
||||
if (sa != null && sa instanceof InetSocketAddress) {
|
||||
final InetSocketAddress a = (InetSocketAddress) sa;
|
||||
if (IPBanManager.isBlocked(a)) {
|
||||
final String host = a.getAddress().getHostAddress();
|
||||
if (IPBanManager.isBlocked(host)) {
|
||||
block(a.getAddress());
|
||||
session.close();
|
||||
return;
|
||||
}
|
||||
final Integer val = connections.get(a);
|
||||
final Integer retVal = connections
|
||||
.put(a, val == null ? 1 : val + 1);
|
||||
if (retVal != null && retVal > Config.CONENCTION_THROTTLE_THRESHOLD) {
|
||||
Integer val;
|
||||
synchronized (connections) {
|
||||
val = connections.get(host);
|
||||
connections.put(host, val == null ? 1 : val + 1);
|
||||
}
|
||||
if (val != null
|
||||
&& val + 1 >= Config.CONENCTION_THROTTLE_THRESHOLD && !IPBanManager.isBlocked(host)) {
|
||||
IPBanManager.block(host);
|
||||
block(a.getAddress());
|
||||
session.close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -37,14 +46,42 @@ public class ConnectionFilter extends BlacklistFilter {
|
||||
final SocketAddress sa = session.getRemoteAddress();
|
||||
if (sa != null && sa instanceof InetSocketAddress) {
|
||||
final InetSocketAddress a = (InetSocketAddress) sa;
|
||||
final Integer val = connections.get(a);
|
||||
final Integer retVal = connections
|
||||
.put(a, val == null ? 1 : val + 1);
|
||||
if (retVal != null
|
||||
&& retVal - 1 <= Config.CONENCTION_THROTTLE_THRESHOLD) {
|
||||
unblock(a.getAddress());
|
||||
final Integer val;
|
||||
synchronized (connections) {
|
||||
val = connections.get(a.getAddress().getHostAddress());
|
||||
}
|
||||
if (val != null) {
|
||||
if (Config.DELAY_REMOVAL > 0) {
|
||||
Instance.getDelayedEventHandler().add(
|
||||
new SingleEvent(null, Config.DELAY_REMOVAL) {
|
||||
public void action() {
|
||||
unblock(a);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
unblock(a);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
super.sessionClosed(nextFilter, session);
|
||||
}
|
||||
|
||||
private void unblock(InetSocketAddress a) {
|
||||
final String host = a.getAddress().getHostAddress();
|
||||
final Integer val;
|
||||
synchronized (connections) {
|
||||
val = connections.get(host);
|
||||
if (val == 1) {
|
||||
connections.remove(host);
|
||||
} else {
|
||||
connections.put(host, val - 1);
|
||||
}
|
||||
}
|
||||
if (val != null && val - 1 < Config.CONENCTION_THROTTLE_THRESHOLD) {
|
||||
if (IPBanManager.isBlocked(a))
|
||||
IPBanManager.unblock(a);
|
||||
unblock(a.getAddress());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,13 +15,12 @@ import org.moparscape.msc.gs.db.DataRequestHandler
|
||||
|
||||
object IPBanManager extends Blocker {
|
||||
|
||||
override def isBlocked(ip: String) = {
|
||||
var v = false
|
||||
if (Config.APPLICATION_LEVEL_BLOCKING)
|
||||
v = ApplicationLevelBlocking.isBlocked(ip)
|
||||
if (Config.OS_LEVEL_BLOCKING)
|
||||
v = v || OSLevelBlocking.isBlocked(ip)
|
||||
v
|
||||
override def isBlocked(ip: String): Boolean = {
|
||||
if (Config.APPLICATION_LEVEL_BLOCKING && ApplicationLevelBlocking.isBlocked(ip))
|
||||
return true
|
||||
if (Config.OS_LEVEL_BLOCKING && OSLevelBlocking.isBlocked(ip))
|
||||
return true
|
||||
return false
|
||||
}
|
||||
|
||||
def isBlocked(ip: SocketAddress): Boolean = {
|
||||
@ -113,7 +112,7 @@ private object ApplicationLevelBlocking extends Blocker {
|
||||
private val events = Server.getServer().getEngine().getEventHandler()
|
||||
|
||||
override def isBlocked(ip: String) = {
|
||||
blocked.contains(ip)
|
||||
blocked.contains(ip) || throttled.contains(ip)
|
||||
}
|
||||
|
||||
override def block(ip: String) = {
|
||||
@ -185,7 +184,7 @@ private object OSLevelBlocking extends Blocker {
|
||||
private val events = Server.getServer().getEngine().getEventHandler()
|
||||
|
||||
override def isBlocked(ip: String) = {
|
||||
blocked.contains(ip)
|
||||
blocked.contains(ip) || throttled.contains(ip)
|
||||
}
|
||||
|
||||
override def throttle(ip: String) {
|
||||
|
@ -13,7 +13,7 @@ import org.moparscape.msc.config.Config;
|
||||
import org.moparscape.msc.gs.Instance;
|
||||
import org.moparscape.msc.gs.connection.PacketQueue;
|
||||
import org.moparscape.msc.gs.connection.RSCPacket;
|
||||
import org.moparscape.msc.gs.connection.filter.OSLevelBlocking;
|
||||
import org.moparscape.msc.gs.connection.filter.IPBanManager;
|
||||
import org.moparscape.msc.gs.event.DelayedEvent;
|
||||
import org.moparscape.msc.gs.model.ActiveTile;
|
||||
import org.moparscape.msc.gs.model.Npc;
|
||||
@ -228,7 +228,7 @@ public final class GameEngine extends Thread {
|
||||
if (player.getUsername() == null && p.getID() != 32
|
||||
&& p.getID() != 77 && p.getID() != 0) {
|
||||
final String ip = player.getCurrentIP();
|
||||
OSLevelBlocking.throttle(ip);
|
||||
IPBanManager.throttle(ip);
|
||||
continue;
|
||||
}
|
||||
PacketHandler handler = packetHandlers.get(p.getID());
|
||||
|
@ -584,6 +584,12 @@ public final class Player extends Mob {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method acts as a throttle for packets, and adds them to a list.<br>
|
||||
* If the player sends more than 20 packets per second they're disconnected (60 packets per 3000ms)
|
||||
*
|
||||
* @param p - the packet to add...
|
||||
*/
|
||||
public void addPacket(RSCPacket p) {
|
||||
long now = GameEngine.getTime();
|
||||
if (now - lastCount > 3000) {
|
||||
@ -591,7 +597,7 @@ public final class Player extends Mob {
|
||||
packetCount = 0;
|
||||
}
|
||||
if (!DataConversions.inArray(Formulae.safePacketIDs, p.getID())
|
||||
&& packetCount++ >= 60) {
|
||||
&& ++packetCount >= 60) {
|
||||
destroy(false);
|
||||
}
|
||||
if (lastPackets.size() >= 60) {
|
||||
@ -653,14 +659,14 @@ public final class Player extends Mob {
|
||||
public boolean canLogout() {
|
||||
if (this != null && this.location != null
|
||||
&& this.location.inWilderness()) {
|
||||
if (GameEngine.getTime() - this.getLastMoved() < 10000) {
|
||||
if (GameEngine.getTime() - this.getLastMoved() < Config.WILD_STAND_STILL_TIME) {
|
||||
getActionSender()
|
||||
.sendMessage(
|
||||
"You must stand peacefully in one place for 10 seconds!");
|
||||
"You must stand peacefully in one place for " + Config.WILD_STAND_STILL_TIME + " seconds!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return !isBusy() && GameEngine.getTime() - getCombatTimer() > 10000;
|
||||
return !isBusy() && GameEngine.getTime() - getCombatTimer() > Config.WILD_STAND_STILL_TIME;
|
||||
}
|
||||
|
||||
public boolean canReport() {
|
||||
@ -1564,7 +1570,6 @@ public final class Player extends Mob {
|
||||
return wrongwords;
|
||||
}
|
||||
|
||||
// incExp
|
||||
public int ignoreCount() {
|
||||
return ignoreList.size();
|
||||
}
|
||||
@ -1600,13 +1605,8 @@ public final class Player extends Mob {
|
||||
}
|
||||
}
|
||||
if (combat && i < 3
|
||||
&& (combatStyleToIndex() != i && getCombatStyle() != 0)) { // fix
|
||||
// for
|
||||
// accidental
|
||||
// exp
|
||||
// in
|
||||
// other
|
||||
// stats?
|
||||
&& (combatStyleToIndex() != i && getCombatStyle() != 0)) {
|
||||
// fix for accidental exp in other stats?
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1617,9 +1617,9 @@ public final class Player extends Mob {
|
||||
|
||||
if (getLocation().wildernessLevel() > 1) {
|
||||
if (combat)
|
||||
exprate = exprate * 2;
|
||||
if (getLocation().wildernessLevel() > 10 && !combat)
|
||||
exprate = exprate * 2;
|
||||
exprate += Config.WILD_COMBAT_BONUS;
|
||||
if (getLocation().wildernessLevel() > Config.WILD_LEVEL_FOR_NON_COMBAT_BONUS && !combat)
|
||||
exprate += Config.WILD_NON_COMBAT_BONUS;
|
||||
}
|
||||
|
||||
exp[i] += amount * exprate;
|
||||
@ -1633,7 +1633,7 @@ public final class Player extends Mob {
|
||||
incCurStat(i, advanced);
|
||||
incMaxStat(i, advanced);
|
||||
int stat = this.getMaxStat(i);
|
||||
if (stat == 99) {
|
||||
if (stat == 99 && Config.CONGRATS_FOR_MAX_LEVEL) {
|
||||
for (Player p : world.getPlayers()) {
|
||||
if (p != null) {
|
||||
p.getActionSender()
|
||||
|
@ -12,16 +12,15 @@ import org.apache.commons.collections.map.LRUMap;
|
||||
*/
|
||||
public class Cache<K, V> {
|
||||
|
||||
private final Map<K, V> cache;
|
||||
private Map<K, V> cache;
|
||||
|
||||
public Cache() {
|
||||
this(100);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
// Commons and their failure to support generics...
|
||||
public Cache(int maxSize) {
|
||||
cache = new LRUMap(maxSize);
|
||||
public Cache(int size) {
|
||||
cache = new LRUMap(size);
|
||||
}
|
||||
|
||||
public V get(K key) {
|
||||
@ -32,4 +31,16 @@ public class Cache<K, V> {
|
||||
return cache.put(key, value);
|
||||
}
|
||||
|
||||
public V remove(K key) {
|
||||
return cache.remove(key);
|
||||
}
|
||||
|
||||
public V remove(K key, V value) {
|
||||
V v = cache.get(key);
|
||||
if(v.equals(value)) {
|
||||
return cache.remove(value);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -68,21 +68,21 @@ public class PlayerLoginHandler implements PacketHandler {
|
||||
byte returnVal = 0;
|
||||
|
||||
try {
|
||||
ResultSet result = Server.db.getQuery("SELECT r.pass, r.banned, r.owner, u.group_id, b.id AS b_id FROM `pk_players` AS r INNER JOIN `users` AS u ON u.id=r.owner LEFT JOIN `bans` AS b on (b.username LIKE u.username OR b.ip LIKE '" + ip + "') WHERE `user`='" + user + "'");
|
||||
ResultSet result = Server.db.getQuery("SELECT banned, owner, group_id FROM `pk_players` WHERE `user` = '" + user + "'");
|
||||
if (!result.next()) {
|
||||
return 2;
|
||||
return 2;
|
||||
}
|
||||
if (!Auth.check_auth(DataConversions.hashToUsername(user), pass, new StringBuilder())) {
|
||||
return 2;
|
||||
return 2;
|
||||
}
|
||||
|
||||
if (result.getInt("banned") == 1 || result.getInt("b_id") != 0) {
|
||||
System.out.println("Banned player: " + DataConversions.hashToUsername(user) + " trying to login.");
|
||||
return 6;
|
||||
if (result.getInt("banned") == 1) {
|
||||
System.out.println("Banned player: " + DataConversions.hashToUsername(user) + " trying to login.");
|
||||
return 6;
|
||||
}
|
||||
|
||||
if (result.getInt("group_id") == 1 || result.getInt("group_id") == 2) {
|
||||
returnVal = 99;
|
||||
if (result.getInt("group_id") >= 5) {
|
||||
returnVal = 99;
|
||||
}
|
||||
|
||||
int owner = result.getInt("owner");
|
||||
|
Loading…
Reference in New Issue
Block a user