PySockAPI Modülü (Metin2 Server Socket Command Tool)

Bu PySockAPI aslında çok basit mantıkla çalışan bir araç. Direkt Metin2 server’a adminpage üzerinden socket bağlantısı kurup komut göndermeye yarıyor. Yani panel açmadan, shell üzerinden event yönetmek, notice atmak, rate değiştirmek falan tamamen otomatik hale geliyor.

image-300 PySockAPI Modülü (Metin2 Server Socket Command Tool)

Çalışma mantığı şöyle: client tarafında bir script var, server’ın adminpage portuna bağlanıyor ve gönderdiğin komutu direkt execute ediyor. Özellikle event yönetimi ve online kontrol işlerinde baya pratik.

Kullanım Komutları

  • Komut göndermek:
./pysock.py -c "<command>"
  • Konfig dosyasından veri alıp komut göndermek:
./pysock.py -g -c "<command>"
  • Dosyadan komut çalıştırmak:
./pysock.py -f "<file>"
  • Yardım menüsü:
./pysock.py -h
  • Host bilgisi set edip kaydetmek:
./pysock.py -s "<host>:<port>:<pwd>" -c "<command>"
  • Raw mode (tam manuel kontrol):
./pysock.py -r "<host:port> <adminpwd> <command>"

Örnek Kullanımlar

Dosyadan komut basma:

./pysock.py -f "mysock_cmd.txt"

Konfig kaydedip aynı anda notice atma:

./pysock.py -s "123.456.78.90:13000:SHOWMETHEMONEY" -c "NOTICE 1;NOTICE 2;NOTICE 3"

Raw kullanım:

./pysock.py -r "173.194.35.6:13003 SHOWMETHEMONEY NOTICE 1;NOTICE 2;USER_COUNT"

Sistem Mantığı (Önemli Noktalar)

  • Adminpage portu kullanılıyor, CONFIG içindeki PORT değeri esas alınır (P2P değil).
  • adminpage_ip1 ve adminpage_password CONFIG üzerinden set edilir.
  • Localhost/127.0.0.1 genelde çalışmaz, gerçek IP gerekir.
  • USER_COUNT gibi komutlarda server return değeri okunabilir.
  • pysock_cmd.txt içine satır satır komut yazılabilir.

image-301-1024x566 PySockAPI Modülü (Metin2 Server Socket Command Tool)

Örnek dosya:

NOTICE Uno!
NOTICE Due!
NOTICE Ecc!

Lua Entegrasyonu (Quest İçinden Kullanım)

Quest veya game logic içinden çağırmak için basit bir wrapper var:

function game.send_cmd(host,port,key,cmd)
if(key==nil) then
key="SHOWMETHEMONEY"
end
if(host==nil or port==nil or cmd==nil) then
return false
end if(type(cmd)=="table") then
cmd=join("\n@",cmd)
end os.execute([[/root/pysockapi.py -m "]]..host..[[:]]..port..[[;@]]..key..[[\n@]]..cmd..[[\n"]])
end

1684586906193-1024x483 PySockAPI Modülü (Metin2 Server Socket Command Tool)

Kullanım:

game.send_cmd("123.123.123.123","13003",nil,"EVENT xmas_sock 1")

veya batch:

game.send_cmd("123.123.123.123","13003",nil,{
"NOTICE Yeah!",
"EVENT xmas_sock 1",
"EVENT xmas_tree 4"
})

Genel olarak bu tool’un olayı server’ı panel açmadan terminalden yönetmek. Event, notice, kick, rate vs. gibi şeyleri hızlı döndürmek için baya işe yarıyor ama direkt production’da dikkatli kullanılmalı, çünkü full admin erişim mantığında çalışıyor.

Paylaş :