Помогите Безвайповый переход 1.8.8->1.10.2 (нид хелп)

Serrrgio

Старожил
Пользователь
Баллы
173
Ник в Minecraft
None
Есть сервер, Spigot 1.8.8.
WorldEdit, HealthBar, PvPTime, Essentials, LogBlock, ClearLag, PlugMan, AutoMessage, AutoGroup, FullBright, MonsterFix, WorldGuard, ProtocolLib, InfoBoardReborn, AutoSaveWorld, AAC, SkinsRestorer, HeadDrops, RandomPort, PermissionsEx, WGExtender, Vault, HideStream, AnBot, SalvageSmelter, EssentialsSpawn, CustomEnchantments, AuthMe, GlobalMarket, ChatEx, ChatGuard
Планирую перевести на 1.10.2 без вайпа основного мира, ад и энд вайпнуть, ибо новые блоки и т.д., при этом чтобы у игрока ничего не пропало в инвентаре и в основном мире.

WG и AuthMe привязаны к MySQL.
приваты WG в энде и аду удалю руками.
1. в AuthMe
Код:
SaveQuitLocation: true
teleportUnAuthedToSpawn: true
ForceSpawnLocOnJoinEnabled: false
Не совсем понятно, при заходе на сервер, AuthMe ТП игрока на спавн для авторизации, после успешной авторизации ТП туда, где игрок был когда вышел с сервера.
Вопрос, откуда берутся координаты из базы AuthMe или из профиля игрока?
Если из базы AuthMe, то это поправимо парой SQL запросов.

2. Essentials, тут все сложнее, в профиле игрока прописаны точки домов. На каждого игрока отдельный файл в формате yaml.
Как удалить все точки домов в аду и в энде?

Хлепл ми плиз.

ЗЫ
Код:
$ ls -f ./Essentials/userdata | wc -l
23340
 
Последнее редактирование:
понял, помощи не дождешься 🙂
думал ктонить на коленке напишет класс, который пройдется по всем профилям в essentials userdata, удалит все дома в энде и аду, заодно заменит lastlocation и logoutlocation если они не world на спавн...
ладно, с этим вопросом закрыли, поставил php yaml экстеншн, написал на чем умею скрипт замены.

еще вопрос, тема поднималась, но не помню до чего договорились
смысл запретить игрокам в аду выходить за бедрок (который сверху, юзат жемчуг и ТП за границу мира и строят там фермы золота)
может обойдется парой строк кода, типа слушать какой-то ивент, проверять мир, проверять высоту игрока, если она выше уровня бедрока - ТП его на спавн...
ктонить черкнет пару строк?

или может какие другие варианты, без дополнительных плагинов?
 
В аутчме должны бытть координаты я думаю. Дома есс -юзай grep.
Высоту и мир проверить на изи, мове ивент.
отменять ендер перл так же на изи.
хотя ворлдбордер никто не отменял, ставь границу по барьеру и все.
 
В аутчме должны бытть координаты я думаю.
я тоже склоняюсь к этому, но эти же координаты есть еще в профиле игрока и в профиле essentials, нужно проверить опытным путем
Дома есс -юзай grep
grep'ом то я найду, как в файле в yaml структуре вырезать имеено этот дом, и потом сохранить изменения в файл? вот пример профиля essentials
Код:
lastAccountName: EnderPro_Elite
timestamps:
login: 1471525579633
logout: 1471525581784
lastteleport: 1471524134700
ipAddress: 80.245.118.226
logoutlocation:
world: world
x: -222.47455399682823
y: 64.0
z: -160.57768836100652
yaw: -133.8251
pitch: -0.8055889
socialspy: false
lastlocation:
world: world
x: -53792.680988475
y: 65.0
z: 61057.4407548283
yaw: -73.04946
pitch: 13.350047
homes:
u:
world: world
x: -20507.413268547352
y: 64.0
z: 44074.04417989716
yaw: -70.62281
pitch: 11.249867
d:
world: world
x: -4996.265460940499
y: 64.0
z: 68013.9100703125
yaw: -60.566895
pitch: 30.25758
o:
world: world_nether
x: -2592.4316852198226
y: 214.0
z: 5545.596367423523
yaw: 25.495575
pitch: 32.850006
b:
world: world
x: -53791.433725305586
y: 65.0
z: 61055.94938427696
yaw: -233.24945
pitch: 23.250046
l:
world: world_the_end
x: -20.582243940663883
y: 2.5
z: 1058.8242694323856
yaw: -141.99225
pitch: -9.29871
a:
world: world
x: -68124.5391932468
y: 79.0
z: -36292.50589700899
yaw: -309.65295
pitch: 23.399975
money: '166631.0'
ignore:
- mega
- mrsmilezhenia
- ronnie
- codor__
- lololowhka21
- killer2607
Высоту и мир проверить на изи, мове ивент.
воспользуюсь советом, наверно так и сделаю.
отменять ендер перл так же на изи.
хотя ворлдбордер никто не отменял, ставь границу по барьеру и все.
отменять перл нужно кучу параметров проверить, куда игрок его бросает и т.д.
может есть какой-то ивент телепорта, посмотреть куда игрока ТП и отменить если это ад и координаты выше чем бедрок, все же меньше код будет работать чем при мове ивенте...
про границу не понял, WB у меня плагин не стоит, да и мир без ограничений...
 
я тоже склоняюсь к этому, но эти же координаты есть еще в профиле игрока и в профиле essentials, нужно проверить опытным путем

