Could not pass. спамит от регионов MysteryGuard

    public function onBlockPlace(BlockPlaceEvent $event)
    {
        $player = $event->getPlayer(); $username = strtolower($player->getName());

        $block = $event->getBlock();

		$x = round($block->getX()); $y = round($block->getY()); $z = round($block->getZ()); $level = $block->getLevel()->getName();

        $result = $this->db->query("SELECT * FROM AREAS WHERE (Pos1X <= $x AND $x <= Pos2X) AND (Pos1Y <= $y AND $y <= Pos2Y) AND (Pos1Z <= $z AND $z <= Pos2Z) AND Level = '" . $level . "';")->fetchArray(SQLITE3_ASSOC);
        $member = $this->db->query("SELECT COUNT(*) as count FROM MEMBERS WHERE Region = '" . $result['Region'] . "' AND Name = '$username'")->fetchArray(SQLITE3_ASSOC); //ТУТ 209
        $flag = $this->db->query("SELECT COUNT(*) as count FROM FLAGS WHERE Region = '" . $result['Region'] . "' AND Flag = 'build' AND Value = 'allow'")->fetchArray(SQLITE3_ASSOC);
        //if ($result !== false and $username != $result['Owner'] and !$player->isOp() and !$member['count'] and !$flag['count']) {
			  if ($result !== false and $username != $result['Owner'] and !$member['count'] and !$flag['count']) {
                if ($player->hasPermission('wg.all') && $result['Region'] != 'spawn' && $result['Region'] != 'pvp' && $result['Region'] != 'pvp1' && $result['Region'] != 'pvp2' && $result['Region'] != 'spawn1') return;
                else {
                    $player->sendMessage("§8§l§aПриват§r§8§r  §f➝ §fВы не можете ставить блоки на этой территории");
					$player->addTitle("\n§8⌊§l§cПриват§r§8⌉","§fЗдесь регион");
					$player->getLevel()->addSound(new ClickSound($player));
                    $event->setCancelled(true);
                }
        }
    }


use есть

и где тут линию 209?

лень все читать

Запрос к бд даёт false, а ты хочешь получить элемент массива. Как я понял, закомментированая строка как раз-таки и есть проверка на этот false

$result возвращает пустую выборку, запрашиваемых данных нет в бд

тебе никто не обязан

Как нагло… А не пойти бы тебе на одно место?

1 лайк

ахахахахахаха

Ну я не знаю как в этих бд работать

в файле(бд) есть все регионы, но они почему-то но читаются

$member = $this->db->query("SELECT COUNT(*) as count FROM MEMBERS WHERE Region = '" . $result['Region'] . "' AND Name = '$username'")->fetchArray(SQLITE3_ASSOC);

Убери эту строку и проверь есть ли ошибки если нет тогда возьми код с 210 и измени так переменные и всё а если есть тогда ты используешь BD не так тогда тебе нужно писать заново всё