diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..8285ff6
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,14 @@
+Version 0.0.2 - 2025-09-15
+
+* Add Release project for building version releases
+* Add option for turning on or off email ad in footer and contact form submissions
+* Add support for bot SASL connection and password to IRC server
+* Update and implement new web settings
+* Update and fix all PHP opening, closing and short tags
+* Cleanup all PHP and HTML code
+* Update docs
+* Minor changes
+
+Version 0.0.1 - 2004-07-17
+
+* The original 2004 version forked from idlerpg.net
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..41dd9eb
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,127 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+We as members, contributors, and leaders pledge to make participation in our
+community a harassment-free experience for everyone, regardless of age, body
+size, visible or invisible disability, ethnicity, sex characteristics, gender
+identity and expression, level of experience, education, socio-economic status,
+nationality, personal appearance, race, religion, or sexual identity
+and orientation.
+
+We pledge to act and interact in ways that contribute to an open, welcoming,
+diverse, inclusive, and healthy community.
+
+## Our Standards
+
+Examples of behavior that contributes to a positive environment for our
+community include:
+
+* Demonstrating empathy and kindness toward other people
+* Being respectful of differing opinions, viewpoints, and experiences
+* Giving and gracefully accepting constructive feedback
+* Accepting responsibility and apologizing to those affected by our mistakes,
+ and learning from the experience
+* Focusing on what is best not just for us as individuals, but for the
+ overall community
+
+Examples of unacceptable behavior include:
+
+* The use of sexualized language or imagery, and sexual attention or
+ advances of any kind
+* Trolling, insulting or derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or email
+ address, without their explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Enforcement Responsibilities
+
+Community leaders are responsible for clarifying and enforcing our standards of
+acceptable behavior and will take appropriate and fair corrective action in
+response to any behavior that they deem inappropriate, threatening, offensive,
+or harmful.
+
+Community leaders have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, and will communicate reasons for moderation
+decisions when appropriate.
+
+## Scope
+
+This Code of Conduct applies within all community spaces, and also applies when
+an individual is officially representing the community in public spaces.
+Examples of representing our community include using an official e-mail address,
+posting via an official social media account, or acting as an appointed
+representative at an online or offline event.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported to the community leaders responsible for enforcement.
+All complaints will be reviewed and investigated promptly and fairly.
+
+All community leaders are obligated to respect the privacy and security of the
+reporter of any incident.
+
+## Enforcement Guidelines
+
+Community leaders will follow these Community Impact Guidelines in determining
+the consequences for any action they deem in violation of this Code of Conduct:
+
+### 1. Correction
+
+**Community Impact**: Use of inappropriate language or other behavior deemed
+unprofessional or unwelcome in the community.
+
+**Consequence**: A private, written warning from community leaders, providing
+clarity around the nature of the violation and an explanation of why the
+behavior was inappropriate. A public apology may be requested.
+
+### 2. Warning
+
+**Community Impact**: A violation through a single incident or series
+of actions.
+
+**Consequence**: A warning with consequences for continued behavior. No
+interaction with the people involved, including unsolicited interaction with
+those enforcing the Code of Conduct, for a specified period of time. This
+includes avoiding interactions in community spaces as well as external channels
+like social media. Violating these terms may lead to a temporary or
+permanent ban.
+
+### 3. Temporary Ban
+
+**Community Impact**: A serious violation of community standards, including
+sustained inappropriate behavior.
+
+**Consequence**: A temporary ban from any sort of interaction or public
+communication with the community for a specified period of time. No public or
+private interaction with the people involved, including unsolicited interaction
+with those enforcing the Code of Conduct, is allowed during this period.
+Violating these terms may lead to a permanent ban.
+
+### 4. Permanent Ban
+
+**Community Impact**: Demonstrating a pattern of violation of community
+standards, including sustained inappropriate behavior, harassment of an
+individual, or aggression toward or disparagement of classes of individuals.
+
+**Consequence**: A permanent ban from any sort of public interaction within
+the community.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 2.0, available at
+https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
+
+Community Impact Guidelines were inspired by [Mozilla's code of conduct
+enforcement ladder](https://github.com/mozilla/diversity).
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see the FAQ at
+https://www.contributor-covenant.org/faq. Translations are available at
+https://www.contributor-covenant.org/translations.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..3e0bb28
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,23 @@
+## Contributing
+Let's work better together. We are looking to collaborate with like-minded people who want to contribute in any capacity. Collaboration is open to everyone and we need your help if you are a:
+* Collector
+* Database Administrator
+* Datter
+* Developer
+* Dumper
+* Graphic Artist
+* Translator
+* Player
+* Tester
+
+Feel free to:
+* Fork the repository
+* Create an issue
+* Branch your repository with the issue number and a meaningful name related to the changes you are making
+* Create a pull request
+
+## Contact
+GitEmAll: [https://gitemall.devemall.int.eu.org/TommySalami/IdleRPG](https://gitemall.devemall.int.eu.org/TommySalami/IdleRPG "GitEmAll")
+
+---
+###### Copyright (c) 2004-2025 IdleRPG - All Rights Reserved
diff --git a/ISSUES.md b/ISSUES.md
new file mode 100644
index 0000000..dc6ac3a
--- /dev/null
+++ b/ISSUES.md
@@ -0,0 +1,2 @@
+### Issues
+All issues, bugs and features are tracked using GitEmAll
diff --git a/IdleRPG.sln b/IdleRPG.sln
index 759a0c4..f0da533 100644
--- a/IdleRPG.sln
+++ b/IdleRPG.sln
@@ -1,53 +1,86 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
-VisualStudioVersion = 17.14.36414.22 d17.14
+VisualStudioVersion = 17.14.36414.22
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "bot.v3.1.2", "bot.v3.1.2", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8EC462FD-D22E-90A8-E5CE-7E832BA40C5D}"
ProjectSection(SolutionItems) = preProject
- bot.v3.1.2\.irpg.conf = bot.v3.1.2\.irpg.conf
- bot.v3.1.2\bot.v3.1.2.pl = bot.v3.1.2\bot.v3.1.2.pl
- bot.v3.1.2\ChangeLog.txt = bot.v3.1.2\ChangeLog.txt
- bot.v3.1.2\events.txt = bot.v3.1.2\events.txt
- bot.v3.1.2\irpgdbtool = bot.v3.1.2\irpgdbtool
- bot.v3.1.2\modifiers.txt = bot.v3.1.2\modifiers.txt
- bot.v3.1.2\questinfo.txt = bot.v3.1.2\questinfo.txt
- bot.v3.1.2\README = bot.v3.1.2\README
+ .gitattributes = .gitattributes
+ .gitignore = .gitignore
+ CHANGELOG.md = CHANGELOG.md
+ CODE_OF_CONDUCT.md = CODE_OF_CONDUCT.md
+ CONTRIBUTING.md = CONTRIBUTING.md
+ ISSUES.md = ISSUES.md
+ LICENSE = LICENSE
+ README.md = README.md
+ TODO.md = TODO.md
+ screenshot2.png = screenshot2.png
+ screenshot1.png = screenshot1.png
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "irpg", "irpg", "{440DEC4B-57C9-4361-9949-7CF55F9CFED8}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "irpg-bot", "irpg-bot", "{3784E8C8-32DE-4740-8F55-324EF1EC4E86}"
ProjectSection(SolutionItems) = preProject
- irpg\admincomms.txt = irpg\admincomms.txt
- irpg\ChangeLog = irpg\ChangeLog
- irpg\commonfunctions.php = irpg\commonfunctions.php
- irpg\config.php = irpg\config.php
- irpg\contact.php = irpg\contact.php
- irpg\db.php = irpg\db.php
- irpg\down.png = irpg\down.png
- irpg\dump.php = irpg\dump.php
- irpg\footer.php = irpg\footer.php
- irpg\g7.css = irpg\g7.css
- irpg\head.png = irpg\head.png
- irpg\header.php = irpg\header.php
- irpg\hits.db = irpg\hits.db
- irpg\idlerpg-adv.txt = irpg\idlerpg-adv.txt
- irpg\index.php = irpg\index.php
- irpg\makemap.php = irpg\makemap.php
- irpg\makequestmap.php = irpg\makequestmap.php
- irpg\makeworldmap.php = irpg\makeworldmap.php
- irpg\maperror.png = irpg\maperror.png
- irpg\newmap.png = irpg\newmap.png
- irpg\players.php = irpg\players.php
- irpg\playerview.php = irpg\playerview.php
- irpg\quest.php = irpg\quest.php
- irpg\README = irpg\README
- irpg\tablegrad.gif = irpg\tablegrad.gif
- irpg\up.png = irpg\up.png
- irpg\worldmap.php = irpg\worldmap.php
- irpg\xml.php = irpg\xml.php
+ irpg-bot\.irpg.conf = irpg-bot\.irpg.conf
+ irpg-bot\ChangeLog.txt = irpg-bot\ChangeLog.txt
+ irpg-bot\events.txt = irpg-bot\events.txt
+ irpg-bot\INSTALL.txt = irpg-bot\INSTALL.txt
+ irpg-bot\irpg.pl = irpg-bot\irpg.pl
+ irpg-bot\irpgdbtool = irpg-bot\irpgdbtool
+ irpg-bot\modifiers.txt = irpg-bot\modifiers.txt
+ irpg-bot\questinfo.txt = irpg-bot\questinfo.txt
EndProjectSection
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "irpg-web", "irpg-web", "{B2C6CD83-5E84-40A2-8D1A-A57517EC36D9}"
+ ProjectSection(SolutionItems) = preProject
+ irpg-web\admincomms.txt = irpg-web\admincomms.txt
+ irpg-web\ChangeLog.txt = irpg-web\ChangeLog.txt
+ irpg-web\commonfunctions.php = irpg-web\commonfunctions.php
+ irpg-web\config.php = irpg-web\config.php
+ irpg-web\contact.php = irpg-web\contact.php
+ irpg-web\db.php = irpg-web\db.php
+ irpg-web\down.png = irpg-web\down.png
+ irpg-web\dump.php = irpg-web\dump.php
+ irpg-web\footer.php = irpg-web\footer.php
+ irpg-web\g7.css = irpg-web\g7.css
+ irpg-web\header.php = irpg-web\header.php
+ irpg-web\hits.db = irpg-web\hits.db
+ irpg-web\idlerpg-adv.txt = irpg-web\idlerpg-adv.txt
+ irpg-web\idlerpg.png = irpg-web\idlerpg.png
+ irpg-web\idlerpg_000000.png = irpg-web\idlerpg_000000.png
+ irpg-web\idlerpg_025D30.png = irpg-web\idlerpg_025D30.png
+ irpg-web\idlerpg_ff0000.png = irpg-web\idlerpg_ff0000.png
+ irpg-web\index.php = irpg-web\index.php
+ irpg-web\INSTALL.txt = irpg-web\INSTALL.txt
+ irpg-web\makemap.php = irpg-web\makemap.php
+ irpg-web\makequestmap.php = irpg-web\makequestmap.php
+ irpg-web\makeworldmap.php = irpg-web\makeworldmap.php
+ irpg-web\maperror.png = irpg-web\maperror.png
+ irpg-web\newmap.png = irpg-web\newmap.png
+ irpg-web\players.php = irpg-web\players.php
+ irpg-web\playerview.php = irpg-web\playerview.php
+ irpg-web\quest.php = irpg-web\quest.php
+ irpg-web\rw.css = irpg-web\rw.css
+ irpg-web\tablegrad.gif = irpg-web\tablegrad.gif
+ irpg-web\up.png = irpg-web\up.png
+ irpg-web\wall.gif = irpg-web\wall.gif
+ irpg-web\worldmap.php = irpg-web\worldmap.php
+ irpg-web\xml.php = irpg-web\xml.php
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "irpg-release", "irpg-release\irpg-release.csproj", "{3C3C4730-9D32-418C-BFDC-CE89148AA6CA}"
+EndProject
Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ Description = The Original Automated IRC Idle Role Playing Game
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {3C3C4730-9D32-418C-BFDC-CE89148AA6CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3C3C4730-9D32-418C-BFDC-CE89148AA6CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3C3C4730-9D32-418C-BFDC-CE89148AA6CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3C3C4730-9D32-418C-BFDC-CE89148AA6CA}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..59760bb
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,37 @@
+***************************************************************
+IdleRPG - License version 20250912
+Copyright (c) 2004-2025 IdleRPG - All Rights Reserved
+***************************************************************
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Redistributions in any form are not permitted whatsoever,
+under any conditions.
+
+2. This software may not be reverse engineered, decompiled,
+or disassembled.
+
+3. IdleRPG may publish revised and/or new versions of the
+license from time to time. Each version will be given a
+distinguishing version number. No one other than
+IdleRPG has the right to modify the terms applicable
+to covered code created under this License.
+
+4. It is your responsibility to use this software in accordance
+with all applicable laws.
+
+***************************************************************
+
+THIS SOFTWARE IS PROVIDED BY THE IDLERPG DEVELOPMENT TEAM
+'AS IS' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL THE IDLERPG DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..90f71b1
--- /dev/null
+++ b/README.md
@@ -0,0 +1,57 @@
+# @IdleRPG
+### The Original Automated IRC Idle Role Playing Game
+
+## About
+IdleRPG or IRPG is the original automated IRC idle role playing game.
+
+This is a modified and updated version of the 2004 version forked from idlerpg.net.
+
+IdleRPG comes with a bot written in Perl, a graphical web interface written in PHP and uses a file based database.
+
+## Screenshots
+
+
+
+## Installation
+INSTALL.txt files are included in the irpg-bot and irpg-web directories
+
+## Dependencies
+The following frameworks and SDKs are required to develop and build this app:
+* Perl
+* PHP
+* GD 2.0+ (or have it enabled in your php.ini, on Win32)
+
+The following NPM Packages are required to develop and build this app:
+* None yet
+
+The following tools and extensions are required to develop and build this app:
+* None yet
+
+## Projects
+* irpg-bot - Bot Source
+* irpg-web - Web Source
+* irpg-release - Release Project
+
+## Contributing
+Let's work better together. We are looking to collaborate with like-minded people who want to contribute in any capacity. Collaboration is open to everyone and we need your help if you are a:
+* Collector
+* Database Administrator
+* Datter
+* Developer
+* Dumper
+* Graphic Artist
+* Translator
+* Player
+* Tester
+
+Feel free to:
+* Fork the repository
+* Create an issue
+* Branch your repository with the issue number and a meaningful name related to the changes you are making
+* Create a pull request
+
+## Contact
+GitEmAll: [https://gitemall.devemall.int.eu.org/TommySalami/IdleRPG](https://gitemall.devemall.int.eu.org/TommySalami/IdleRPG "GitEmAll")
+
+---
+###### Copyright (c) 2004-2025 IdleRPG - All Rights Reserved
diff --git a/TODO.md b/TODO.md
new file mode 100644
index 0000000..dffd979
--- /dev/null
+++ b/TODO.md
@@ -0,0 +1,2 @@
+### ToDo
+All ToDo lists and milestones are tracked using GitEmAll
diff --git a/bot.v3.1.2/README b/bot.v3.1.2/README
deleted file mode 100644
index b07a016..0000000
--- a/bot.v3.1.2/README
+++ /dev/null
@@ -1,62 +0,0 @@
---------------------------------------------------------------------------------
-First-time users:
---------------------------------------------------------------------------------
-
-1. Using your favorite text editor, open the bot's source. Read the file header.
- If you don't agree with the license, please delete the source and remove
- each of your brain cells associated with it. Kthx.
-2. Open the file .irpg.conf and edit the bot's options to suit you. You must
- also move this file into the same directory where the bot resides.
-3. Run it with: perl bot.filename.pl
-4. If you have problems, try running it in debug mode:
- perl bot.filename.pl --debug
- If you cannot diagnose the problem, post to http://idlerpg.net/forum.php
-5. Thanks for your interest in Idle RPG!
-
---------------------------------------------------------------------------------
-IRPG 3.0 users looking to upgrade:
---------------------------------------------------------------------------------
-
-1. Using your favorite text editor, open the bot's source. Read the file header.
- If you don't agree with the license, please delete the source and remove
- each of your brain cells associated with it. Kthx.
-2. Open the file .irpg.conf and edit the bot's options to suit you. You must
- also move this file into the same directory where the bot resides.
-3. Replace your old bot source with the new one, ie, rm -f that old, buggy crap.
-4. Run it with: perl bot.filename.pl
-5. If you have problems, try running it in debug mode:
- perl bot.filename.pl --debug
- If you cannot diagnose the problem, post to http://idlerpg.net/forum.php
-6. Thanks for your interest in Idle RPG!
-
-
---------------------------------------------------------------------------------
-IRPG 2.4 users looking to upgrade:
---------------------------------------------------------------------------------
-
-1. Using your favorite text editor, open the bot's source. Read the file header.
- If you don't agree with the license, please delete the source and remove
- each of your brain cells associated with it. Kthx.
-2. Run the db conversion tool: perl irpgdbtool
-3. Answer the questions to suit you.
-4. Open the file .irpg.conf and edit the bot's options to suit you. You must
- also move this file into the same directory where the bot resides.
-5. Run it with: perl bot.filename.pl
-6. If you have problems, try running it in debug mode:
- perl bot.filename.pl --debug
- If you cannot diagnose the problem, post to http://idlerpg.net/forum.php
-7. Thanks for your interest in Idle RPG!
-
-
---------------------------------------------------------------------------------
-Pre-2.4 users looking to upgrade:
---------------------------------------------------------------------------------
-
-1. Using your favorite text editor, open the bot's source. Read the file header.
- If you don't agree with the license, please delete the source and remove
- each of your brain cells associated with it. Kthx.
-2. I don't think the irpgdbtool will help you unless you're comfortable with
- Perl, sorry. :/ If you are, though, you can pull the loaddb() sub from the
- bot that you're currently using instead of using the loaddb() supplied in
- irpgdbtool. You'll also need to add code to add in the other missing fields
- that exist in v2.4.
diff --git a/bot.v3.1.2/.irpg.conf b/irpg-bot/.irpg.conf
similarity index 79%
rename from bot.v3.1.2/.irpg.conf
rename to irpg-bot/.irpg.conf
index b8a4d6d..3f4af50 100644
--- a/bot.v3.1.2/.irpg.conf
+++ b/irpg-bot/.irpg.conf
@@ -1,67 +1,95 @@
-# Configuration file for IRPG bot. Prefix comments with a #. Line must start
-# with a # to be a comment (no leading spaces and no comments starting in the
-# middle of a line).
+# .irpg.conf
+#
+# Configuration file for the bot.
+#
+# Prefix comments with a #. Line must start with a # to be a comment.
+# (no leading spaces and no comments starting in the middle of a line).
#
# If you don't personally know your admins, or you're just not the trusting
# type, you may want to look at the ownerpevalonly, owneraddonly, and
# ownerdelonly options. ownerpevalonly prevents non-owner accounts from using
# the PEVAL command, which can allow admins to execute arbitrary code under the
# username that the bot runs as. owneraddonly prevents non-owner accounts from
-# assigning admin status to users. ownerdelonly prevents non-owner accounts from
-# removing admin status from users
-#
-# 'disablepeval' option was renamed to 'ownerpevalonly'
+# assigning admin status to users. ownerdelonly prevents non-owner accounts
+# from removing admin status from users.
#
# Command line options override options in this file.
-# remove or comment out this line so the bot knows that you edited the config
-# file
+# remove or comment out this line to prove that you edited the config file.
die
-# local hostname or address to bind to. leave blank or comment out if you don't
-# want to use a vhost
-#localaddr myvhost.domain.com
+# local hostname or address to bind to.
+# leave blank or comment out if you don't want to use a vhost.
+#localaddr irc.mynet.org
+#localaddr 10.10.23.23
# server name:port, enter as many as you like
-server miami.fl.us.irc-network.org:6667
+#server miami.fl.us.irc-network.org:6667
server dallas.tx.us.irc-network.org:7000
server brussels.be.eu.irc-network.org:6660
+#server irc.mynet.org:7000
+#server 127.0.0.1:7000
# bot's nickname
-botnick bot
+botnick IdleBot
+
+# bot's password
+# this is the normal password usually registered on IRC
+botpass iL@ved1nk
+
+# bot's SASL password
+# this is a different password than the one you usually register on IRC
+# known working on current unrealircd and all others are untested
+# please contact me if you know anything about the IRC connection
+# and login procedure with SASL and the codes that are transmitted
+botsaslpass iL@ved1nkMor3
# bot's username
-botuser bot
+botuser IdleBot
-# real name field
-botrlnm http://www.slashnet.org/~bot/
+# bot's real name field
+botrlnm IdleBot
-# channel name (followed by key, if your channel uses a key
-botchan #irpg s3cr3t.p4ss
+# channel name (followed by key, if your channel uses a key)
+# botchan #IdleRPG s3cr3t.p4ss
+botchan #IdleRPG
# (identify) command to send upon successful connect. if using a privmsg
-# command, you must begin the text of the message with a ":" -- see below
-botident PRIVMSG NickServ :identify ilovedink
+# command, you must begin the text of the message with a ":"
+botidentcmd PRIVMSG NickServ :identify %botpass%
# modes to set bot upon successful connect
botmodes +ix
-# command to send upon joining channel. %botnick% will evaluate to the bot's
-# current nickname, so you don't have to worry about opping the wrong person. if
-# using a privmsg command, you must begin the text of the message with a ":" --
-# see below
-botopcmd PRIVMSG ChanServ :op #idlerpg %botnick%
+# (op) command to send upon joining channel. %botnick% will evaluate to the
+# bot's current nickname, so you don't have to worry about opping the wrong
+# person. if using a privmsg command, you must begin the text of the message
+# with a ":"
+botopcmd PRIVMSG ChanServ :op %botchan% %botnick%
-# command sent to recover nick if bot's primary nickname is in use if using a
-# privmsg command, you must begin the text of the message with a ":" -- see
-# below
-botghostcmd PRIVMSG NickServ :ghost bot ilovedink
+# (ghost) command sent to recover nick if bot's primary nickname is in use if
+# using a privmsg command, you must begin the text of the message with a ":"
+botghostcmd PRIVMSG NickServ :ghost %botnick% %botpass%
-# URL to send users to for help
-helpurl http://idlerpg.net/
+# URL where users can reach the help page
+helpurl https://www.mynet.org/irpg/
-# admin commands list (for admin help)
-admincommurl http://idlerpg.net/admincomms.txt
+# URL where users can reach the admin commands list (for admin help)
+admincommurl https://www.mynet.org/irpg/admincomms.txt
+
+# URL where users can reach the online quest map, if available. if not
+# offering a map to users, leave this blank
+mapurl https://www.mynet.org/irpg/quest.php
+
+# URLs containing these terms will not be banned by the 'http:'
+# advertisement ban (if you have it turned on). enter as many as you like
+okurl ultrazone.org
+okurl idlerpg.net
+okurl mynet.org
+
+# Use URL-type banning for non-logged-in users that have been on the channel
+# less than 90 seconds?
+doban on
# base time to level up, 600 = 10 minutes
rpbase 600
@@ -87,15 +115,6 @@ debug off
# while the bot is in debug mode, in lieu of STDOUT
debugfile debug.txt
-# Use URL-type banning for non-logged-in users that have been on the channel
-# less than 90 seconds?
-doban on
-
-# URLs containing these terms will not be banned by the 'http:'
-# advertisement ban (if you have it turned on). enter as many as you like
-okurl ultrazone.org
-okurl idlerpg.net
-
# modes of silence. in mode 0, bot sends all privmsgs. in mode 1, only
# chanmsg() is disabled. in mode 2, only privmsg() to non-channels is
# disabled. in mode 3, privmsgs to users and channels are disabled
@@ -124,10 +143,6 @@ noccodes on
# problems in the past with using binary hash keys
nononp on
-# URL where users can reach the online quest map, if available. if not
-# offering a map to users, leave this blank
-mapurl http://idlerpg.net/quest.php
-
# allow a STATUS command for users? this is a p0 command to view information
# on an irpg user. useful if you don't have a website where users can view
# their stats
@@ -188,11 +203,11 @@ noscale off
# allow bot to access http://jotun.ultrazone.org/g7/count.php?new=1 each
# time someone registers a new username? it only takes a second, and I'd
# really like to be able to keep up with the total player count :^)
-phonehome on
+phonehome off
# username of the bot's owner. this account cannot be DELADMINed and has access
# to PEVAL even if it is disabled
-owner jotun
+owner admin
# disable the PEVAL command for non-owner accounts? this command allows the
# execution of arbitrary Perl code by bot admins, effectively giving them
@@ -211,7 +226,7 @@ ownerdelonly on
# check for newer versions each time the bot starts up? this will access the
# URL http://jotun.ultrazone.org/g7/version.php?version=$version and report on
# any updated versions and what features there are/bugs have been fixed
-checkupdates on
+checkupdates off
# send list of usernames that are automatically logged back in when we restart
# (iff that list is < 1 k)? this should, hopefully, no longer cause the bot to
diff --git a/bot.v3.1.2/ChangeLog.txt b/irpg-bot/ChangeLog.txt
similarity index 99%
rename from bot.v3.1.2/ChangeLog.txt
rename to irpg-bot/ChangeLog.txt
index 2985918..72c2f95 100644
--- a/bot.v3.1.2/ChangeLog.txt
+++ b/irpg-bot/ChangeLog.txt
@@ -1,7 +1,7 @@
-This is the changelog for the Idle RPG bot by jotun, jotun@idlerpg.net,
-http://idlerpg.net. Entries are written backwards. That is, items at the bottom
-of the file were added first, and each subsequent addition is placed on a line
-before it. Don't ask me why I do it that way: I do not know.
+This is the ChangeLog for the old Idle RPG Bot Code.
+Entries are written backwards. That is, items at the bottom of the file
+were added first, and each subsequent addition is placed on a line before it.
+Don't ask me why I do it that way: I do not know.
Thanks for your interest in the Idle RPG! Feel free to contact me with ideas and
comments, or post them in the forum on the website for public view.
diff --git a/irpg-bot/INSTALL.txt b/irpg-bot/INSTALL.txt
new file mode 100644
index 0000000..dfbb14a
--- /dev/null
+++ b/irpg-bot/INSTALL.txt
@@ -0,0 +1,30 @@
+-------------------------------------------------------------------------------
+First-time Installation:
+-------------------------------------------------------------------------------
+
+1. Copy all of the irpg-bot files to your private web folder. The folder must
+ be readable and writable by the web server and able to execute Perl and PHP.
+2. Edit .irpg.conf with your favorite editor. This file must be in the same
+ private directory where the bot resides.
+3. Run the bot with: perl irpg.pl
+4. If you have problems, try running it in debug mode with:
+ perl irpg.pl --debug
+5. Edit the bot ANY WAY you see fit.
+6. All milestones, issues, bugs and features are tracked using GitEmAll.
+ Thanks for your interest in IdleRPG! :^)
+
+-------------------------------------------------------------------------------
+Upgrading:
+-------------------------------------------------------------------------------
+
+1. Remove your old bot source, ie, rm -rfv that old buggy crap and start over.
+2. Copy all of the irpg-bot files to your private web folder. The folder must
+ be readable and writable by the web server and able to execute Perl and PHP.
+2. Edit .irpg.conf with your favorite editor. This file must be in the same
+ private directory where the bot resides.
+4. Run the bot with: perl irpg.pl
+5. If you have problems, try running it in debug mode with:
+ perl irpg.pl --debug
+6. Edit the bot ANY WAY you see fit.
+7. All milestones, issues, bugs and features are tracked using GitEmAll.
+ Thanks for your interest in IdleRPG! :^)
diff --git a/bot.v3.1.2/events.txt b/irpg-bot/events.txt
similarity index 100%
rename from bot.v3.1.2/events.txt
rename to irpg-bot/events.txt
diff --git a/bot.v3.1.2/bot.v3.1.2.pl b/irpg-bot/irpg.pl
similarity index 98%
rename from bot.v3.1.2/bot.v3.1.2.pl
rename to irpg-bot/irpg.pl
index 11d0bb1..1caba8d 100644
--- a/bot.v3.1.2/bot.v3.1.2.pl
+++ b/irpg-bot/irpg.pl
@@ -1,20 +1,17 @@
#!/usr/local/bin/perl
-# irpg bot v3.1.2 by jotun, jotun@idlerpg.net, et al. See http://idlerpg.net/
+# irpg.pl
#
-# Some code within this file was written by authors other than myself. As such,
-# distributing this code or distributing modified versions of this code is
-# strictly prohibited without written authorization from the authors. Contact
-# jotun@idlerpg.net. Please note that this may change (at any time, no less) if
-# authorization for distribution is given by patch submitters.
+# The bot modified, released and maintained by TommySalami
+# https://gitemall.devemall.int.eu.org/TommySalami/IdleRPG
+# based on
+# The bot originally written and released by jotun, jotun@idlerpg.net, et al.
+# http://idlerpg.net/
#
-# As a side note, patches submitted for this project are automatically taken to
-# be freely distributable and modifiable for any use, public or private, though
-# I make no claim to ownership; original copyrights will be retained.. except as
-# I've just stated.
+# Thanks to everyone that's contributed!
#
-# Please mail bugs, etc. to me. Patches are welcome to fix bugs or clean up
-# the code, but please do not use a radically different coding style. Thanks
-# to everyone that's contributed!
+# As a side note, contributions submitted for this project are automatically
+# taken to be freely distributable and modifiable for any use, public or
+# private, though I make no claim to ownership.
#
# NOTE: This code should NOT be run as root. You deserve anything that happens
# to you if you run this code as a superuser. Also, note that giving a
@@ -36,7 +33,7 @@ my %opts;
readconfig();
-my $version = "3.1.2";
+my $version = "0.0.2";
# command line overrides .irpg.conf
GetOptions(\%opts,
@@ -46,10 +43,12 @@ GetOptions(\%opts,
"debugfile=s",
"server|s=s",
"botnick|n=s",
+ "botpass|a=s",
+ "botsaslpass|z=s",
"botuser|u=s",
"botrlnm|r=s",
"botchan|c=s",
- "botident|p=s",
+ "botidentcmd|p=s",
"botmodes|m=s",
"botopcmd|o=s",
"localaddr=s",
@@ -365,13 +364,19 @@ sub parse {
penalize(finduser($usernick),"kick");
delete($onchan{$usernick});
}
+ elsif ($arg[1] eq 'notice' && $arg[2] eq $opts{botnick} && $arg[8] eq 'authenticate' && $arg[9] eq 'now') {
+ # send our SASL info
+ # known working on current unrealircd and all others are untested
+ # please contact me if you know anything about the IRC connection
+ # and login procedure with SASL and the codes that are transmitted
+ sts("AUTH $opts{botnick}:$opts{botsaslpass}");
+ }
# don't penalize /notices to the bot
elsif ($arg[1] eq 'notice' && $arg[2] ne $opts{botnick}) {
penalize($username,"notice",length("@arg[3..$#arg]")-1);
}
elsif ($arg[1] eq '001') {
# send our identify command, set our usermode, join channel
- sts($opts{botident});
sts("MODE $opts{botnick} :$opts{botmodes}");
sts("JOIN $opts{botchan}");
$opts{botchan} =~ s/ .*//; # strip channel key if present
@@ -424,8 +429,7 @@ sub parse {
if (lc($arg[2]) eq lc($opts{botnick})) { # to us, not channel
$arg[3] = lc(substr($arg[3],1)); # lowercase, strip leading :
if ($arg[3] eq "\1version\1") {
- notice("\1VERSION IRPG bot v$version by jotun; ".
- "http://idlerpg.net/\1",$usernick);
+ notice("\1VERSION IdleRPG bot v$version\1", $usernick);
}
elsif ($arg[3] eq "peval") {
if (!ha($username) || ($opts{ownerpevalonly} &&
@@ -933,12 +937,11 @@ sub parse {
elsif ($arg[3] eq "info") {
my $info;
if (!ha($username) && $opts{allowuserinfo}) {
- $info = "IRPG bot v$version by jotun, ".
- "http://idlerpg.net/. On via server: ".
+ $info = "IdleRPG bot v$version, via server: ".
$opts{servers}->[0].". Admins online: ".
join(", ", map { $rps{$_}{nick} }
grep { $rps{$_}{isadmin} &&
- $rps{$_}{online} } keys(%rps)).".";
+ $rps{$_}{online} } keys(%rps));
privmsg($info, $usernick);
}
elsif (!ha($username) && !$opts{allowuserinfo}) {
@@ -1692,9 +1695,10 @@ usage: $prog [OPTIONS]
--server, -s Specify IRC server:port to connect to
--botnick, -n Bot's IRC nick
--botuser, -u Bot's username
+ --botsaslpass -z Bot's SASL password
--botrlnm, -r Bot's real name
--botchan, -c IRC channel to join
- --botident, -p Specify identify-to-services command
+ --botidentcmd, -p Specify identify-to-services command
--botmodes, -m Specify usermodes for the bot to set upon connect
--botopcmd, -o Specify command to send to server on successful connect
--botghostcmd, -g Specify command to send to server to regain primary
@@ -1703,8 +1707,9 @@ usage: $prog [OPTIONS]
--okurl, -k Bot will not ban for web addresses that contain these
strings
--debug Debug on/off flag
- --helpurl URL to refer new users to
- --admincommurl URL to refer admins to
+ --helpurl URL where users can reach the help page
+ --admincommurl URL where users can reach the admin commands list
+ --mapurl URL where users can reach the online quest map
Timing parameters:
--rpbase Base time to level up
diff --git a/bot.v3.1.2/irpgdbtool b/irpg-bot/irpgdbtool
similarity index 100%
rename from bot.v3.1.2/irpgdbtool
rename to irpg-bot/irpgdbtool
diff --git a/bot.v3.1.2/modifiers.txt b/irpg-bot/modifiers.txt
similarity index 100%
rename from bot.v3.1.2/modifiers.txt
rename to irpg-bot/modifiers.txt
diff --git a/bot.v3.1.2/questinfo.txt b/irpg-bot/questinfo.txt
similarity index 100%
rename from bot.v3.1.2/questinfo.txt
rename to irpg-bot/questinfo.txt
diff --git a/irpg-release/App.config b/irpg-release/App.config
new file mode 100644
index 0000000..193aecc
--- /dev/null
+++ b/irpg-release/App.config
@@ -0,0 +1,6 @@
+
+
Config error. The config file was not loaded correctly.\n"; + } + else if ($irpg_site_email == "disabled") { + echo "
Email is disabled.\n"; + } + else if ($irpg_site_email == "php" && $_POST['from'] && $_POST['text']) { + $to = $admin_email; + $subject = "IdleRPG: ".$_POST['from']; + $message = "Name: ".$_POST['name']."\nE-mail: ".$_POST['from']."\n\n".$_POST['text']; + $additional_headers = "From: ".$_POST['from']."\r\n"; + mail($to, $subject, $message, $additional_headers); + echo "
Thanks for your submission.\n"; + } + else if ($irpg_site_email == "smtp" && $_POST['from'] && $_POST['text']) { + echo "
SMTP Email is under construction. Your submission was not submitted.\n"; + } + else { + echo " \n"; + } + + include("footer.php"); +?> diff --git a/irpg/db.php b/irpg-web/db.php similarity index 97% rename from irpg/db.php rename to irpg-web/db.php index 78ba930..ab9c35c 100644 --- a/irpg/db.php +++ b/irpg-web/db.php @@ -1,12 +1,9 @@ -
| User @@ -248,10 +245,9 @@ " |
|---|