mirror of
https://github.com/slawkens/myaac.git
synced 2025-10-16 02:34:54 +02:00
Merge branch 'develop' into feature/new-router
This commit is contained in:
6
system/get_version_for_release.php
Normal file
6
system/get_version_for_release.php
Normal file
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
require __DIR__ . '/../common.php';
|
||||
if(IS_CLI) {
|
||||
echo MYAAC_VERSION;
|
||||
}
|
@@ -193,8 +193,14 @@ class CreateCharacter
|
||||
$player->setManaSpent($char_to_copy->getManaSpent());
|
||||
$player->setSoul($char_to_copy->getSoul());
|
||||
|
||||
for($skill = POT::SKILL_FIRST; $skill <= POT::SKILL_LAST; $skill++)
|
||||
$player->setSkill($skill, 10);
|
||||
for($skill = POT::SKILL_FIRST; $skill <= POT::SKILL_LAST; $skill++) {
|
||||
$value = 10;
|
||||
if (config('use_character_sample_skills')) {
|
||||
$value = $char_to_copy->getSkill($skill);
|
||||
}
|
||||
|
||||
$player->setSkill($skill, $value);
|
||||
}
|
||||
|
||||
$player->setLookBody($char_to_copy->getLookBody());
|
||||
$player->setLookFeet($char_to_copy->getLookFeet());
|
||||
@@ -234,16 +240,22 @@ class CreateCharacter
|
||||
|
||||
if($db->hasTable('player_skills')) {
|
||||
for($i=0; $i<7; $i++) {
|
||||
$value = 10;
|
||||
if (config('use_character_sample_skills')) {
|
||||
$value = $char_to_copy->getSkill($i);
|
||||
}
|
||||
$skillExists = $db->query('SELECT `skillid` FROM `player_skills` WHERE `player_id` = ' . $player->getId() . ' AND `skillid` = ' . $i);
|
||||
if($skillExists->rowCount() <= 0) {
|
||||
$db->query('INSERT INTO `player_skills` (`player_id`, `skillid`, `value`, `count`) VALUES ('.$player->getId().', '.$i.', 10, 0)');
|
||||
$db->query('INSERT INTO `player_skills` (`player_id`, `skillid`, `value`, `count`) VALUES ('.$player->getId().', '.$i.', ' . $value . ', 0)');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$loaded_items_to_copy = $db->query("SELECT * FROM player_items WHERE player_id = ".$char_to_copy->getId()."");
|
||||
foreach($loaded_items_to_copy as $save_item)
|
||||
$db->query("INSERT INTO `player_items` (`player_id` ,`pid` ,`sid` ,`itemtype`, `count`, `attributes`) VALUES ('".$player->getId()."', '".$save_item['pid']."', '".$save_item['sid']."', '".$save_item['itemtype']."', '".$save_item['count']."', '".$save_item['attributes']."');");
|
||||
foreach($loaded_items_to_copy as $save_item) {
|
||||
$blob = $db->quote($save_item['attributes']);
|
||||
$db->query("INSERT INTO `player_items` (`player_id` ,`pid` ,`sid` ,`itemtype`, `count`, `attributes`) VALUES ('".$player->getId()."', '".$save_item['pid']."', '".$save_item['sid']."', '".$save_item['itemtype']."', '".$save_item['count']."', $blob);");
|
||||
}
|
||||
|
||||
global $twig;
|
||||
$twig->display('success.html.twig', array(
|
||||
|
@@ -41,17 +41,22 @@ class GoogleReCAPTCHA
|
||||
}
|
||||
|
||||
$json = json_decode($response);
|
||||
//log_append('recaptcha.log', 'recaptcha_score: ' . $json->score . ', action:' . $json->action);
|
||||
if (!isset($json->action) || $json->action !== $action) {
|
||||
self::$errorType = self::ERROR_INVALID_ACTION;
|
||||
self::$errorMessage = 'Google ReCaptcha returned invalid action.';
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!isset($json->score) || $json->score < config('recaptcha_min_score')) {
|
||||
self::$errorType = self::ERROR_LOW_SCORE;
|
||||
self::$errorMessage = 'Your Google ReCaptcha score was too low.';
|
||||
return false;
|
||||
$recaptchaType = config('recaptcha_type');
|
||||
if ($recaptchaType === 'v3') { // score based
|
||||
//log_append('recaptcha.log', 'recaptcha_score: ' . $json->score . ', action:' . $json->action);
|
||||
|
||||
if (!isset($json->action) || $json->action !== $action) {
|
||||
self::$errorType = self::ERROR_INVALID_ACTION;
|
||||
self::$errorMessage = 'Google ReCaptcha returned invalid action.';
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!isset($json->score) || $json->score < config('recaptcha_v3_min_score')) {
|
||||
self::$errorType = self::ERROR_LOW_SCORE;
|
||||
self::$errorMessage = 'Your Google ReCaptcha score was too low.';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($json->success) || !$json->success) {
|
||||
|
@@ -2489,7 +2489,7 @@ class OTS_Player extends OTS_Row_DAO
|
||||
|
||||
$value = $this->db->query('SELECT ' . $this->db->fieldName('value') . ' FROM ' . $this->db->tableName('player_storage') . ' WHERE ' . $this->db->fieldName('key') . ' = ' . (int) $key . ' AND ' . $this->db->fieldName('player_id') . ' = ' . $this->data['id'])->fetch();
|
||||
|
||||
if($value !== false)
|
||||
if($value === false)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
6
system/migrations/33.php
Normal file
6
system/migrations/33.php
Normal file
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
// Increase size of ip in myaac_visitors table
|
||||
// according to this answer: https://stackoverflow.com/questions/166132/maximum-length-of-the-textual-representation-of-an-ipv6-address
|
||||
// the size of ipv6 can be maximal 45 chars
|
||||
|
||||
$db->exec('ALTER TABLE `' . TABLE_PREFIX . "visitors` MODIFY `ip` VARCHAR(45) NOT NULL;");
|
@@ -109,8 +109,24 @@
|
||||
|
||||
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_PASSWORDS') }}
|
||||
|
||||
{% if config.recaptcha_enabled %}
|
||||
<input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response" />
|
||||
{% if config.recaptcha_enabled %}
|
||||
{% if config.recaptcha_type == 'v3' %}
|
||||
<input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response" />
|
||||
{% elseif config.recaptcha_type == 'v2-invisible' %}
|
||||
<div class="g-recaptcha" data-sitekey="{{ config.recaptcha_site_key }}" data-bind="login-submit"></div>
|
||||
{% elseif config.recaptcha_type == 'v2-checkbox' %}
|
||||
<tr>
|
||||
<td class="LabelV" style="width: 150px">
|
||||
<span{% if errors.verification[0] is not null %} class="red"{% endif %}>Verification:</span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="g-recaptcha" data-sitekey="{{ config.recaptcha_site_key }}" data-theme="{{ config.recaptcha_v2_theme }}"></div>
|
||||
</td>
|
||||
</tr>
|
||||
{% if errors.verification is defined %}
|
||||
<tr><td></td><td><span class="FormFieldError">{{ errors.verification }}</span></td></tr>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_RECAPTCHA') }}
|
||||
@@ -329,9 +345,9 @@
|
||||
</form>
|
||||
{{ hook('HOOK_ACCOUNT_CREATE_AFTER_FORM') }}
|
||||
<script type="text/javascript" src="tools/check_name.js"></script>
|
||||
{% if config.recaptcha_enabled %}
|
||||
{% if config.recaptcha_enabled and config.recaptcha_type == 'v3' %}
|
||||
{% set action = 'register' %}
|
||||
{{ include('google_recaptcha.html.twig') }}
|
||||
{{ include('google_recaptcha_v3.html.twig') }}
|
||||
{% endif %}
|
||||
<style>
|
||||
#SuggestAccountNumber {
|
||||
|
@@ -40,7 +40,20 @@ Please enter your account {{ account|lower }} and your password.<br/><a href="{{
|
||||
<label for="remember_me"> Remember me</label></td>
|
||||
</tr>
|
||||
{% if config.recaptcha_enabled %}
|
||||
{% if config.recaptcha_type == 'v3' %}
|
||||
<input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response" />
|
||||
{% elseif config.recaptcha_type == 'v2-invisible' %}
|
||||
<div class="g-recaptcha" data-sitekey="{{ config.recaptcha_site_key }}" data-bind="login-submit"></div>
|
||||
{% elseif config.recaptcha_type == 'v2-checkbox' %}
|
||||
<tr>
|
||||
<td class="LabelV" style="width: 150px">
|
||||
<span{% if error is not null %} class="red"{% endif %}>Verification:</span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="g-recaptcha" data-sitekey="{{ config.recaptcha_site_key }}" data-theme="{{ config.recaptcha_v2_theme }}"></div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if error is not null %}
|
||||
<tr><td></td><td><span class="FormFieldError">{{ error }}</span></td></tr>
|
||||
@@ -77,7 +90,7 @@ Please enter your account {{ account|lower }} and your password.<br/><a href="{{
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{% if config.recaptcha_enabled %}
|
||||
{% if config.recaptcha_enabled and config.recaptcha_type == 'v3' %}
|
||||
{% set action = 'login' %}
|
||||
{{ include('google_recaptcha.html.twig') }}
|
||||
{{ include('google_recaptcha_v3.html.twig') }}
|
||||
{% endif %}
|
||||
|
@@ -22,9 +22,9 @@
|
||||
<div class="form-group row">
|
||||
<label for="select-type">Type</label>
|
||||
<select class="form-control" name="type" id="select-type">
|
||||
<option value="{{ constant('NEWS') }}" {% if type is defined and type == constant('NEWS') %}selected="yes"{% endif %}{% if action == 'edit' and type != constant('NEWS') %} disabled{% endif %}>News</option>
|
||||
<option value="{{ constant('TICKER') }}" {% if type is defined and type == constant('TICKER') %}selected="yes"{% endif %}{% if action == 'edit' and type != constant('TICKER') %} disabled{% endif %}>Ticket</option>
|
||||
<option value="{{ constant('ARTICLE') }}" {% if type is defined and type == constant('ARTICLE') %}selected="yes"{% endif %}{% if action == 'edit' and type != constant('ARTICLE') %} disabled{% endif %}>Article</option>
|
||||
<option value="{{ constant('NEWS') }}" {% if type is defined and type == constant('NEWS') %}selected="selected"{% endif %}{% if action == 'edit' and type != constant('NEWS') %} disabled{% endif %}>News</option>
|
||||
<option value="{{ constant('TICKER') }}" {% if type is defined and type == constant('TICKER') %}selected="selected"{% endif %}{% if action == 'edit' and type != constant('TICKER') %} disabled{% endif %}>Ticker</option>
|
||||
<option value="{{ constant('ARTICLE') }}" {% if type is defined and type == constant('ARTICLE') %}selected="selected"{% endif %}{% if action == 'edit' and type != constant('ARTICLE') %} disabled{% endif %}>Article</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
11
system/templates/google_recaptcha_v3.html.twig
Normal file
11
system/templates/google_recaptcha_v3.html.twig
Normal file
@@ -0,0 +1,11 @@
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
grecaptcha.ready(function() {
|
||||
grecaptcha.execute('{{ config.recaptcha_site_key }}', {action: '{{ action }}'}).then(function(token) {
|
||||
if (token) {
|
||||
document.getElementById('g-recaptcha-response').value = token;
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
@@ -1,8 +1,2 @@
|
||||
{% if constant('PAGE') == 'rules' %}
|
||||
<b>{{ config.lua.serverName }} Rules</b><br/>
|
||||
<textarea rows="25" wrap="physical" cols="70" readonly="true">
|
||||
{% endif %}
|
||||
{{ getCustomPage('rules_on_the_page') }}
|
||||
{% if constant('PAGE') == 'rules' %}
|
||||
</textarea>
|
||||
{% endif %}
|
||||
{{ getCustomPage('rules_on_the_page') | nl2br }}
|
||||
|
@@ -17,5 +17,5 @@
|
||||
</div>
|
||||
</noscript>
|
||||
{% if config.recaptcha_enabled %}
|
||||
<script src="https://www.google.com/recaptcha/api.js?render={{ config.recaptcha_site_key }}"></script>
|
||||
<script src="https://www.google.com/recaptcha/api.js{% if config('recaptcha_type') == 'v2-checkbox' %}?render={{ config.recaptcha_site_key }}{% endif %}"></script>
|
||||
{% endif %}
|
||||
|
Reference in New Issue
Block a user