Sol Reklam

Çözüldü Dünyalarla çakmalobi, %player% TP problemi.

Durum
Mesaj gönderimine kapalı.

mustibey0763

Fırında Isıttığım İlk Taş
Katılım
18 Kasım 2019
Mesajlar
98
Elmaslar
12
Puanlar
3.820
Yaş
22
Minecraft
Francis
Sunucu sürümüm: 1.19.3

Merhabalar, 1 sunucum var ve çakmalobiyi bungeecord ile ayırmaktansa mv-core ile dünyalar arası yapmak istiyorum, biliyorum amacına göre kullanmamış oluyorum ama öyle çok bir oyuncu yok zaten zevkine yapıyorum tamamen. Şimdi bu oyuncu sunucuya girdiğinde çakmalobi dünyasında giriş yapacak, girişini yaptıktan sonra ise world dünyasına ışınlayacak. Ama şöyle bir problem var ki, import ettiğim authme "LoginEvent"inde "mv tp %player% world" kullandığım zaman şöyle bir hata almaktayım: "There's no player in an on bukkit event"
Kaç saattir araştırıyorum ama bir çözüm bulamadım buna, bu aynı komutu skriptin kendi eventinde kullandığımda yani on join: de kullandığımda herhangi bir problem olmamakta, ve düzgün bir şekilde çalışmakta.

Kodum:

Kod:
on join:
    execute console command "mv tp %player% cakmalobi"

import:
    fr.xephi.authme.events.LoginEvent

on LoginEvent:
    execute console command "mv tp %player% world"

İmport için skript-reflect pluginini kullanmaktayım.
Eğer LoginEvent dışında "oyuncu giriş yaptığında" diye bildiğiniz bir event var ise paylaşabilirseniz sevinirim.

Acaba mycommand ile yapılabilir mi bunu yazarken aklıma geldi ama şu an deneyecek zamanım yok.
 

EnesBurak

Koydum Çalışma Masasını

Discord:

EnesBurak#0001

Katılım
21 Nisan 2022
Mesajlar
58
Elmaslar
17
Puanlar
1.120
Yer
İstanbul
Minecraft
EnesBurak
on LoginEvent den başka "on authme login:" eventi var. %player% yerine %event.getPlayer()% dener misiniz ?
 

Ozngky

Fırında Isıttığım İlk Taş
Yumiyan

Discord:

Ozngky

Katılım
4 Şubat 2016
Mesajlar
75
Elmaslar
47
Puanlar
13.520
Yer
Yumiyan Kasabası
Minecraft
Ozngky
Merhaba,

Bir oyuncu AuthMe tarafından giriş yaptığında LoginEvent tetiklenir, ancak LoginEvent onJoin eventi ile aynı anda tetiklenmez. LoginEvent, AuthMe tarafından tetiklenen bir olaydır ve normal Minecraft giriş işlemi sırasında tetiklenmez. Bu nedenle, oyuncu cakmalobi dünyasına girdikten sonra LoginEvent tetiklenmez ve bu nedenle oyuncunun dünyasını değiştiremezsiniz.

Bu durumda, oyuncu cakmalobi dünyasına girdiğinde, AuthMe tarafından sağlanan "authme.login" izni olan bir komutu çalıştırarak, LoginEvent tetiklenmeden önce oyuncunun dünyasını değiştirebilirsiniz. Bunu yapmak için şu adımları izleyebilirsiniz:

  1. authme.login iznine sahip bir komut oluşturun:
    /authlogin mvtp %player% world
  2. on join eventinde, oyuncunun dünyasını cakmalobi dünyası olarak ayarlayın:
    execute console command "mv tp %player% cakmalobi"
  3. LoginEvent'i kullanarak, oyuncunun dünyasını değiştirin:


    Kod:
    import fr.xephi.authme.events.LoginEvent
    
    on LoginEvent:
        execute console command "authlogin mvtp %player% world"
Bu şekilde, oyuncu cakmalobi dünyasına girdikten sonra AuthMe tarafından sağlanan komutu kullanarak, LoginEvent tetiklenmeden önce dünyasını değiştirebilirsiniz.
 

OyunNW

Odunlara Vur Vur Vur!
Katılım
19 Ağustos 2019
Mesajlar
36
Elmaslar
5
Puanlar
3.695
Yaş
23
Minecraft
AliDmr
Sunucu sürümüm: 1.19.3

