StormLib 🌪️
StormLib is a Ruby gem that provides a wrapper for the StormLib C++ library, allowing you to work with MPQ (Mo'PaQ) archives in your Ruby projects for World of Warcraft and other Blizzard games.
📦 Installation
Add this line to your application's Gemfile:
gem 'stormlib'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install stormlib
🛠️ Dependencies
Before installing the gem, make sure you have the following dependencies installed on your system:
- zlib1g-dev
- libbz2-dev
- build-essential
- libstdc++-12-dev
You can install these on Ubuntu or Debian-based systems with:
$ sudo apt-get install zlib1g-dev libbz2-dev build-essential libstdc++-12-dev
🚀 Usage
Here are some examples of how to use StormLib:
require 'stormlib'
archive = StormLib::Archive.new('game.mpq')
files = archive.list_files
puts "Files in the archive: #{files.join(', ')}"
archive.extract_file('readme.txt', 'extracted_readme.txt')
new_archive = StormLib::Archive.new('new_archive.mpq', create: true)
new_archive.add_file('local_file.txt', 'archived_file.txt')
archive.close
new_archive.close
DBC
you can use https://github.com/sebyx07/wow_dbc to CRUD DBC files
🧪 Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and the created tag, and push the .gem
file to rubygems.org.
🤝 Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/sebyx07/stormlib. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
📜 License
The gem is available as open source under the terms of the MIT License.
👥 Code of Conduct
Everyone interacting in the StormLib project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.