Drop pyspy and use sessions for server player listing
This commit is contained in:
@@ -34,7 +34,6 @@ Finally, create a superuser account:
|
||||
# Dependencies
|
||||
|
||||
* shortuuid
|
||||
* pyspy
|
||||
* PIL
|
||||
* django-mptt
|
||||
* django-messaging
|
||||
|
@@ -1,7 +1,6 @@
|
||||
from django.db import models
|
||||
from django.contrib.auth.models import User, Group
|
||||
from django.db.models.signals import post_save
|
||||
import pyspy
|
||||
from django.core.cache import cache
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
import socket
|
||||
@@ -41,23 +40,10 @@ class Server(models.Model):
|
||||
)
|
||||
|
||||
def online_players(self):
|
||||
players = cache.get('minecraftPlayerList-%s:%s'%(self.hostname, self.query_port))
|
||||
if players is None:
|
||||
players = []
|
||||
try:
|
||||
client = pyspy.GamespyClient(self.hostname, self.query_port)
|
||||
# FIXME: pyspy sometimes hangs here
|
||||
#client.update()
|
||||
pList = client.players()
|
||||
for p in pList:
|
||||
try:
|
||||
player = MinecraftProfile.objects.get(mc_username__exact = p)
|
||||
except ObjectDoesNotExist, e:
|
||||
player = MinecraftProfile()
|
||||
player.mc_username = p
|
||||
cache.set('minecraftPlayerList-%s:%s'%(self.hostname, self.query_port), players, 10)
|
||||
except socket.error:
|
||||
pass
|
||||
activeSessions = PlayerSession.objects.all().filter(end=None)
|
||||
players = []
|
||||
for s in activeSessions:
|
||||
players.append(s.player)
|
||||
return players
|
||||
|
||||
def __unicode__(self):
|
||||
|
Reference in New Issue
Block a user