Merhabalar, 1 sunucum var ve çakmalobiyi bungeecord ile ayırmaktansa mv-core ile dünyalar arası yapmak istiyorum, biliyorum amacına göre kullanmamış oluyorum ama öyle çok bir oyuncu yok zaten zevkine yapıyorum tamamen. Şimdi bu oyuncu sunucuya girdiğinde çakmalobi dünyasında giriş yapacak, girişini yaptıktan sonra ise world dünyasına ışınlayacak. Ama şöyle bir problem var ki, import ettiğim authme "LoginEvent"inde "mv tp %player% world" kullandığım zaman şöyle bir hata almaktayım: "There's no player in an on bukkit event"
Kaç saattir araştırıyorum ama bir çözüm bulamadım buna, bu aynı komutu skriptin kendi eventinde kullandığımda yani on join: de kullandığımda herhangi bir problem olmamakta, ve düzgün bir şekilde çalışmakta.

Kodum:

Kod:
on join:
    execute console command "mv tp %player% cakmalobi"

import:
    fr.xephi.authme.events.LoginEvent

on LoginEvent:
    execute console command "mv tp %player% world"

İmport için skript-reflect pluginini kullanmaktayım.
Eğer LoginEvent dışında "oyuncu giriş yaptığında" diye bildiğiniz bir event var ise paylaşabilirseniz sevinirim.

Acaba mycommand ile yapılabilir mi bunu yazarken aklıma geldi ama şu an deneyecek zamanım yok.
Bu hatanın nedeni, LoginEvent'in Bukkit eventi olduğu için oyuncunun henüz sunucuya tam olarak bağlanmamış olmasıdır. Bu nedenle, LoginEvent sırasında oyuncuyu başka bir dünyaya taşımak mümkün değildir.

Bunun yerine, oyuncu sunucuya girdiğinde, on join eventinde yapmış olduğunuz gibi "mv tp %player% world" komutunu kullanabilirsiniz ama skripti düzenleyip on join: altına wait 5 second yazmanız işe yarayacaktır. Bu şekilde oyuncu başlangıçta doğru dünyaya taşınır ve LoginEvent sırasında oluşabilecek hata önlenebilir.

Ayrıca, AuthMe'nin LoginEvent'ini kullanarak oyuncuyu dünyaya taşımak yerine, on join eventini kullanarak oyuncuyu doğru dünyaya taşımanızı öneririm. Bu yöntem daha güvenlidir ve herhangi bir hata oluşma olasılığı daha düşüktür.

Umarım yardımcı olabilmişimdir.
 

mustibey0763

Fırında Isıttığım İlk Taş
Katılım
18 Kasım 2019
Mesajlar
98
Elmaslar
12
Puanlar
3.820
Yaş
22
Minecraft
Francis
Bu hatanın nedeni, LoginEvent'in Bukkit eventi olduğu için oyuncunun henüz sunucuya tam olarak bağlanmamış olmasıdır. Bu nedenle, LoginEvent sırasında oyuncuyu başka bir dünyaya taşımak mümkün değildir.

Bunun yerine, oyuncu sunucuya girdiğinde, on join eventinde yapmış olduğunuz gibi "mv tp %player% world" komutunu kullanabilirsiniz ama skripti düzenleyip on join: altına wait 5 second yazmanız işe yarayacaktır. Bu şekilde oyuncu başlangıçta doğru dünyaya taşınır ve LoginEvent sırasında oluşabilecek hata önlenebilir.

Ayrıca, AuthMe'nin LoginEvent'ini kullanarak oyuncuyu dünyaya taşımak yerine, on join eventini kullanarak oyuncuyu doğru dünyaya taşımanızı öneririm. Bu yöntem daha güvenlidir ve herhangi bir hata oluşma olasılığı daha düşüktür.

Umarım yardımcı olabilmişimdir.
Hocam sanırım tam doğru okumamışsın yazdığım şeyi, on join eventinde zaten çakmalobiye gönderiyorum giren oyuncuyu. Ben, oyuncu login yaptıktan sonra diğer dünyaya taşımasını istiyorum, join yaptığında değil. on join'i zaten kullanmışım attığım kodun ilk satırında.
Ki zaten hallettim bu sorunu konu kapanabilir.
 
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı