Build Improvements (#5033)
Build / Linux (push) Waiting to run
Build / Windows (push) Waiting to run

* Start rewrite, add vcpkg

* Simple vcpkg manifest, will almost certainly need tweaking

* Remove cmake ext we wont be using anymore

* Update vcpkg to no longer be from 2022, update cmake lists (wip)

* Add finds to the toplevel cmakelists

* WIP, luabind and perlbind build.  Common only partially builds.

* Fix common build.

* shared_memory compiles

* client files compile

* Tests and more cmake version updates

* World, had to swap out zlib-ng for now because it wasn't playing nicely along side the zlib install.  May revisit.

* UCS compiles now too!

* queryserv and eqlaunch

* loginserver works

* Zone works but is messy, tomorrow futher cleanup!

* Cleanup main file

* remove old zlibng, remove perlwrap, remove hc

* More cleanup

* vcpkg baseline set for CI

* Remove pkg-config, it's the suggested way to use luajit with vcpkg but it causes issues with CI and might be a pain point for windows users

* Actually add file

* Set perlbind include dir

* Perl link got lost

* PERL_SET_INTERP causes an issue on newer versions of perl on windows because a symbol is not properly exported in their API, change the lines so it's basically what it used to be

* Remove static unix linking, we dont do automated released anymore and this was tightly coupled to that.  Can explore this again if we decide to change that.

* Remove unused submodules, set cmake policy for boost

* Fix some cereal includes

* Improve some boilerplate, I'd still like to do better about getting linker stuff set.

* Going through and cleaning up the build.

* Fix world, separate out data_buckets.

* add fixes for other servers

* fix zone

* Fix client files, loginserver and tests

* Newer versions of libmariadb default to tls forced on, return to the default of not forcing that.
auto_login were breaking on linux builds
loginserver wasn't setting proper openssl compile flag

* Move set out of a giant cpp file include.

* Convert show

* convert find

* Add uuid to unix builds

* Remove some cpp includes.

* Restructure to remove more things.

* change db update manifest to header
change build yml

* Move world CLI include cpps to cmake.

* Move zone cli out of source and into cmake

* Sidecar stuff wont directly include cpp files now too.

* Fix uuid-dev missing on linux runner

* Reorg common cmake file

* Some cleanup

* Fix libsodium support (oops). Fix perl support (more oops)

* Change doc

---------

Co-authored-by: KimLS <KimLS@peqtgc.com>
This commit is contained in:
Alex
2025-12-13 19:56:37 -08:00
committed by GitHub
parent 9b3f9f356d
commit c84df0d5ba
510 changed files with 1505 additions and 46448 deletions
+268 -72
View File
@@ -1,6 +1,6 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.12)
cmake_minimum_required(VERSION 3.20)
SET(zone_sources
set(zone_sources
aa.cpp
aa_ability.cpp
aggro.cpp
@@ -11,21 +11,27 @@ SET(zone_sources
beacon.cpp
bonuses.cpp
bot.cpp
bot_raid.cpp
bot_database.cpp
bot_raid.cpp
botspellsai.cpp
cheat_manager.cpp
cli/cli_benchmark_databuckets.cpp
cli/cli_sidecar_serve_http.cpp
cli/tests/cli_databuckets.cpp
cli/tests/cli_npc_handins.cpp
cli/tests/cli_npc_handins_multiquest.cpp
cli/tests/cli_test_util.cpp
cli/tests/cli_zone_state.cpp
client.cpp
client_evolving_items.cpp
client_bot.cpp
client_evolving_items.cpp
client_mods.cpp
client_packet.cpp
client_process.cpp
combat_record.cpp
corpse.cpp
../common/data_bucket.cpp
doors.cpp
dialogue_window.cpp
doors.cpp
dynamic_zone.cpp
effects.cpp
embparser.cpp
@@ -38,24 +44,12 @@ SET(zone_sources
fastmath.cpp
fearpath.cpp
forage.cpp
groups.cpp
guild.cpp
guild_mgr.cpp
hate_list.cpp
heal_rotation.cpp
horse.cpp
inventory.cpp
loot.cpp
embperl.cpp
entity.cpp
exp.cpp
fearpath.cpp
forage.cpp
global_loot_manager.cpp
groups.cpp
guild.cpp
guild_mgr.cpp
hate_list.cpp
heal_rotation.cpp
horse.cpp
inventory.cpp
loot.cpp
@@ -65,8 +59,8 @@ SET(zone_sources
mob.cpp
mob_ai.cpp
mob_appearance.cpp
mob_movement_manager.cpp
mob_info.cpp
mob_movement_manager.cpp
npc.cpp
npc_scale_manager.cpp
object.cpp
@@ -81,16 +75,15 @@ SET(zone_sources
position.cpp
qglobals.cpp
queryserv.cpp
questmgr.cpp
quest_db.cpp
quest_parser_collection.cpp
questmgr.cpp
raids.cpp
raycast_mesh.cpp
sidecar_api/sidecar_api.cpp
sidecar_api/loot_simulator_controller.cpp
shared_task_zone_messaging.cpp
sidecar_api/loot_simulator_controller.cpp
sidecar_api/sidecar_api.cpp
spawn2.cpp
spawn2.h
spawngroup.cpp
special_attacks.cpp
spell_effects.cpp
@@ -111,17 +104,19 @@ SET(zone_sources
worldserver.cpp
xtargetautohaters.cpp
zone.cpp
zone_config.cpp
zonedb.cpp
zone_base_data.cpp
zone_cli.cpp
zone_config.cpp
zone_event_scheduler.cpp
zone_loot.cpp
zone_npc_factions.cpp
zone_reload.cpp
zone_save_state.cpp
zonedb.cpp
zoning.cpp
)
SET(zone_headers
set(zone_headers
aa.h
aa_ability.h
aggromanager.h
@@ -139,9 +134,8 @@ SET(zone_headers
command.h
common.h
corpse.h
../common/data_bucket.h
doors.h
dialogue_window.h
doors.h
dynamic_zone.h
embparser.h
embperl.h
@@ -157,8 +151,8 @@ SET(zone_headers
hate_list.h
heal_rotation.h
horse.h
lua_bot.h
lua_bit.h
lua_bot.h
lua_buff.h
lua_client.h
lua_corpse.h
@@ -206,17 +200,15 @@ SET(zone_headers
pets.h
position.h
qglobals.h
quest_interface.h
queryserv.h
quest_interface.h
questmgr.h
quest_db.h
quest_interface.h
quest_parser_collection.h
questmgr.h
raids.h
raycast_mesh.h
sidecar_api/sidecar_api.h
shared_task_zone_messaging.h
spawn2.cpp
sidecar_api/sidecar_api.h
spawn2.h
spawngroup.h
string_ids.h
@@ -231,22 +223,21 @@ SET(zone_headers
worldserver.h
xtargetautohaters.h
zone.h
zone_event_scheduler.h
zone_config.h
zonedb.h
zonedump.h
zone_cli.h
zone_config.h
zone_event_scheduler.h
zone_reload.h
zone_save_state.h
zone_cli.cpp)
zonedb.h
zonedump.h
)
# lua unity build
set(lua_sources
lua_bot.cpp
lua_bit.cpp
lua_bot.cpp
lua_buff.cpp
lua_corpse.cpp
lua_client.cpp
lua_corpse.cpp
lua_database.cpp
lua_door.cpp
lua_encounter.cpp
@@ -277,7 +268,6 @@ set(lua_sources
add_library(lua_zone STATIC ${lua_sources})
set_target_properties(lua_zone PROPERTIES UNITY_BUILD ON UNITY_BUILD_BATCH_SIZE 8)
# perl unity build
set(perl_sources
perl_bot.cpp
perl_buff.cpp
@@ -308,10 +298,71 @@ set(perl_sources
add_library(perl_zone STATIC ${perl_sources})
set_target_properties(perl_zone PROPERTIES UNITY_BUILD ON UNITY_BUILD_BATCH_SIZE 8)
# gm commands
set(gm_command_sources
command.cpp
bot_command.cpp
bot_commands/bot_actionable.cpp
bot_commands/bot_appearance.cpp
bot_commands/bot_apply_poison.cpp
bot_commands/bot_apply_potion.cpp
bot_commands/bot_attack.cpp
bot_commands/bot_behind_mob.cpp
bot_commands/bot_blocked_buffs.cpp
bot_commands/bot_bot.cpp
bot_commands/bot_bot_settings.cpp
bot_commands/bot_cast.cpp
bot_commands/bot_class_race_list.cpp
bot_commands/bot_click_item.cpp
bot_commands/bot_copy_settings.cpp
bot_commands/bot_default_settings.cpp
bot_commands/bot_depart.cpp
bot_commands/bot_discipline.cpp
bot_commands/bot_distance_ranged.cpp
bot_commands/bot_find_aliases.cpp
bot_commands/bot_follow.cpp
bot_commands/bot_guard.cpp
bot_commands/bot_heal_rotation.cpp
bot_commands/bot_help.cpp
bot_commands/bot_hold.cpp
bot_commands/bot_illusion_block.cpp
bot_commands/bot_inventory.cpp
bot_commands/bot_item_use.cpp
bot_commands/bot_max_melee_range.cpp
bot_commands/bot_name.cpp
bot_commands/bot_owner_option.cpp
bot_commands/bot_pet.cpp
bot_commands/bot_pick_lock.cpp
bot_commands/bot_pickpocket.cpp
bot_commands/bot_precombat.cpp
bot_commands/bot_pull.cpp
bot_commands/bot_release.cpp
bot_commands/bot_set_assistee.cpp
bot_commands/bot_sit_hp_percent.cpp
bot_commands/bot_sit_in_combat.cpp
bot_commands/bot_sit_mana_percent.cpp
bot_commands/bot_spell.cpp
bot_commands/bot_spell_aggro_checks.cpp
bot_commands/bot_spell_announce_cast.cpp
bot_commands/bot_spell_delays.cpp
bot_commands/bot_spell_engaged_priority.cpp
bot_commands/bot_spell_holds.cpp
bot_commands/bot_spell_idle_priority.cpp
bot_commands/bot_spell_max_hp_pct.cpp
bot_commands/bot_spell_max_mana_pct.cpp
bot_commands/bot_spell_max_thresholds.cpp
bot_commands/bot_spell_min_hp_pct.cpp
bot_commands/bot_spell_min_mana_pct.cpp
bot_commands/bot_spell_min_thresholds.cpp
bot_commands/bot_spell_pursue_priority.cpp
bot_commands/bot_spell_resist_limits.cpp
bot_commands/bot_spell_target_count.cpp
bot_commands/bot_spelltypes.cpp
bot_commands/bot_summon.cpp
bot_commands/bot_suspend.cpp
bot_commands/bot_taunt.cpp
bot_commands/bot_timer.cpp
bot_commands/bot_track.cpp
bot_commands/bot_view_combos.cpp
command.cpp
gm_commands/acceptrules.cpp
gm_commands/advnpcspawn.cpp
gm_commands/aggrozone.cpp
@@ -351,11 +402,37 @@ set(gm_command_sources
gm_commands/emptyinventory.cpp
gm_commands/enablerecipe.cpp
gm_commands/entityvariable.cpp
gm_commands/evolving_items.cpp
gm_commands/exptoggle.cpp
gm_commands/faction.cpp
gm_commands/evolving_items.cpp
gm_commands/faction_association.cpp
gm_commands/feature.cpp
gm_commands/find.cpp
gm_commands/find/find_aa.cpp
gm_commands/find/find_account.cpp
gm_commands/find/find_body_type.cpp
gm_commands/find/find_bot.cpp
gm_commands/find/find_bug_category.cpp
gm_commands/find/find_character.cpp
gm_commands/find/find_class.cpp
gm_commands/find/find_comparison_type.cpp
gm_commands/find/find_currency.cpp
gm_commands/find/find_deity.cpp
gm_commands/find/find_emote.cpp
gm_commands/find/find_faction.cpp
gm_commands/find/find_item.cpp
gm_commands/find/find_language.cpp
gm_commands/find/find_ldon_theme.cpp
gm_commands/find/find_npctype.cpp
gm_commands/find/find_object_type.cpp
gm_commands/find/find_race.cpp
gm_commands/find/find_recipe.cpp
gm_commands/find/find_skill.cpp
gm_commands/find/find_special_ability.cpp
gm_commands/find/find_spell.cpp
gm_commands/find/find_stance.cpp
gm_commands/find/find_task.cpp
gm_commands/find/find_zone.cpp
gm_commands/fish.cpp
gm_commands/fixmob.cpp
gm_commands/flagedit.cpp
@@ -380,9 +457,9 @@ set(gm_command_sources
gm_commands/kill.cpp
gm_commands/killallnpcs.cpp
gm_commands/list.cpp
gm_commands/lootsim.cpp
gm_commands/loc.cpp
gm_commands/logs.cpp
gm_commands/lootsim.cpp
gm_commands/makepet.cpp
gm_commands/memspell.cpp
gm_commands/merchantshop.cpp
@@ -434,12 +511,119 @@ set(gm_command_sources
gm_commands/sensetrap.cpp
gm_commands/serverrules.cpp
gm_commands/set.cpp
gm_commands/set/set_aa_exp.cpp
gm_commands/set/set_aa_points.cpp
gm_commands/set/set_adventure_points.cpp
gm_commands/set/set_alternate_currency.cpp
gm_commands/set/set_animation.cpp
gm_commands/set/set_anon.cpp
gm_commands/set/set_auto_login.cpp
gm_commands/set/set_bind_point.cpp
gm_commands/set/set_checksum.cpp
gm_commands/set/set_class_permanent.cpp
gm_commands/set/set_crystals.cpp
gm_commands/set/set_date.cpp
gm_commands/set/set_endurance.cpp
gm_commands/set/set_endurance_full.cpp
gm_commands/set/set_exp.cpp
gm_commands/set/set_flymode.cpp
gm_commands/set/set_frozen.cpp
gm_commands/set/set_gender.cpp
gm_commands/set/set_gender_permanent.cpp
gm_commands/set/set_gm.cpp
gm_commands/set/set_gm_speed.cpp
gm_commands/set/set_gm_status.cpp
gm_commands/set/set_god_mode.cpp
gm_commands/set/set_haste.cpp
gm_commands/set/set_hero_model.cpp
gm_commands/set/set_hide_me.cpp
gm_commands/set/set_hp.cpp
gm_commands/set/set_hp_full.cpp
gm_commands/set/set_invulnerable.cpp
gm_commands/set/set_language.cpp
gm_commands/set/set_last_name.cpp
gm_commands/set/set_level.cpp
gm_commands/set/set_loginserver_info.cpp
gm_commands/set/set_mana.cpp
gm_commands/set/set_mana_full.cpp
gm_commands/set/set_motd.cpp
gm_commands/set/set_name.cpp
gm_commands/set/set_ooc_mute.cpp
gm_commands/set/set_password.cpp
gm_commands/set/set_pvp.cpp
gm_commands/set/set_pvp_points.cpp
gm_commands/set/set_race.cpp
gm_commands/set/set_race_permanent.cpp
gm_commands/set/set_server_locked.cpp
gm_commands/set/set_skill.cpp
gm_commands/set/set_skill_all.cpp
gm_commands/set/set_skill_all_max.cpp
gm_commands/set/set_start_zone.cpp
gm_commands/set/set_temporary_name.cpp
gm_commands/set/set_texture.cpp
gm_commands/set/set_time.cpp
gm_commands/set/set_time_zone.cpp
gm_commands/set/set_title.cpp
gm_commands/set/set_title_suffix.cpp
gm_commands/set/set_weather.cpp
gm_commands/set/set_zone.cpp
gm_commands/show.cpp
gm_commands/show/show_aa_points.cpp
gm_commands/show/show_aas.cpp
gm_commands/show/show_aggro.cpp
gm_commands/show/show_auto_login.cpp
gm_commands/show/show_buffs.cpp
gm_commands/show/show_buried_corpse_count.cpp
gm_commands/show/show_client_version_summary.cpp
gm_commands/show/show_content_flags.cpp
gm_commands/show/show_currencies.cpp
gm_commands/show/show_distance.cpp
gm_commands/show/show_emotes.cpp
gm_commands/show/show_field_of_view.cpp
gm_commands/show/show_flags.cpp
gm_commands/show/show_group_info.cpp
gm_commands/show/show_hatelist.cpp
gm_commands/show/show_inventory.cpp
gm_commands/show/show_ip_lookup.cpp
gm_commands/show/show_keyring.cpp
gm_commands/show/show_line_of_sight.cpp
gm_commands/show/show_network.cpp
gm_commands/show/show_network_stats.cpp
gm_commands/show/show_npc_global_loot.cpp
gm_commands/show/show_npc_stats.cpp
gm_commands/show/show_npc_type.cpp
gm_commands/show/show_peqzone_flags.cpp
gm_commands/show/show_petition.cpp
gm_commands/show/show_petition_info.cpp
gm_commands/show/show_proximity.cpp
gm_commands/show/show_quest_errors.cpp
gm_commands/show/show_quest_globals.cpp
gm_commands/show/show_recipe.cpp
gm_commands/show/show_server_info.cpp
gm_commands/show/show_skills.cpp
gm_commands/show/show_spawn_status.cpp
gm_commands/show/show_special_abilities.cpp
gm_commands/show/show_spells.cpp
gm_commands/show/show_spells_list.cpp
gm_commands/show/show_stats.cpp
gm_commands/show/show_timers.cpp
gm_commands/show/show_traps.cpp
gm_commands/show/show_uptime.cpp
gm_commands/show/show_variable.cpp
gm_commands/show/show_version.cpp
gm_commands/show/show_waypoints.cpp
gm_commands/show/show_who.cpp
gm_commands/show/show_xtargets.cpp
gm_commands/show/show_zone_data.cpp
gm_commands/show/show_zone_global_loot.cpp
gm_commands/show/show_zone_loot.cpp
gm_commands/show/show_zone_points.cpp
gm_commands/show/show_zone_status.cpp
gm_commands/show/show_zone_variables.cpp
gm_commands/shutdown.cpp
gm_commands/spawn.cpp
gm_commands/spawneditmass.cpp
gm_commands/spawnfix.cpp
gm_commands/faction_association.cpp
gm_commands/stun.cpp
gm_commands/summon.cpp
gm_commands/summonburiedplayercorpse.cpp
@@ -463,46 +647,58 @@ set(gm_command_sources
gm_commands/wp.cpp
gm_commands/wpadd.cpp
gm_commands/zone.cpp
gm_commands/zone_instance.cpp
gm_commands/zone_shard.cpp
gm_commands/zonebootup.cpp
gm_commands/zoneshutdown.cpp
gm_commands/zonevariable.cpp
gm_commands/zone_instance.cpp
gm_commands/zone_shard.cpp
gm_commands/zsave.cpp
)
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Source Files" FILES ${zone_sources})
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Header Files" FILES ${zone_headers})
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Source Files" FILES ${gm_command_sources})
add_library(gm_commands_zone STATIC ${gm_command_sources})
target_link_libraries(gm_commands_zone PRIVATE common)
set_target_properties(gm_commands_zone PROPERTIES UNITY_BUILD ON UNITY_BUILD_BATCH_SIZE 32)
# zone combine sources and headers
ADD_EXECUTABLE(zone ${zone_sources} ${zone_headers})
add_executable(zone ${zone_sources} ${zone_headers})
# binary output directory
INSTALL(TARGETS zone RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
install(TARGETS zone RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
# precompiled headers
IF (EQEMU_BUILD_PCH)
if(EQEMU_BUILD_PCH)
TARGET_PRECOMPILE_HEADERS(zone PRIVATE ../common/pch/app-pch.h)
TARGET_PRECOMPILE_HEADERS(zone PRIVATE ../common/pch/std-pch.h)
TARGET_PRECOMPILE_HEADERS(zone PRIVATE ./pch/pch.h)
ENDIF()
ADD_DEFINITIONS(-DZONE)
# link lua_zone unity build against luabind
target_link_libraries(lua_zone PRIVATE luabind)
if (EQEMU_BUILD_STATIC AND LUA_LIBRARY)
target_link_libraries(zone PRIVATE ${LUA_LIBRARY})
endif()
# perl unity build links against perl_zone
target_link_libraries(perl_zone PRIVATE perlbind)
if (EQEMU_BUILD_STATIC AND PERL_LIBRARY)
target_link_libraries(zone PRIVATE ${PERL_LIBRARY})
add_definitions(-DZONE)
if(EQEMU_BUILD_LUA)
target_compile_definitions(lua_zone PUBLIC LUA_EQEMU)
target_link_libraries(lua_zone PUBLIC luabind Boost::dynamic_bitset Boost::tuple Boost::foreach common)
if (EQEMU_BUILD_STATIC AND LUA_LIBRARY)
target_link_libraries(zone PRIVATE ${LUA_LIBRARY})
endif()
endif()
# link zone against common libraries
target_link_libraries(zone PRIVATE lua_zone perl_zone gm_commands_zone ${ZONE_LIBS})
if(EQEMU_BUILD_PERL)
target_compile_definitions(perl_zone PUBLIC EMBPERL EMBPERL_PLUGIN PERLBIND_NO_STRICT_SCALAR_TYPES)
target_link_libraries(perl_zone PUBLIC perlbind common ${PERL_LIBRARY})
if (EQEMU_BUILD_STATIC AND PERL_LIBRARY)
target_link_libraries(zone PRIVATE ${PERL_LIBRARY})
endif()
endif()
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
target_link_libraries(zone PRIVATE gm_commands_zone common RecastNavigation::Detour)
if(EQEMU_BUILD_LUA)
target_link_libraries(zone PRIVATE lua_zone)
endif()
if(EQEMU_BUILD_PERL)
target_link_libraries(zone PRIVATE perl_zone)
endif()
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
+1 -1
View File
@@ -5901,7 +5901,7 @@ float Mob::CheckHeroicBonusesDataBuckets(std::string bucket_name)
DataBucketKey k = GetScopedBucketKeys();
k.key = bucket_name;
if (IsOfClientBot()) {
bucket_value = DataBucket::GetData(k).value;
bucket_value = DataBucket::GetData(&database, k).value;
}
if (bucket_value.empty() || !Strings::IsNumber(bucket_value)) {
+2 -2
View File
@@ -8224,13 +8224,13 @@ bool Bot::CheckDataBucket(std::string bucket_name, const std::string& bucket_val
DataBucketKey k = GetScopedBucketKeys();
k.key = bucket_name;
auto b = DataBucket::GetData(k);
auto b = DataBucket::GetData(&database, k);
if (b.value.empty() && GetBotOwner()) {
// fetch from owner
k = GetBotOwner()->GetScopedBucketKeys();
k.key = bucket_name;
b = DataBucket::GetData(k);
b = DataBucket::GetData(&database, k);
if (b.value.empty()) {
return false;
}
-62
View File
@@ -863,65 +863,3 @@ void SendSpellTypeWindow(Client* c, const Seperator* sep) {
c->SendPopupToClient("Spell Types", popup_text.c_str());
}
#include "bot_commands/actionable.cpp"
#include "bot_commands/appearance.cpp"
#include "bot_commands/apply_poison.cpp"
#include "bot_commands/apply_potion.cpp"
#include "bot_commands/attack.cpp"
#include "bot_commands/behind_mob.cpp"
#include "bot_commands/blocked_buffs.cpp"
#include "bot_commands/bot.cpp"
#include "bot_commands/bot_settings.cpp"
#include "bot_commands/cast.cpp"
#include "bot_commands/class_race_list.cpp"
#include "bot_commands/click_item.cpp"
#include "bot_commands/copy_settings.cpp"
#include "bot_commands/default_settings.cpp"
#include "bot_commands/depart.cpp"
#include "bot_commands/discipline.cpp"
#include "bot_commands/distance_ranged.cpp"
#include "bot_commands/find_aliases.cpp"
#include "bot_commands/follow.cpp"
#include "bot_commands/guard.cpp"
#include "bot_commands/heal_rotation.cpp"
#include "bot_commands/help.cpp"
#include "bot_commands/hold.cpp"
#include "bot_commands/illusion_block.cpp"
#include "bot_commands/inventory.cpp"
#include "bot_commands/item_use.cpp"
#include "bot_commands/max_melee_range.cpp"
#include "bot_commands/name.cpp"
#include "bot_commands/owner_option.cpp"
#include "bot_commands/pet.cpp"
#include "bot_commands/pick_lock.cpp"
#include "bot_commands/pickpocket.cpp"
#include "bot_commands/precombat.cpp"
#include "bot_commands/pull.cpp"
#include "bot_commands/release.cpp"
#include "bot_commands/set_assistee.cpp"
#include "bot_commands/sit_hp_percent.cpp"
#include "bot_commands/sit_in_combat.cpp"
#include "bot_commands/sit_mana_percent.cpp"
#include "bot_commands/spell.cpp"
#include "bot_commands/spell_aggro_checks.cpp"
#include "bot_commands/spell_announce_cast.cpp"
#include "bot_commands/spell_delays.cpp"
#include "bot_commands/spell_engaged_priority.cpp"
#include "bot_commands/spell_holds.cpp"
#include "bot_commands/spell_idle_priority.cpp"
#include "bot_commands/spell_max_hp_pct.cpp"
#include "bot_commands/spell_max_mana_pct.cpp"
#include "bot_commands/spell_max_thresholds.cpp"
#include "bot_commands/spell_min_hp_pct.cpp"
#include "bot_commands/spell_min_mana_pct.cpp"
#include "bot_commands/spell_min_thresholds.cpp"
#include "bot_commands/spell_pursue_priority.cpp"
#include "bot_commands/spell_resist_limits.cpp"
#include "bot_commands/spell_target_count.cpp"
#include "bot_commands/spelltypes.cpp"
#include "bot_commands/summon.cpp"
#include "bot_commands/suspend.cpp"
#include "bot_commands/taunt.cpp"
#include "bot_commands/timer.cpp"
#include "bot_commands/track.cpp"
#include "bot_commands/view_combos.cpp"
@@ -1,4 +1,5 @@
#include "../bot_command.h"
#include "../doors.h"
void bot_command_pick_lock(Client *c, const Seperator *sep)
{
@@ -1,6 +1,8 @@
#include <chrono>
#include <iostream>
#include <random>
#include "../zone_cli.h"
#include "../../common/cli/eqemu_command_handler.h"
#include "../../common/http/httplib.h"
#include "../../common/eqemu_logsys.h"
#include "../sidecar_api/sidecar_api.h"
@@ -116,7 +118,7 @@ void RunBenchmarkCycle(uint64_t target_rows)
break;
}
DataBucket::SetData(e);
DataBucket::SetData(&database, e);
inserted_keys.emplace_back(e);
}
@@ -129,7 +131,7 @@ void RunBenchmarkCycle(uint64_t target_rows)
auto update_start = std::chrono::high_resolution_clock::now();
for (auto &key: inserted_keys) {
// 🔍 Retrieve existing bucket using scoped `GetData`
auto e = DataBucket::GetData(key);
auto e = DataBucket::GetData(&database, key);
if (e.id > 0) {
// create a new key object with the updated values
DataBucketKey bucket_entry_key{
@@ -145,7 +147,7 @@ void RunBenchmarkCycle(uint64_t target_rows)
};
// 🔄 Update using DataBucket class
DataBucket::SetData(bucket_entry_key);
DataBucket::SetData(&database, bucket_entry_key);
}
}
auto update_end = std::chrono::high_resolution_clock::now();
@@ -188,7 +190,7 @@ void RunBenchmarkCycle(uint64_t target_rows)
k.instance_id = entity_choice;
}
DataBucket::GetData(key);
DataBucket::GetData(&database, key);
}
auto read_cached_end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> read_cached_time = read_cached_end - read_cached_start;
@@ -206,7 +208,7 @@ void RunBenchmarkCycle(uint64_t target_rows)
.character_id = 999999999, // use scoped value
};
DataBucket::GetData(k);
DataBucket::GetData(&database, k);
}
auto read_client_cache_miss_end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> read_client_cache_miss_time = read_client_cache_miss_end - read_client_cache_miss_start;
@@ -260,7 +262,7 @@ void RunBenchmarkCycle(uint64_t target_rows)
k.instance_id = entity_choice;
}
DataBucket::DeleteData(k);
DataBucket::DeleteData(&database, k);
}
auto delete_end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> delete_time = delete_end - delete_start;
@@ -1,3 +1,5 @@
#include "../zone_cli.h"
#include "../../common/cli/eqemu_command_handler.h"
#include "../../common/http/httplib.h"
#include "../../common/eqemu_logsys.h"
#include "../sidecar_api/sidecar_api.h"
@@ -1,3 +1,5 @@
#include "../../zone_cli.h"
#include "../../common/cli/eqemu_command_handler.h"
#include "../../common/http/httplib.h"
#include "../../common/eqemu_logsys.h"
#include "../../common/platform.h"
@@ -7,6 +9,10 @@
extern Zone* zone;
void RunTest(const std::string& test_name, const std::string& expected, const std::string& actual);
void RunTest(const std::string& test_name, bool expected, bool actual);
void RunTest(const std::string& test_name, int expected, int actual);
void ZoneCLI::TestDataBuckets(int argc, char** argv, argh::parser& cmd, std::string& description)
{
if (cmd[{"-h", "--help"}]) {
@@ -1,3 +1,5 @@
#include "../../zone_cli.h"
#include "../../common/cli/eqemu_command_handler.h"
#include "../../common/http/httplib.h"
#include "../../common/eqemu_logsys.h"
#include "../../common/platform.h"
@@ -9,6 +11,10 @@
extern Zone *zone;
using json = nlohmann::json;
void RunTest(const std::string& test_name, const std::string& expected, const std::string& actual);
void RunTest(const std::string& test_name, bool expected, bool actual);
void RunTest(const std::string& test_name, int expected, int actual);
struct HandinEntry {
std::string item_id = "0";
uint32 count = 0;
@@ -1,3 +1,5 @@
#include "../../zone_cli.h"
#include "../../common/cli/eqemu_command_handler.h"
#include "../../common/eqemu_logsys.h"
#include "../../common/platform.h"
#include "../../zone.h"
@@ -6,6 +8,10 @@
extern Zone *zone;
void RunTest(const std::string& test_name, const std::string& expected, const std::string& actual);
void RunTest(const std::string& test_name, bool expected, bool actual);
void RunTest(const std::string& test_name, int expected, int actual);
void ZoneCLI::TestNpcHandinsMultiQuest(int argc, char **argv, argh::parser &cmd, std::string &description)
{
if (cmd[{"-h", "--help"}]) {
@@ -1,6 +1,6 @@
#include "../../zone.h"
inline void RunTest(const std::string &test_name, const std::string &expected, const std::string &actual)
void RunTest(const std::string &test_name, const std::string &expected, const std::string &actual)
{
if (expected == actual) {
std::cout << "[✅] " << test_name << " PASSED\n";
@@ -12,7 +12,7 @@ inline void RunTest(const std::string &test_name, const std::string &expected, c
}
}
inline void RunTest(const std::string &test_name, bool expected, bool actual)
void RunTest(const std::string &test_name, bool expected, bool actual)
{
if (expected == actual) {
std::cout << "[✅] " << test_name << " PASSED\n";
@@ -25,7 +25,7 @@ inline void RunTest(const std::string &test_name, bool expected, bool actual)
}
}
inline void RunTest(const std::string &test_name, int expected, int actual)
void RunTest(const std::string &test_name, int expected, int actual)
{
if (expected == actual) {
std::cout << "[✅] " << test_name << " PASSED\n";
@@ -40,7 +40,7 @@ inline void RunTest(const std::string &test_name, int expected, int actual)
extern Zone *zone;
inline void SetupZone(std::string zone_short_name, uint32 instance_id = 0) {
void SetupZone(std::string zone_short_name, uint32 instance_id = 0) {
EQEmuLogSys::Instance()->SilenceConsoleLogging();
EQEmuLogSys::Instance()->log_settings[Logs::ZoneState].log_to_console = std::getenv("DEBUG") ? 3 : 0;
@@ -1,11 +1,18 @@
extern Zone *zone;
#include "../../zone_cli.h"
#include "../../common/cli/eqemu_command_handler.h"
#include <cereal/archives/json.hpp>
#include <cereal/types/map.hpp>
#include "../../common/repositories/npc_types_repository.h"
#include "../../corpse.h"
#include "../../../common/repositories/respawn_times_repository.h"
extern Zone* zone;
void RunTest(const std::string& test_name, const std::string& expected, const std::string& actual);
void RunTest(const std::string& test_name, bool expected, bool actual);
void RunTest(const std::string& test_name, int expected, int actual);
void SetupZone(std::string zone_short_name, uint32 instance_id = 0);
inline void ClearState()
{
ZoneStateSpawnsRepository::DeleteWhere(database, "zone_id = 32 and instance_id = 0");
+17 -16
View File
@@ -4840,7 +4840,7 @@ bool Client::IsNameChangeAllowed() {
auto k = GetScopedBucketKeys();
k.key = "name_change_allowed";
auto b = DataBucket::GetData(k);
auto b = DataBucket::GetData(&database, k);
if (!b.value.empty()) {
return true;
}
@@ -4856,7 +4856,7 @@ bool Client::ClearNameChange() {
auto k = GetScopedBucketKeys();
k.key = "name_change_allowed";
DataBucket::DeleteData(k);
DataBucket::DeleteData(&database, k);
return true;
}
@@ -4878,7 +4878,7 @@ void Client::GrantNameChange() {
auto k = GetScopedBucketKeys();
k.key = "name_change_allowed";
k.value = "allowed"; // potentially put a timestamp here
DataBucket::SetData(k);
DataBucket::SetData(&database, k);
InvokeChangeNameWindow(true);
}
@@ -4891,7 +4891,7 @@ bool Client::IsPetNameChangeAllowed() {
DataBucketKey k = GetScopedBucketKeys();
k.key = "PetNameChangesAllowed";
auto b = DataBucket::GetData(k);
auto b = DataBucket::GetData(&database, k);
if (!b.value.empty()) {
return true;
}
@@ -4915,7 +4915,7 @@ void Client::GrantPetNameChange() {
DataBucketKey k = GetScopedBucketKeys();
k.key = "PetNameChangesAllowed";
k.value = "true";
DataBucket::SetData(k);
DataBucket::SetData(&database, k);
InvokeChangePetName(true);
}
@@ -4924,7 +4924,7 @@ void Client::ClearPetNameChange() {
DataBucketKey k = GetScopedBucketKeys();
k.key = "PetNameChangesAllowed";
DataBucket::DeleteData(k);
DataBucket::DeleteData(&database, k);
}
bool Client::ChangePetName(std::string new_name)
@@ -9671,9 +9671,9 @@ void Client::SetDevToolsEnabled(bool in_dev_tools_enabled)
const auto dev_tools_key = fmt::format("{}-dev-tools-disabled", AccountID());
if (in_dev_tools_enabled) {
DataBucket::DeleteData(dev_tools_key);
DataBucket::DeleteData(&database, dev_tools_key);
} else {
DataBucket::SetData(dev_tools_key, "true");
DataBucket::SetData(&database, dev_tools_key, "true");
}
Client::dev_tools_enabled = in_dev_tools_enabled;
@@ -9846,7 +9846,7 @@ void Client::SendToGuildHall()
uint32 expiration_time = (RuleI(Instances, GuildHallExpirationDays) * 86400);
uint16 instance_id = 0;
std::string guild_hall_instance_key = fmt::format("guild-hall-instance-{}", GuildID());
std::string instance_data = DataBucket::GetData(guild_hall_instance_key);
std::string instance_data = DataBucket::GetData(&database, guild_hall_instance_key);
if (!instance_data.empty() && Strings::ToInt(instance_data) > 0) {
instance_id = Strings::ToInt(instance_data);
}
@@ -9863,6 +9863,7 @@ void Client::SendToGuildHall()
}
DataBucket::SetData(
&database,
guild_hall_instance_key,
std::to_string(instance_id),
std::to_string(expiration_time)
@@ -10915,7 +10916,7 @@ void Client::SendToInstance(std::string instance_type, std::string zone_short_na
instance_identifier,
zone_short_name
);
std::string current_bucket_value = DataBucket::GetData(full_bucket_name);
std::string current_bucket_value = DataBucket::GetData(&database, full_bucket_name);
uint16 instance_id = 0;
if (current_bucket_value.length() > 0) {
@@ -10931,7 +10932,7 @@ void Client::SendToInstance(std::string instance_type, std::string zone_short_na
return;
}
DataBucket::SetData(full_bucket_name, itoa(instance_id), itoa(duration));
DataBucket::SetData(&database, full_bucket_name, itoa(instance_id), itoa(duration));
}
AssignToInstance(instance_id);
@@ -13149,7 +13150,7 @@ std::string Client::GetAccountBucket(std::string bucket_name)
k.account_id = AccountID();
k.key = bucket_name;
return DataBucket::GetData(k).value;
return DataBucket::GetData(&database, k).value;
}
void Client::SetAccountBucket(std::string bucket_name, std::string bucket_value, std::string expiration)
@@ -13160,7 +13161,7 @@ void Client::SetAccountBucket(std::string bucket_name, std::string bucket_value,
k.expires = expiration;
k.value = bucket_value;
DataBucket::SetData(k);
DataBucket::SetData(&database, k);
}
void Client::DeleteAccountBucket(std::string bucket_name)
@@ -13169,7 +13170,7 @@ void Client::DeleteAccountBucket(std::string bucket_name)
k.account_id = AccountID();
k.key = bucket_name;
DataBucket::DeleteData(k);
DataBucket::DeleteData(&database, k);
}
std::string Client::GetAccountBucketExpires(std::string bucket_name)
@@ -13178,7 +13179,7 @@ std::string Client::GetAccountBucketExpires(std::string bucket_name)
k.account_id = AccountID();
k.key = bucket_name;
return DataBucket::GetDataExpires(k);
return DataBucket::GetDataExpires(&database, k);
}
std::string Client::GetAccountBucketRemaining(std::string bucket_name)
@@ -13187,7 +13188,7 @@ std::string Client::GetAccountBucketRemaining(std::string bucket_name)
k.account_id = AccountID();
k.key = bucket_name;
return DataBucket::GetDataRemaining(k);
return DataBucket::GetDataRemaining(&database, k);
}
std::string Client::GetBandolierName(uint8 bandolier_slot)
+1 -1
View File
@@ -1853,7 +1853,7 @@ void Client::Handle_Connect_OP_ZoneEntry(const EQApplicationPacket *app)
*/
if (Admin() >= EQ::DevTools::GM_ACCOUNT_STATUS_LEVEL) {
const auto dev_tools_key = fmt::format("{}-dev-tools-disabled", AccountID());
if (DataBucket::GetData(dev_tools_key) == "true") {
if (DataBucket::GetData(&database, dev_tools_key) == "true") {
dev_tools_enabled = false;
}
}
+1 -1
View File
@@ -874,7 +874,7 @@ void Client::BulkSendMerchantInventory(int merchant_id, int npcid) {
DataBucketKey k = GetScopedBucketKeys();
k.key = bucket_name;
auto b = DataBucket::GetData(k);
auto b = DataBucket::GetData(&database, k);
if (b.value.empty()) {
continue;
}
+6 -6
View File
@@ -2485,27 +2485,27 @@ std::string Perl__get_rule(const char* rule_name)
std::string Perl__get_data(std::string bucket_key)
{
return DataBucket::GetData(bucket_key);
return DataBucket::GetData(&database, bucket_key);
}
std::string Perl__get_data_expires(std::string bucket_key)
{
return DataBucket::GetDataExpires(bucket_key);
return DataBucket::GetDataExpires(&database, bucket_key);
}
void Perl__set_data(std::string key, std::string value)
{
DataBucket::SetData(key, value);
DataBucket::SetData(&database, key, value);
}
void Perl__set_data(std::string key, std::string value, std::string expires_at)
{
DataBucket::SetData(key, value, expires_at);
DataBucket::SetData(&database, key, value, expires_at);
}
bool Perl__delete_data(std::string bucket_key)
{
return DataBucket::DeleteData(bucket_key);
return DataBucket::DeleteData(&database, bucket_key);
}
bool Perl__IsClassicEnabled()
@@ -3045,7 +3045,7 @@ void Perl__rename(std::string name)
std::string Perl__get_data_remaining(std::string bucket_name)
{
return DataBucket::GetDataRemaining(bucket_name);
return DataBucket::GetDataRemaining(&database, bucket_name);
}
const int Perl__getitemstat(uint32 item_id, std::string identifier)
+5 -5
View File
@@ -75,15 +75,15 @@ void Embperl::DoInit()
throw "Failed to init Perl (perl_alloc)";
}
PERL_SET_CONTEXT(my_perl);
PERL_SET_INTERP(my_perl);
PL_curinterp = (PerlInterpreter*)(my_perl);
PL_perl_destruct_level = 1;
perl_construct(my_perl);
perl_parse(my_perl, xs_init, argc, argv, nullptr);
perl_run(my_perl);
//a little routine we use a lot.
eval_pv("sub my_eval { eval $_[0];}", TRUE); //dies on error
//ruin the perl exit and command:
eval_pv("sub my_exit {}", TRUE);
eval_pv("sub my_sleep {}", TRUE);
@@ -95,7 +95,7 @@ void Embperl::DoInit()
GvCV_set(sleepgp, perl_get_cv("my_sleep", TRUE)); //dies on error
GvIMPORTED_CV_on(sleepgp);
}
//declare our file eval routine.
try {
init_eval_file();
@@ -181,7 +181,7 @@ Embperl::~Embperl()
void Embperl::Reinit()
{
PERL_SET_CONTEXT(my_perl);
PERL_SET_INTERP(my_perl);
PL_curinterp = (PerlInterpreter*)(my_perl);
PL_perl_destruct_level = 1;
perl_destruct(my_perl);
perl_free(my_perl);
+1 -1
View File
@@ -1299,7 +1299,7 @@ uint8 Client::GetCharMaxLevelFromBucket()
DataBucketKey k = GetScopedBucketKeys();
k.key = "CharMaxLevel";
auto b = DataBucket::GetData(k);
auto b = DataBucket::GetData(&database, k);
if (!b.value.empty()) {
if (Strings::IsNumber(b.value)) {
return static_cast<uint8>(Strings::ToUnsignedInt(b.value));
+169
View File
@@ -0,0 +1,169 @@
cmake_minimum_required(VERSION 3.20)
# gm commands
set(gm_command_sources
command.cpp
bot_command.cpp
gm_commands/acceptrules.cpp
gm_commands/advnpcspawn.cpp
gm_commands/aggrozone.cpp
gm_commands/ai.cpp
gm_commands/appearance.cpp
gm_commands/appearanceeffects.cpp
gm_commands/attack.cpp
gm_commands/augmentitem.cpp
gm_commands/ban.cpp
gm_commands/bugs.cpp
gm_commands/camerashake.cpp
gm_commands/castspell.cpp
gm_commands/chat.cpp
gm_commands/clearxtargets.cpp
gm_commands/copycharacter.cpp
gm_commands/corpse.cpp
gm_commands/corpsefix.cpp
gm_commands/countitem.cpp
gm_commands/damage.cpp
gm_commands/databuckets.cpp
gm_commands/dbspawn2.cpp
gm_commands/delacct.cpp
gm_commands/delpetition.cpp
gm_commands/depop.cpp
gm_commands/depopzone.cpp
gm_commands/devtools.cpp
gm_commands/disablerecipe.cpp
gm_commands/disarmtrap.cpp
gm_commands/doanim.cpp
gm_commands/door.cpp
gm_commands/door_manipulation.cpp
gm_commands/dye.cpp
gm_commands/dz.cpp
gm_commands/dzkickplayers.cpp
gm_commands/editmassrespawn.cpp
gm_commands/emote.cpp
gm_commands/emptyinventory.cpp
gm_commands/enablerecipe.cpp
gm_commands/entityvariable.cpp
gm_commands/exptoggle.cpp
gm_commands/faction.cpp
gm_commands/evolving_items.cpp
gm_commands/feature.cpp
gm_commands/find.cpp
gm_commands/fish.cpp
gm_commands/fixmob.cpp
gm_commands/flagedit.cpp
gm_commands/fleeinfo.cpp
gm_commands/forage.cpp
gm_commands/gearup.cpp
gm_commands/giveitem.cpp
gm_commands/givemoney.cpp
gm_commands/gmzone.cpp
gm_commands/goto.cpp
gm_commands/grantaa.cpp
gm_commands/grid.cpp
gm_commands/guild.cpp
gm_commands/hp.cpp
gm_commands/illusion_block.cpp
gm_commands/instance.cpp
gm_commands/interrogateinv.cpp
gm_commands/interrupt.cpp
gm_commands/invsnapshot.cpp
gm_commands/ipban.cpp
gm_commands/kick.cpp
gm_commands/kill.cpp
gm_commands/killallnpcs.cpp
gm_commands/list.cpp
gm_commands/lootsim.cpp
gm_commands/loc.cpp
gm_commands/logs.cpp
gm_commands/makepet.cpp
gm_commands/memspell.cpp
gm_commands/merchantshop.cpp
gm_commands/modifynpcstat.cpp
gm_commands/movechar.cpp
gm_commands/movement.cpp
gm_commands/myskills.cpp
gm_commands/mysql.cpp
gm_commands/mystats.cpp
gm_commands/npccast.cpp
gm_commands/npcedit.cpp
gm_commands/npceditmass.cpp
gm_commands/npcemote.cpp
gm_commands/npcloot.cpp
gm_commands/npcsay.cpp
gm_commands/npcshout.cpp
gm_commands/npcspawn.cpp
gm_commands/npctypespawn.cpp
gm_commands/nudge.cpp
gm_commands/nukebuffs.cpp
gm_commands/nukeitem.cpp
gm_commands/object.cpp
gm_commands/object_manipulation.cpp
gm_commands/parcels.cpp
gm_commands/path.cpp
gm_commands/peqzone.cpp
gm_commands/petitems.cpp
gm_commands/petname.cpp
gm_commands/picklock.cpp
gm_commands/profanity.cpp
gm_commands/push.cpp
gm_commands/raidloot.cpp
gm_commands/randomfeatures.cpp
gm_commands/refreshgroup.cpp
gm_commands/reload.cpp
gm_commands/removeitem.cpp
gm_commands/repop.cpp
gm_commands/resetaa.cpp
gm_commands/resetaa_timer.cpp
gm_commands/resetdisc_timer.cpp
gm_commands/revoke.cpp
gm_commands/roambox.cpp
gm_commands/rules.cpp
gm_commands/save.cpp
gm_commands/scale.cpp
gm_commands/scribespell.cpp
gm_commands/scribespells.cpp
gm_commands/sendzonespawns.cpp
gm_commands/sensetrap.cpp
gm_commands/serverrules.cpp
gm_commands/set.cpp
gm_commands/show.cpp
gm_commands/shutdown.cpp
gm_commands/spawn.cpp
gm_commands/spawneditmass.cpp
gm_commands/spawnfix.cpp
gm_commands/faction_association.cpp
gm_commands/stun.cpp
gm_commands/summon.cpp
gm_commands/summonburiedplayercorpse.cpp
gm_commands/summonitem.cpp
gm_commands/suspend.cpp
gm_commands/suspendmulti.cpp
gm_commands/takeplatinum.cpp
gm_commands/task.cpp
gm_commands/traindisc.cpp
gm_commands/tune.cpp
gm_commands/undye.cpp
gm_commands/unmemspell.cpp
gm_commands/unmemspells.cpp
gm_commands/unscribespell.cpp
gm_commands/unscribespells.cpp
gm_commands/untraindisc.cpp
gm_commands/untraindiscs.cpp
gm_commands/wc.cpp
gm_commands/worldshutdown.cpp
gm_commands/worldwide.cpp
gm_commands/wp.cpp
gm_commands/wpadd.cpp
gm_commands/zone.cpp
gm_commands/zonebootup.cpp
gm_commands/zoneshutdown.cpp
gm_commands/zonevariable.cpp
gm_commands/zone_instance.cpp
gm_commands/zone_shard.cpp
gm_commands/zsave.cpp
)
add_library(gm_commands_zone STATIC ${gm_command_sources})
target_link_libraries(gm_commands_zone PRIVATE common)
set_target_properties(gm_commands_zone PROPERTIES UNITY_BUILD ON UNITY_BUILD_BATCH_SIZE 32)
+3 -3
View File
@@ -50,7 +50,7 @@ void command_databuckets(Client *c, const Seperator *sep)
!npc_id &&
!bot_id
) {
if (!DataBucket::DeleteData(key_filter)) {
if (!DataBucket::DeleteData(&database, key_filter)) {
c->Message(
Chat::White,
fmt::format(
@@ -76,7 +76,7 @@ void command_databuckets(Client *c, const Seperator *sep)
k.npc_id = npc_id;
k.bot_id = bot_id;
if (!DataBucket::DeleteData(k)) {
if (!DataBucket::DeleteData(&database, k)) {
c->Message(
Chat::White,
fmt::format(
@@ -123,7 +123,7 @@ void command_databuckets(Client *c, const Seperator *sep)
const std::string& expires_string = expires == 0 ? "Never" : std::to_string(expires);
DataBucket::SetData(k);
DataBucket::SetData(&database, k);
c->Message(
Chat::White,
+26 -25
View File
@@ -1,29 +1,30 @@
#include "../client.h"
#include "find/aa.cpp"
#include "find/account.cpp"
#include "find/body_type.cpp"
#include "find/bot.cpp"
#include "find/bug_category.cpp"
#include "find/character.cpp"
#include "find/class.cpp"
#include "find/comparison_type.cpp"
#include "find/currency.cpp"
#include "find/deity.cpp"
#include "find/emote.cpp"
#include "find/faction.cpp"
#include "find/item.cpp"
#include "find/language.cpp"
#include "find/ldon_theme.cpp"
#include "find/npctype.cpp"
#include "find/object_type.cpp"
#include "find/race.cpp"
#include "find/recipe.cpp"
#include "find/skill.cpp"
#include "find/stance.cpp"
#include "find/spell.cpp"
#include "find/special_ability.cpp"
#include "find/task.cpp"
#include "find/zone.cpp"
void FindAA(Client* c, const Seperator* sep);
void FindAccount(Client* c, const Seperator* sep);
void FindBodyType(Client* c, const Seperator* sep);
void FindBot(Client* c, const Seperator* sep);
void FindBugCategory(Client* c, const Seperator* sep);
void FindCharacter(Client* c, const Seperator* sep);
void FindClass(Client* c, const Seperator* sep);
void FindComparisonType(Client* c, const Seperator* sep);
void FindCurrency(Client* c, const Seperator* sep);
void FindDeity(Client* c, const Seperator* sep);
void FindEmote(Client* c, const Seperator* sep);
void FindFaction(Client* c, const Seperator* sep);
void FindItem(Client* c, const Seperator* sep);
void FindLanguage(Client* c, const Seperator* sep);
void FindLDoNTheme(Client* c, const Seperator* sep);
void FindNPCType(Client* c, const Seperator* sep);
void FindObjectType(Client* c, const Seperator* sep);
void FindRace(Client* c, const Seperator* sep);
void FindRecipe(Client* c, const Seperator* sep);
void FindSkill(Client* c, const Seperator* sep);
void FindSpecialAbility(Client* c, const Seperator* sep);
void FindStance(Client* c, const Seperator* sep);
void FindSpell(Client* c, const Seperator* sep);
void FindTask(Client* c, const Seperator* sep);
void FindZone(Client* c, const Seperator* sep);
void command_find(Client *c, const Seperator *sep)
{
@@ -1,5 +1,5 @@
#include "../../client.h"
#include "../../common/repositories/account_repository.h"
#include "../../../common/repositories/account_repository.h"
void FindAccount(Client *c, const Seperator *sep)
{
@@ -1,5 +1,5 @@
#include "../../client.h"
#include "../../common/repositories/bot_data_repository.h"
#include "../../../common/repositories/bot_data_repository.h"
void FindBot(Client *c, const Seperator *sep)
{
@@ -1,5 +1,5 @@
#include "../../client.h"
#include "../../common/repositories/character_data_repository.h"
#include "../../../common/repositories/character_data_repository.h"
void FindCharacter(Client *c, const Seperator *sep)
{
@@ -1,5 +1,5 @@
#include "../../client.h"
#include "../../common/repositories/items_repository.h"
#include "../../../common/repositories/items_repository.h"
void FindItem(Client *c, const Seperator *sep)
{

Some files were not shown because too many files have changed in this diff Show More