Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Туториал По плагину HomeSpawnPlus

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем Reality_SC, 16 май 2016.

  1. Автор темы
    Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    [ВНИМАНИЕ] Официальная документация очень обширна, поэтому я не могу привести её сюда всю в доступной форме быстро. Извините, если что-то задержится на недели.

    Я вижу большую несправедливость в том, что на RuBukkit-е нет никакой информации про такой замечательный плагин, как HomeSpawnPlus.


    HomeSpawnPlus (HSP) — наиболее функциональный плагин для управления домами и спавнами для серверов. HSP гибок за счёт использования событий и стратегий, которые позволяют настроить сервер под все Ваши нужды. Если Вам нужно сделать на сервере простую механику умер/возродился дома, то HSP, конечно же, может это сделать, но для таких целей можно найти и другие плагины, настроить которые будет гораздо легче. Вы должны понимать, что Вы делаете. Если Вы точно знаете, что Вам нужно, и для этого требуется максимальная возможность настроек, то HSP — точно для Вас.
    События, стратегии, кастомные команды и интеграция с другими плагинами (WorldGuard, Multiverse и т.п.) позволяет контролировать буквально каждый аспект спавнов и домашних точек.

    P.S. То, что подчёркнуто, скоро будет описано в постах ниже.

    Возможности HSP.
    • Дома в разных мирах (по дому на мир; много домов в каждом мире; единственный глобальный дом; другие варианты).
    • Конфигурация действий, происходящих при событиях, таких как вход игрока в игру, ввод /spawn или /home, смерти и других.
    • Установка спавна для игроков, подключающихся впервые.
    • Разогревы (cooldowns) and остывания (warmups), которые могут быть отменены движением или уроном. Advanced details here.
    • Поддержка экономики (через Vault) — можно брать мзду с игроков за использование команд.
    • Лимиты на дома, по группам или по пермишенам. More documentation.
    • Вообще всё можно настроить по мирам и по пермишенам (события, кулдауны, цены, ...).
    • Можно создавать собственные команды. Documentation here.
    • Поддержка флагов spawn регионов WorldGuard (allow people to spawn at WG region spawn when inside that WG region)
    • Локализация (из коробки есть Русский!). Details here.
    • Приглашения в дома. Documentation here
    • Установка дома по клику на кровать: read bed-related options documentation.
    • Интеграция с Dynmap.
    • Данные можно хранить в SQLite (по умолчанию), MySQL или текстовых YAML файлах.
    • Импорт домов из других плагинов (Essentials 2.9, CommandBook 2.1 and SpawnControl v0.8).
    Как работает HSP.
    Плагин работает, позволяя определить цепочки стратегий, которые он попытается исполнить при наступлении с игроком в игре какого либо события. Такими событиями чаще всего являются присоединение onJoin или смерть onDeath. Что значит "попытается"? Не каждая стратегия может быть фактически исполнена над игроков. Давайте посмотрим на пример:
    Код:
    events:
      onDeath:
        - homeLocalWorld
        - spawnLocalWorld
        - spawnDefaultWorld
    Предположим, что у нас есть три мира: world, creative and skylands, а также то, что наш игрок только что умер в мире skylands. HSP попадает на стратегию homeLocalWorld, которая определена первой в списке onDeath, поэтому он проверит, есть ли у данного игрока домашняя точка в мире skylands, и если она есть, то он телепортирует игрока на неё и на этом исполнение цепочки стратегий закончится.
    Однако, у игрока может и не быть домашней точки именно в мире skylands. Тогда HSP двигается к следующий стратегии, spawnLocalWorld. И точно также, если Вы устанавливали ранее какую-либо точку в мире с помощью команды /setspawn, то HSP телепортирует игрока на неё и заканчивает исполнение. Если же таковой точки тоже нет, то HSP прыгает на последнюю стратегию spawnDefaultWorld, которая пошлёт игрока на спавн того мира, который является основным на Вашем сервере.

    Возможные события.
    • onJoin: определяет действия над игроком, подключившимся к серверу.
    • onNewPlayer: срабатывает только для тех игроков, которые входят на сервер впервые. Если никаких действий не определять или они не сработали, то управление передаётся в onJoin.
    • onDeath: контроль действий по возрождению игрока после смерти.
    • onHomeCommand: поведение при вводе команды /home (без аргументов).
    • onSpawnCommand: поведение при вводе команды /spawn (без аргументов).
    • onGroupSpawnCommand: поведение, когда игрок вводит команду /groupspawn.
    • onNamedHomeCommand: поведение при вводе команды /home с указанием имени домашней точки в качестве аргумента.
    • onNamedSpawnCommand: поведение при вводе команды /spawn с указанием имени спавна в качестве аргумента.
    • onRegionEnter;<регион>: цепочка стратегий, выполняемая в тот момент, когда игрок входит в указанный регион WorldGuard.
    • onRegionExit;<регион>: аналогично, цепочка стратегий, но выполняемая при выходе игрока из указанного региона WorldGuard.
    • onFallThroughWorld: при падении игрока под карту (отрицательные значения y).
    Я не стал переводить информацию к crossWorldTeleport, multiverseCrossWorldTeleport и multiverseTeleport, поскольку они по факту не такие востребованные и желающие смогут легко найти описание к ним сами.

    Стратегии.
    Ниже приведены стратегии, которые Вы можете использовать для любых событий, перечисленных выше. Цепочки стратегий выполняются в том порядке, в котором они записаны в конфигурационном файле, таким образом, если Вы указываете стратегию, которая гарантированно вернёт локацию для телепорта (например, spawnDefaultWorld), то никакая из перечисленных стратегий в данном событии ниже выполниться не сможет.

    Для упрощения понимание стратегий они были разбиты в группы Простые и Расширенные.

    Простые стратегии.
    • homeLocalWorld: найти для игрока дом по умолчанию в том мире, где он находится.
    • homeDefaultWorld: найти для игрока дом по умолчанию в мире по умолчанию.
    • homeMultiWorld: стратегия, объединяющая две предыдущих: найти дом по умолчанию для игрока сперва в том мире, где он находится, а если не найден, то искать в мире по умолчанию.
    • spawnNewPlayer: данная стратегия влияет только на тех игроков, которые действительно впервые входят на сервер, и посылает их на локацию, указанную командой /setfirstspawn.
    • spawnLocalWorld: отправляет игрока на спавн того мира, в котором находится игрок. Ничего не делает, если /setspawn никогда не использовалось в этом мире.
    • spawnDefaultWorld: отправляет игрока на спавн мира по умолчанию. Работает абсолютно всегда, поэтому следите, чтобы она была последней в списке.
    • default: эта стратегия — логичное завершение для каждой цепочки стратегий.Сама по себе она не делает ничего и означает то, что HSP предоставляет решение о последующих действиях по перемещению игрока на откуп Bukkit-у. Завершает выполнение цепочки и если ниже прописаны какие-либо другие стратегии, они не будут выполнены.
    Расширенные стратегии.
    • homeAnyWorld: find ANY home on ANY world. This does NOT guarantee any order (ie. no guarantee it will find Local or Default world first) and is meant primarily as an option for admins to provide a "last ditch" strategy (if local world is "A", default world is "B" and a third world is "C" and a player has only one home defined on "C" when they die on world "A", this strategy would find and return the home on world "C")
    • homeSpecificWorld:myworld: send player to their default home on myworld
    • homeNearest: search for nearest home on local world
    • nearestHomeOrSpawn: search for the nearest home or spawn on the local world; this could send them to a home or a spawn, depending on which is closer.
    • spawnGroup: send the player to the spawn for their primary group, as set by "/setgroupspawn" command. Please note this feature works best with Vault installed and you should use the /groupquery command to check what group HSP thinks a given player is in. ALSO NOTE this only applies to the LOCAL WORLD the player is on when this strategy fires. If you want the player to go to a groupSpawn on a specific world, use the spawnGroupSpecificWorld strategy.
    • spawnGroupSpecificWorld:myworld: send the player to the spawn defined by their Perm2-group on the specific world "myworld", as defined by "/setgroupspawn" command
    • spawnNearest: send player to nearest spawn in local world
    • spawnSpecificWorld:myworld: send player to default spawn in myworld
    • spawnNamedSpawn:myspawn: send player to the spawn named myspawn
    • spawnWGregion: if using WorldGuard "spawn" flag (dev 5.4+ only), send the player to the spawn for any region they are in. If they are not in a WorldGuard region or there is no spawn flag defined for the one they are in, this strategy does nothing
    • spawnLocalRandom: choose a spawn at random in the player's local world to spawn the player. This chooses based only on spawns you've set using /setspawn, so you could use this to spawn a player randomly at any of four spawns you've set, for example. If you want to choose a completely random location, use the spawnWorldRandom strategy instead.
    • spawnRandomNamed:name1,name2,name3: choose a random spawn out of the named spawns listed
    • spawnRegionRandom:region1: choose a random location somewhere in the WorldGuard region named "region1" on whatever world the player is on. Since WorldGuard regions are defined per-world, this strategy will do nothing if the region doesn't exist. You can specify a specific world/region combo using the notation "world;region1".
    • spawnWorldRandom:world: the argument is not required, if no argument is given it will spawn the player at a completely random location in their current world. If the arg is given, it will spawn them at a completely random location in the world given. HSP automatically ties into WorldBorder to keep the spawned location within the border. If WorldBorder is not installed, HSP just defaults to +/- 1000 x/z.
    • spawnLocalPlayerSpawn: HSP can be instructed to remember where a player spawned using the modeRememberSpawn or modeRememberLocation modes. For example, if you have new players randomly assigned 1 of 4 spawns, modeRememberSpawn will remember it and then you can use this strategy to send a player to their remembered spawn. There can be one remembered spawn per player per world.
    • spawnLastLocation: HSP always remembers the lastLocation a person was at when they leave a world (one location per world). This strategy can be used to send a player to that location. This could be useful for crossWorld events, or even a custom "/lastloc" command. See custom commands for an example.
     
    Последнее редактирование: 29 июн 2016
  2. Хостинг MineCraft
    <
  3. Автор темы
    Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Режимы расширенных стратегий.
    Режимы позволяют изменять то, как работают другие стратегии. По умолчанию режимы являются ИСКЛЮЧАЮЩИМИ, то есть при появлении в цепочке стратегий такого режима он отменяет действие всех режимов, перечисленных выше. Те режимы, которые ведут себя иначе и не отменяют действия перечисленных ранее режимов, называются АДДИТИВНЫМИ. Помните, что если Вы хотите скомбинировать действия исключающего и аддитивного режима, то в цепочке стратегий указывайте первым исключающий, иначе он отменит действие аддитивного.
    • modeDefault: (previously "modeHomeNormal", which also still works) this is the "default" mode in which the meaning of rules in not changed at all. This is provided so that an admin can switch back to default Mode after first trying some rules under a different mode.
    • modeEffect:effect: This mode can be used to display effects when players teleport. Since there are more options than can fit in this short description, this mode has it's own documentation page.
    • modeHomeBedOnly: all subsequent rules [until the next mode rule] will only consider a home set by bed clicking
    • modeHomeNoBed: all subsequent rules [until the next mode rule] will NOT select a home set by a bed
    • modeHomeDefaultOnly: all subsequent rules [until the next mode rule] will only consider the default home
    • modeHomeAny: all subsequent rules [until the next mode rule] will function for ANY home. For example, 'homeLocalWorld' normally only finds the "default" home on the local world, with this mode applied, it would find ANY home on the local world.
    • modeRequiresBed: (ADDITIVE mode) This mode requires that a bed be within 5 blocks of any home in order for that home to be used.
    • modeDistanceLimits:min;max: This mode requires the target location be within the distance specified in order to be allowed. This can be used to only let players spawn if their home is within 0-100 blocks away, for example. Ticket #138. This was primarily targeted and tested to work with Home-related strategies, but should generically work with other strategies as well.
    • modeRememberSpawn: (ADDITIVE mode) This mode will "remember" any following Spawn-related event for this player. The remembered spawn can be used by spawnLocalPlayerSpawn later to send the player back to this location. This remembers the spawn by name, so if you move the spawn later (such as changing faction spawns), the "remembered" spawn will move with.
    • modeRememberLocation: (ADDITIVE mode) This mode will "remember" ANY location from this event chain. This is different from modeRememberSpawn in 2 ways. First, it can be used to remember non-spawn locations, such as a spawnWorldRandom strategy. Second, unlikemodeRememberSpawn which remembers the spawn NAME and will move if you move that named spawn, this mode remembers the exact location and will never move. Both modes have their uses, so pick the one that matches what you want to do.
    • modeYBounds:minY;maxY: (ADDITIVE mode) This mode affects safe teleport (if you have enabled it) and random spawn behavior by controlling the min and max Y bounds. If you just specify one number, it is taken as minY. This could allow you to keep random spawns at or above water level, for example.
    • modeNoWater: (ADDITIVE mode) This mode affects safe teleport behavior (if you have enabled it) to not allow teleporting over water. Random spawns also work hard to avoid spawning over water if this mode is enabled.
    • modeNoLilyPad: (ADDITIVE mode) This mode affects safe teleport/random spawn behavior to not allow spawning over lilipads.
    • modeNoIce: (ADDITIVE mode) This mode affects safe teleport/random spawn behavior to not allow spawning over ice.
    • modeNoLeaves: (ADDITIVE mode) This mode affects safe teleport/random spawn behavior to not allow spawning over leaves. Helpful for keeping random spawns out of trees.
    • modeSourceWorld:myworld: This mode can be used in crossWorldTeleport events and it will prevent any strategies from running unless the source world of the teleport was myworld. This can be used to do something when a player leaves a specific world, or even combined with per-world strategies to do something specific when a player goes from one world to another.
    • modeInRegion:myregion: This mode will not let any other strategies fire unless the player location is in WorldGuard region myregion. See Example7 for a detailed example.
    • modeMultiverseSourcePortal: portalName: This mode will not let any other strategies fire unless the source portal was portalName. See Example7 for a detailed example.
    • modeMultiverseDestinationPortal: portalName: This mode will not let any other strategies fire unless the destination portal is portalName. See Example7 for a detailed example.
     
    Последнее редактирование: 26 май 2016
  4. Saharo4ek

    Saharo4ek Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    tin
    Такая крутая штука , явно недооценённая !
     
  5. SoSeDiK

    SoSeDiK Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Kezoran
    Очень давно искал! И тут ты) Спасибо :good:
     
  6. itskun

    itskun Активный участник Пользователь

    Баллы:
    68
    Skype:
    itskun
    Имя в Minecraft:
    santrope
    Не пойму, настраивал простейший возврат домой в дефолтный мир, согласно документации, но тем не менее каждый раз возникает данная ошибка. Причем после рестарта сервере один раз работает команда /home, а в остальные ошибка. Может кто сталкивался, как решили?
    Код:
    [16:48:27 WARN]: [HomeSpawnPlus] Caught exception in command /home
    java.lang.ArrayIndexOutOfBoundsException: 454
            at com.andune.minecraft.hsp.shade.commonlib.Teleport.isSafeBlock(Teleport.java:138) ~[HomeSpawnPlus.jar:?]
            at com.andune.minecraft.hsp.shade.commonlib.Teleport.findSafeLocation2(Teleport.java:244) ~[HomeSpawnPlus.jar:?]
            at com.andune.minecraft.hsp.shade.commonlib.Teleport.safeLocation(Teleport.java:352) ~[HomeSpawnPlus.jar:?]
            at com.andune.minecraft.hsp.shade.commonlib.server.bukkit.BukkitTeleport.safeLocation(BukkitTeleport.java:73) ~[HomeSpawnPlus.jar:?]
            at com.andune.minecraft.hsp.shade.commonlib.server.bukkit.BukkitTeleport.teleport(BukkitTeleport.java:85) ~[HomeSpawnPlus.jar:?]
            at com.andune.minecraft.hsp.commands.Home.doHomeTeleport(Home.java:250) ~[HomeSpawnPlus.jar:?]
            at com.andune.minecraft.hsp.commands.Home.privateExecute(Home.java:213) ~[HomeSpawnPlus.jar:?]
            at com.andune.minecraft.hsp.commands.Home.execute(Home.java:74) ~[HomeSpawnPlus.jar:?]
            at com.andune.minecraft.hsp.command.BaseCommand.execute(BaseCommand.java:129) [HomeSpawnPlus.jar:?]
            at com.andune.minecraft.hsp.commands.uber.BaseUberCommand.executePrivate(BaseUberCommand.java:317) [HomeSpawnPlus.jar:?]
            at com.andune.minecraft.hsp.commands.uber.BaseUberCommand.execute(BaseUberCommand.java:260) [HomeSpawnPlus.jar:?]
            at com.andune.minecraft.hsp.server.bukkit.command.BukkitCommandRegister$1.onCommand(BukkitCommandRegister.java:145) [HomeSpawnPlus.jar:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [PluginCommand.class:1.7.10-1614.56]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) [SimpleCommandMap.class:1.7.10-1614.56]
            at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:740) [CraftServer.class:1.7.10-1614.56]
            at net.minecraft.network.NetHandlerPlayServer.func_147361_d(NetHandlerPlayServer.java:1366) [nh.class:?]
            at net.minecraft.network.NetHandlerPlayServer.func_147354_a(NetHandlerPlayServer.java:1103) [nh.class:?]
            at net.minecraft.network.play.client.C01PacketChatMessage.func_148833_a(C01PacketChatMessage.java:38) [ir.class:?]
            at net.minecraft.network.play.client.C01PacketChatMessage.func_148833_a(C01PacketChatMessage.java:53) [ir.class:?]
            at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:245) [ej.class:?]
            at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:173) [nc.class:?]
            at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1023) [MinecraftServer.class:?]
            at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:432) [lt.class:?]
            at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:841) [MinecraftServer.class:?]
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:693) [MinecraftServer.class:?]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_91]
     
    Последнее редактирование: 19 июл 2016

Поделиться этой страницей