grep'ом то я найду, как в файле в yaml структуре вырезать имеено этот дом, и потом сохранить изменения в файл? вот пример профиля essentials
Код:
lastAccountName: EnderPro_Elite
timestamps:
login: 1471525579633
logout: 1471525581784
lastteleport: 1471524134700
ipAddress: 80.245.118.226
logoutlocation:
world: world
x: -222.47455399682823
y: 64.0
z: -160.57768836100652
yaw: -133.8251
pitch: -0.8055889
socialspy: false
lastlocation:
world: world
x: -53792.680988475
y: 65.0
z: 61057.4407548283
yaw: -73.04946
pitch: 13.350047
homes:
u:
world: world
x: -20507.413268547352
y: 64.0
z: 44074.04417989716
yaw: -70.62281
pitch: 11.249867
d:
world: world
x: -4996.265460940499
y: 64.0
z: 68013.9100703125
yaw: -60.566895
pitch: 30.25758
o:
world: world_nether
x: -2592.4316852198226
y: 214.0
z: 5545.596367423523
yaw: 25.495575
pitch: 32.850006
b:
world: world
x: -53791.433725305586
y: 65.0
z: 61055.94938427696
yaw: -233.24945
pitch: 23.250046
l:
world: world_the_end
x: -20.582243940663883
y: 2.5
z: 1058.8242694323856
yaw: -141.99225
pitch: -9.29871
a:
world: world
x: -68124.5391932468
y: 79.0
z: -36292.50589700899
yaw: -309.65295
pitch: 23.399975
money: '166631.0'
ignore:
- mega
- mrsmilezhenia
- ronnie
- codor__
- lololowhka21
- killer2607

воспользуюсь советом, наверно так и сделаю.
отменять перл нужно кучу параметров проверить, куда игрок его бросает и т.д.
может есть какой-то ивент телепорта, посмотреть куда игрока ТП и отменить если это ад и координаты выше чем бедрок, все же меньше код будет работать чем при мове ивенте...
про границу не понял, WB у меня плагин не стоит, да и мир без ограничений...
Так он и срабатывает, тот самый телепорт ивент. PlayerTeleportEvent.TeleportCause.ENDER_PEARL
Как удалишь? Через тот же yaml configuration ведра.
 
Я, вот, думаю, зачем вообще мир такой высоты, если игрока ограничивают бедроком? Подразумевается же, что он не сможет вылезти. Ну или почему, собственно, бедрок находится так низко по отношению к реальной верхней границе?
Короче говоря, почему это так странно сделано?
Что касается блокировки этого дела, то нужно отменять телепортацию в том случае, если материал на новой координате - бедрок, потому что эндерпёрл ну никак не может телепортировать тебя на самый верхний слой. Игрокам по-любому приходится выпрыгивать прямо из блока - т.е. после телепортации оказываются на 1 уровень ниже воздушного.
Вообще, на самом деле, способов выбираться наверх несколько. Помимо пёрлов знаю следующие. Возможно тоже придётся исправлять.
1) С корнями тёмного дуба - прорастают на уровень ниже почвы
2) С каким-то адским забагованным механизмом:
 
Я, вот, думаю, зачем вообще мир такой высоты, если игрока ограничивают бедроком? Подразумевается же, что он не сможет вылезти. Ну или почему, собственно, бедрок находится так низко по отношению к реальной верхней границе?
Короче говоря, почему это так странно сделано?
Что касается блокировки этого дела, то нужно отменять телепортацию в том случае, если материал на новой координате - бедрок, потому что эндерпёрл ну никак не может телепортировать тебя на самый верхний слой. Игрокам по-любому приходится выпрыгивать прямо из блока - т.е. после телепортации оказываются на 1 уровень ниже воздушного.
Вообще, на самом деле, способов выбираться наверх несколько. Помимо пёрлов знаю следующие. Возможно тоже придётся исправлять.
1) С корнями тёмного дуба - прорастают на уровень ниже почвы
2) С каким-то адским забагованным механизмом:
Просто кому то лень было переписывать генератор в аду. Типичный моджанг. Что касается фикса, все тот же мове и телепорт ивент. Изи фикс.
 
всем спасибо, попробую сделать, отпишусь о результатах
 
Просто кому то лень было переписывать генератор в аду. Типичный моджанг. Что касается фикса, все тот же мове и телепорт ивент. Изи фикс.
Не кошерно слушать передвижения. Хотя, впрочем, если других решений нет, то выбирать не приходится.
 
вот такая реализация получилась, не знаю правильно или нет, я не кодер
Java:
    public void onPlayerMove(PlayerMoveEvent e){
         if (e.isCancelled() || e.getPlayer() == null) {
           return;
         }
         Player p = e.getPlayer();
         if (p.getWorld().equals(Bukkit.getWorlds().get(1))) {
             if (e.getTo().getBlockY()>127) {
                 Location spawn = new Location(Bukkit.getWorlds().get(0), -222, 64, -160);
                 p.teleport(spawn);
             }
         }
 
вот такая реализация получилась, не знаю правильно или нет, я не кодер
Java:
    public void onPlayerMove(PlayerMoveEvent e){
         if (e.isCancelled() || e.getPlayer() == null) {
           return;
         }
         Player p = e.getPlayer();
         if (p.getWorld().equals(Bukkit.getWorlds().get(1))) {
             if (e.getTo().getBlockY()>127) {
                 Location spawn = new Location(Bukkit.getWorlds().get(0), -222, 64, -160);
                 p.teleport(spawn);
             }
         }
Интересно как ты получишь гет плайер нулл в ивенте игрока 😁.
А так в целом норм.
 
Назад
Верх Низ