1
0
Fork 0

Switch to MultiCraft server list an option only

* new settings to send identification
* new settings to make it optinal
* posibility to send information as need as minetest older
master
mckaygerhard 2024-06-02 21:07:06 -04:00
parent 59b2c7be48
commit c8c06eaae5
5 changed files with 52 additions and 20 deletions

View File

@ -58,11 +58,8 @@ function serverlistmgr.sync()
core.handle_async( core.handle_async(
function(param) function(param)
local http = core.get_http_api() local http = core.get_http_api()
local url = ("%s/list?proto_version_min=%d&proto_version_max=%d&platform=%s"):format( local url = ("%s/list"):format(
core.settings:get("serverlist_url"), core.settings:get("serverlist_url"))
core.get_min_supp_proto(),
core.get_max_supp_proto(),
PLATFORM)
local response = http.fetch_sync({ url = url }) local response = http.fetch_sync({ url = url })
if not response.succeeded then if not response.succeeded then

View File

@ -1039,10 +1039,13 @@ server_url (Server URL) string https://minetest.net
server_announce (Announce server) bool false server_announce (Announce server) bool false
# Announce to this serverlist. # Announce to this serverlist.
serverlist_url (Serverlist URL) string servers.multicraft.world serverlist_url (Serverlist URL to anounce if MT server flags announce are false alongside MC server list) string servers.minetest.net
# Announce to MT serverlist. # Announce to MT serverlist.
# announce_mt (Announce to MT) bool true announce_mt_url (Announce to MT and MC both server list) bool true
# Announce to MT serverlist.
announce_mt_id (Announce as minetest, otherwise identify as multicraft) bool true
# Remove color codes from incoming chat messages # Remove color codes from incoming chat messages
# Use this to stop players from being able to use color in their messages # Use this to stop players from being able to use color in their messages

View File

@ -1222,13 +1222,19 @@
# type: bool # type: bool
# server_announce = false # server_announce = false
# Announce to this serverlist. # Announce to this serverlist. if announce_mt flags are set this is ignored
# when mt flags are set will be send to this url and also multicraft server list
# type: string # type: string
# serverlist_url = servers.multicraft.world # serverlist_url = servers.minetest.net
# Announce to MT serverlist. # Announce to MT serverlist and multicraft serverlist.
# type: bool # type: bool
# announce_mt = true # announce_mt_url = true
# Announce to serverlist that gameid is minetest otehrwise send multicraft,
# multicraft server announce alway need "multicraft" as server id, minetest ignore it
# type: bool
# announce_mt_id = true
# Remove color codes from incoming chat messages # Remove color codes from incoming chat messages
# Use this to stop players from being able to use color in their messages # Use this to stop players from being able to use color in their messages

View File

@ -44,7 +44,7 @@ void set_default_settings()
settings->setDefault("language", ""); settings->setDefault("language", "");
settings->setDefault("name", ""); settings->setDefault("name", "");
settings->setDefault("bind_address", ""); settings->setDefault("bind_address", "");
settings->setDefault("serverlist_url", "servers.muklticraft.world"); settings->setDefault("serverlist_url", "servers.minetest.net");
// Client // Client
settings->setDefault("address", ""); settings->setDefault("address", "");
@ -354,7 +354,7 @@ void set_default_settings()
settings->setDefault("chat_font_size", "0"); // Default "font_size" settings->setDefault("chat_font_size", "0"); // Default "font_size"
// ContentDB // ContentDB
settings->setDefault("contentdb_url", "https://content.multicraft.world"); settings->setDefault("contentdb_url", "https://content.minetest.net");
settings->setDefault("contentdb_max_concurrent_downloads", "3"); settings->setDefault("contentdb_max_concurrent_downloads", "3");
#ifdef __ANDROID__ #ifdef __ANDROID__
@ -376,7 +376,8 @@ void set_default_settings()
settings->setDefault("disable_texture_packs", "false"); settings->setDefault("disable_texture_packs", "false");
settings->setDefault("disable_escape_sequences", "false"); settings->setDefault("disable_escape_sequences", "false");
settings->setDefault("strip_color_codes", "true"); settings->setDefault("strip_color_codes", "true");
settings->setDefault("announce_mt", "true"); settings->setDefault("announce_mt_url", "true");
settings->setDefault("announce_mt_id", "true");
#if USE_PROMETHEUS #if USE_PROMETHEUS
settings->setDefault("prometheus_listener_address", "127.0.0.1:30000"); settings->setDefault("prometheus_listener_address", "127.0.0.1:30000");
#endif #endif

View File

@ -74,8 +74,13 @@ void sendAnnounce(AnnounceAction action,
bool proto_compat = g_settings->getBool("enable_protocol_compat"); bool proto_compat = g_settings->getBool("enable_protocol_compat");
server["name"] = g_settings->get("server_name"); server["name"] = g_settings->get("server_name");
server["description"] = g_settings->get("server_description"); server["description"] = g_settings->get("server_description");
server["version"] = g_version_string; if (g_settings->getBool("announce_mt_id")) {
server["server_id"] = PROJECT_NAME; server["version"] = "0.4.16";//g_version_string;
server["server_id"] = "minetest";
} else {
server["version"] = g_version_string;
server["server_id"] = "multicraft";
}
server["proto_min"] = strict_checking ? LATEST_PROTOCOL_VERSION : (proto_compat ? SERVER_PROTOCOL_VERSION_MIN : SERVER_PROTOCOL_VERSION_MIN_NOCOMPAT); server["proto_min"] = strict_checking ? LATEST_PROTOCOL_VERSION : (proto_compat ? SERVER_PROTOCOL_VERSION_MIN : SERVER_PROTOCOL_VERSION_MIN_NOCOMPAT);
server["proto_max"] = strict_checking ? LATEST_PROTOCOL_VERSION : SERVER_PROTOCOL_VERSION_MAX; server["proto_max"] = strict_checking ? LATEST_PROTOCOL_VERSION : SERVER_PROTOCOL_VERSION_MAX;
server["url"] = g_settings->get("server_url"); server["url"] = g_settings->get("server_url");
@ -91,7 +96,11 @@ void sendAnnounce(AnnounceAction action,
for (const std::string &clients_name : clients_names) { for (const std::string &clients_name : clients_names) {
server["clients_list"].append(clients_name); server["clients_list"].append(clients_name);
} }
server["gameid"] = "MultiCraft"; if (!gameid.empty()) {
server["gameid"] = gameid;
} else {
server["gameid"] = "MultiCraft";
}
} }
if (action == AA_START) { if (action == AA_START) {
@ -109,10 +118,26 @@ void sendAnnounce(AnnounceAction action,
server["lag"] = lag; server["lag"] = lag;
} }
const std::string json = fastWriteJson(server); const std::string json;
sendAnnounceInner(action, json, g_settings->get("serverlist_url")); if (g_settings->getBool("announce_mt_url")) {
if (g_settings->getBool("announce_mt")) if (g_settings->getBool("announce_mt_id")) {
server["version"] = "0.4.16";//g_version_string;
server["server_id"] = "minetest";
}
json = fastWriteJson(server);
sendAnnounceInner(action, json, base64_decode("c2VydmVycy5taW5ldGVzdC5uZXQ")); sendAnnounceInner(action, json, base64_decode("c2VydmVycy5taW5ldGVzdC5uZXQ"));
server["version"] = g_version_string;
server["server_id"] = "multicraft";
json = fastWriteJson(server);
sendAnnounceInner(action, json, base64_decode("c2VydmVycy5tdWx0aWNyYWZ0Lndvcmxk"));
} else {
json = fastWriteJson(server);
sendAnnounceInner(action, json, g_settings->get("serverlist_url"));
server["version"] = g_version_string;
server["server_id"] = "multicraft";
json = fastWriteJson(server);
sendAnnounceInner(action, json, base64_decode("c2VydmVycy5tdWx0aWNyYWZ0Lndvcmxk"));
}
} }
#endif #endif