Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 01:59

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C#]Class hilfe

Discussion on [C#]Class hilfe within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 32
Join Date: Jan 2013
Posts: 78
Received Thanks: 4
[C#]Class hilfe

Guten Tag
Als erste ich bin noch etwas neu in dem bereich C# daher bitte etwas rücksicht nehmen

Ich bin derzeit dabei mehere class zu benutzen aber irgent wie geht das nicht
Wenn ich z.B. über ein class mich über meiner Http Class auf einer Webseite einlogge.
Wenn ich dann mit dieser Class weiter mache also z.B. ins Profil gehe und dort Userinfos auslse auf der Seite das funktioniert, aber wenn ich dann mit einer andere Class die Userinfos auslesen möchte funktioniert das leider nicht, weil ich nicht mehr eingelogt bin ich habe mich doch vorher eingelogt.
Aber warum?

Das ist meine Http Class
Ich vermute das müsse eigentlich an ihr liegen da ja alles funktioniert wenn ich nur eine Class benutze und die Http Class aber wenn ich eine zweite nehe funktioniert das alle nicht

Code:
public class Http
    {
        public CookieContainer cookieContainer = new CookieContainer();
        public HttpWebRequest myRequest;
        public HttpWebResponse myRes;
        public string Get(string Url)
        {
            myRequest = (HttpWebRequest)HttpWebRequest.Create(Url);
            myRequest.CookieContainer = cookieContainer;
            myRequest.Method = "GET";
            myRequest.ServicePoint.Expect100Continue = false;
            myRequest.AllowAutoRedirect = true;
            myRes = (HttpWebResponse)myRequest.GetResponse();
            StreamReader srprüfen = new StreamReader(myRes.GetResponseStream());
            return srprüfen.ReadToEnd();
        }

        public void Post(string Url, string PostData)
        {
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] data = encoding.GetBytes(PostData);
            myRequest = (HttpWebRequest)WebRequest.Create(Url);
            myRequest.Method = "POST";
            myRequest.CookieContainer = cookieContainer;
            myRequest.AllowAutoRedirect = true;
            myRequest.ServicePoint.Expect100Continue = false;
            myRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/19.0 Firefox/19.0";
            myRequest.ContentType = "application/x-www-form-urlencoded";
            myRequest.ContentLength = data.Length;
            Stream newStream = myRequest.GetRequestStream();
            newStream.Write(data, 0, data.Length);
            newStream.Close();
            myRes = (HttpWebResponse)myRequest.GetResponse();
        }
    }
Hoffe da auf Hilfe Danke
-Zack1959- is offline  
Old 01/24/2013, 08:02   #2


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Cookies speichern und immer bei den Requests mitschicken
Lawliet is offline  
Thanks
1 User
Old 01/24/2013, 18:06   #3
 
elite*gold: 32
Join Date: Jan 2013
Posts: 78
Received Thanks: 4
Aber in was speichern?
Und wie speichern?
Ich arbeite ja mit zwei Class die verschieden laufen und arbeiten da kann ich ja nicht von der einen die nehmen da sie ja dann auch "leer" ist
-Zack1959- is offline  
Old 01/24/2013, 18:42   #4
 
'Heaven.'s Avatar
 
elite*gold: 1
The Black Market: 331/0/0
Join Date: Jun 2012
Posts: 5,819
Received Thanks: 3,200
Code:
public class Http
    {
        public HttpWebRequest myRequest;
        public HttpWebResponse myRes;
        public string Get(string Url)
        {
            myRequest = (HttpWebRequest)HttpWebRequest.Create(Url);
            myRequest.CookieContainer = cook;
            myRequest.Method = "GET";
            myRequest.ServicePoint.Expect100Continue = false;
            myRequest.AllowAutoRedirect = true;
            myRes = (HttpWebResponse)myRequest.GetResponse();
            StreamReader srprüfen = new StreamReader(myRes.GetResponseStream());
            return srprüfen.ReadToEnd();
        }

        public void Post(string Url, string PostData,Cookiecontainer cook)
        {
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] data = encoding.GetBytes(PostData);
            myRequest = (HttpWebRequest)WebRequest.Create(Url);
            myRequest.Method = "POST";
            myRequest.CookieContainer = cook;
            myRequest.AllowAutoRedirect = true;
            myRequest.ServicePoint.Expect100Continue = false;
            myRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/19.0 Firefox/19.0";
            myRequest.ContentType = "application/x-www-form-urlencoded";
            myRequest.ContentLength = data.Length;
            Stream newStream = myRequest.GetRequestStream();
            newStream.Write(data, 0, data.Length);
            newStream.Close();
            myRes = (HttpWebResponse)myRequest.GetResponse();
        }
    }
Jetzt erstellst du dir einfach einen cookiecontainer in deiner form und machst ihn public.
dann kannst du ihn einfach bei jeden request angeben(auch von anderen klassen aus)
'Heaven. is offline  
Thanks
1 User
Old 01/24/2013, 19:03   #5
 
elite*gold: 32
Join Date: Jan 2013
Posts: 78
Received Thanks: 4
@'Heaven.
Danke erst mal werde ich dann testen

p.s. bei der Get methode hast du aber den CookieContainer vergessen oder war das absicht?

edit:Habe gerade getest und nee das bring auch nichts
Ich bin tortzdem nicht eingelgot

Kann es fieleicht daran liegen das ich mit dem Code "Http Http = new Http();"
bzw "User User = new User();" denn CookieContainer leere?
-Zack1959- is offline  
Old 01/24/2013, 19:54   #6


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Quote:
Originally Posted by 'Heaven. View Post
Code:
public class Http
    {
        public HttpWebRequest myRequest;
        public HttpWebResponse myRes;
        public string Get(string Url)
        {
            myRequest = (HttpWebRequest)HttpWebRequest.Create(Url);
            myRequest.CookieContainer = cook;
            myRequest.Method = "GET";
            myRequest.ServicePoint.Expect100Continue = false;
            myRequest.AllowAutoRedirect = true;
            myRes = (HttpWebResponse)myRequest.GetResponse();
            StreamReader srprüfen = new StreamReader(myRes.GetResponseStream());
            return srprüfen.ReadToEnd();
        }

        public void Post(string Url, string PostData,Cookiecontainer cook)
        {
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] data = encoding.GetBytes(PostData);
            myRequest = (HttpWebRequest)WebRequest.Create(Url);
            myRequest.Method = "POST";
            myRequest.CookieContainer = cook;
            myRequest.AllowAutoRedirect = true;
            myRequest.ServicePoint.Expect100Continue = false;
            myRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/19.0 Firefox/19.0";
            myRequest.ContentType = "application/x-www-form-urlencoded";
            myRequest.ContentLength = data.Length;
            Stream newStream = myRequest.GetRequestStream();
            newStream.Write(data, 0, data.Length);
            newStream.Close();
            myRes = (HttpWebResponse)myRequest.GetResponse();
        }
    }
Jetzt erstellst du dir einfach einen cookiecontainer in deiner form und machst ihn public.
dann kannst du ihn einfach bei jeden request angeben(auch von anderen klassen aus)
Sowas gehört doch nicht in die Form ^^
Du musst halt die Cookies speichern.

Ich häng dir mal ne Klasse aus einem meiner Projekte an, die müsste eig. funktionieren:

Code:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;

namespace UnrestrictME
{
    class HttpService // Diese Klasse enthält zwei öffentliche Mehoden, get und post. 
    {
        private CookieCollection _cookieCollection; // nicht öffentliches propertie um die cookies zu speichern
        public CookieCollection CookieCollection // öffentliche propertie um die cookies abzurufen
        {
            get { return _cookieCollection ?? (_cookieCollection = new CookieCollection()); } //wenn die daten gelesen werden wollen, wird geprüft ob _cookieCollection (das private Feld) null ist (mit den "??", null bedeutet das object gibts noch nicht), wenn ja, wird eine eine leere cookie collection zugewiesen, wenn nicht wird sie einfach zurückgegeben
            private set { _cookieCollection = value; } // set
        }
		//Diese properties kann man setzen, wenn man eine instanz der klasse httpservice erstellt
        public bool AllowAutoRedirect { get; set; }  //Darf eine Seite einen einfach auf eine andere seite weiterleiten?
        public string UserAgent { get; set; } // welcher useragent soll verwendet werden? kannst einfach mal googlen
        public string ConnectionGroupName { get; set; } // google
        public string ContentType { get; set; } //google
        public string Accept { get; set; } //google

        public HttpDto Get(String url) //Methode um ein getrequest zu machen, am ende wird ein httpdto zurückgegeben
        {
            var httpDto = new HttpDto(); //httpdto erstellen
            url = ParseUrl(url); //parse url bringt die url ins richtige format
            var webRequest = (HttpWebRequest)WebRequest.Create(url); //webrequest wird erstellt
            webRequest.AllowAutoRedirect = AllowAutoRedirect; // eigenschaften werden gesetzt
            webRequest.UserAgent = UserAgent ?? "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1"; // ist keine useragent zugewiesen, wird der von firefox verwendet
            webRequest.ConnectionGroupName = ConnectionGroupName ?? "keep-aliv"; // ist kein cgn gesetzt wird der standart verwendet
            webRequest.ContentType = ContentType ?? "application/x-www-form-urlencoded"; // "
            webRequest.Accept = Accept ?? @"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; // "
            webRequest.Host = GetHostFromUrl(url); //parsed den host aus der url
            if (CookieCollection != null) // CookieCollection vorhanden?
            {
                var cookieContainer = new CookieContainer(); //cookiecontainer für das request erstellen
                cookieContainer.Add(CookieCollection); // cookiecollection hinzufügen
                webRequest.CookieContainer = cookieContainer; // cookies dem request anhängen
            }
            
            using (var response = (HttpWebResponse)webRequest.GetResponse()) //sendet das request und erwartet die antwort vom server
            {
                using (var responseStream = response.GetResponseStream()) //holt sich den stream
                {
                    using (var responseStreamReader = new StreamReader(responseStream)) // übergibt den stream an einen streamreader für einfaches auslesen
                    {
                        

                        if (response.Cookies.Count != 0) // neue cookies? wenn ja dann
                        {
                            CookieCollection.Add(response.Cookies);   // füge sie der collection hinzu
							httpDto.Cookies.AddRange(response.Cookies.Select(x => x).toList()); // cookies dem dto hinzufügen

                        }
                        var readToEnd = responseStreamReader.ReadToEnd(); //html lesen
                        httpDto.Html = readToEnd; // html dem dto zuweisen
                    }
                }
            }
            return httpDto; // dto zurückgeben
        }


        public HttpDto Post(String url, byte[] postPacket) // methode um ein post request zu senden
        {
            var httpDto = new HttpDto(); // httpdto erstellen
            url = ParseUrl(url); // url ins richtige format bringen
            var webRequest = (HttpWebRequest)WebRequest.Create(url); // request erstellen
            webRequest.Method = "POST"; // Methode post zuweisen
            webRequest.ContentLength = postPacket.Length; // länge des zu sendenen contents zuweisen
            webRequest.AllowAutoRedirect = AllowAutoRedirect; //allowredirect zuweisen
            webRequest.UserAgent = UserAgent ?? "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1";
            webRequest.ConnectionGroupName = ConnectionGroupName ?? "keep-aliv";
            webRequest.ContentType = ContentType ?? "application/x-www-form-urlencoded";
            webRequest.Accept = Accept ?? @"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            webRequest.Host = GetHostFromUrl(url);
            if (CookieCollection != null)
            {
                var cookieContainer = new CookieContainer();
                cookieContainer.Add(CookieCollection);
                webRequest.CookieContainer = cookieContainer;
            }
            using (var requestSteam = webRequest.GetRequestStream()) // request stream um zu senden
            {
                requestSteam.Write(postPacket,0,postPacket.Length); // wir schreiben das zu sendende in den steam
                using (var response = (HttpWebResponse)webRequest.GetResponse()) // rückgabe lesen
                {
                    using (var responseStream = response.GetResponseStream()) // wir vorhin
                    {
                        using (var responseStreamReader = new StreamReader(responseStream)) // same
                        {
                            if (response.Cookies.Count != 0)
                            {
                                CookieCollection.Add(response.Cookies);
								httpDto.CookieCollection.Add(response.Cookies.Select(x=>x).toList());
                            }
                            string readToEnd = responseStreamReader.ReadToEnd();
                            httpDto.Html = readToEnd;
                        }
                    }
                }
            }
            return httpDto;
        }

        private string ParseUrl(string url)
        {
            var toReturn = url.StartsWith("http://") ? url : string.Format("http://{0}", url);//fängt dei url mit http:// an? wenn ja passts, wenn nicht machs hinn
            return toReturn;
        }

        private string GetHostFromUrl(string url)
        {
            var uri = new Uri(url);
            var leftPart = uri.Authority;
            return leftPart;
        }
    }
}



using System;
using System.Collections.Generic;
using System.Net;

namespace UnrestrictME
{
    public class HttpDto // DTO = Data transfer object
    {	// get und set heist einfach nur, dass man der eigenschaft nen wert zuweisen und ihn lesen kann
        public string Html { get; set; } // Das object hat die eigenschaft Html als string, wo im HttpService später der html content reingeschrieben wird
        public List<Cookie> Cookies { get; set; } // Liste der Cookies die im Header gesetzt wurden.
    }
}

Da bekommste ein object mit dem html und den neuen cookies.
Lawliet is offline  
Thanks
1 User
Old 01/24/2013, 20:08   #7
 
elite*gold: 32
Join Date: Jan 2013
Posts: 78
Received Thanks: 4
Danke aber bei mir gibt es keine
Code:
CookieCollection.Add(response.Cookies.Select(x=>x).toList());

Steht immer eine fehler das mir eine using fehlt
-Zack1959- is offline  
Old 01/24/2013, 20:16   #8


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Binde mal Linq ein
Lawliet is offline  
Old 01/24/2013, 20:20   #9
 
elite*gold: 32
Join Date: Jan 2013
Posts: 78
Received Thanks: 4
Habe ich drinnen
das sind meien Usings hier

Quote:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.ComponentModel;
using System.Data;
using System.Web;
using System.Threading;
using System.Collections;
-Zack1959- is offline  
Old 01/24/2013, 20:22   #10
 
'Heaven.'s Avatar
 
elite*gold: 1
The Black Market: 331/0/0
Join Date: Jun 2012
Posts: 5,819
Received Thanks: 3,200
Quote:
Originally Posted by Lawliet! View Post
Sowas gehört doch nicht in die Form ^^
Du musst halt die Cookies speichern.
Ich meinen einen CookieContainer in der Mainform erstellen und den dann immer angeben&nutzen...
'Heaven. is offline  
Old 01/24/2013, 21:36   #11


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Quote:
Originally Posted by -Zack1959- View Post
Habe ich drinnen
das sind meien Usings hier
Dann musst du mir mal sagen an welcher Stelle der Fehler genau kommt.
Quote:
Originally Posted by 'Heaven. View Post
Ich meinen einen CookieContainer in der Mainform erstellen und den dann immer angeben&nutzen...
Das hab ich schon verstanden, aber sowas gehört nicht in die View Klasse.


Dann schon lieber ne static class, welche als CookieHandler dient.

Code:
static class CookieHandler
    {
        private static CookieCollection cookieCollection;
        public static CookieCollection GetCookieCollection()
        {
            return cookieCollection ?? (cookieCollection = new CookieCollection());
        }
        public static void AddCookie(Cookie cookie)
        {
            if (cookieCollection == null) cookieCollection = new CookieCollection();
            cookieCollection.Add(cookie);
        }
        public static void AddCookies(List<Cookie> cookies)
        {
            if (cookieCollection == null) cookieCollection = new CookieCollection();
            foreach (var cookie in cookies)
            {
                cookieCollection.Add(cookie);
            }
        }
    }
Die Cookies haben ja nichts mit der View zutun.

Mit diesem Beispiel kannst du nun einfach von überall CookieHander.GetCookieCollection() aufrufen und bekommst alle aktuell gespeicherten Cookies.
Über AddCookie und AddCookies kannst du welche hinzufügen.
Lawliet is offline  
Old 01/24/2013, 22:12   #12
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
Quote:
Originally Posted by -Zack1959- View Post
Danke aber bei mir gibt es keine
Code:
CookieCollection.Add(response.Cookies.Select(x=>x).toList());

Steht immer eine fehler das mir eine using fehlt

to list wird (wie alle methoden in C#) gross geschrieben.
nkkk is offline  
Old 01/25/2013, 06:02   #13
 
elite*gold: 32
Join Date: Jan 2013
Posts: 78
Received Thanks: 4
@nkkk
Das ist nicht das Problem
Sonder

Quote:
Fehler 1 "System.Net.CookieCollection" enthält keine Definition für "Select", und es konnte keine Erweiterungsmethode "Select" gefunden werden, die ein erstes Argument vom Typ "System.Net.CookieCollection" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) C:\Users\""\documents\visual studio 2010\Projects\""\""\Class2.cs 64 33 ""

Code:
httpDto.Cookies.AddRange(response.Cookies.Select(x => x).ToList()); // cookies dem dto hinzufügen
in

Code:
public HttpDto Get(String url) //Methode um ein getrequest zu machen, am ende wird ein httpdto zurückgegeben
        {
            var httpDto = new HttpDto(); //httpdto erstellen
            url = ParseUrl(url); //parse url bringt die url ins richtige format
            var webRequest = (HttpWebRequest)WebRequest.Create(url); //webrequest wird erstellt
            webRequest.AllowAutoRedirect = AllowAutoRedirect; // eigenschaften werden gesetzt
            webRequest.UserAgent = UserAgent ?? "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1"; // ist keine useragent zugewiesen, wird der von firefox verwendet
            webRequest.ConnectionGroupName = ConnectionGroupName ?? "keep-aliv"; // ist kein cgn gesetzt wird der standart verwendet
            webRequest.ContentType = ContentType ?? "application/x-www-form-urlencoded"; // "
            webRequest.Accept = Accept ?? @"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; // "
            webRequest.Host = GetHostFromUrl(url); //parsed den host aus der url
            if (CookieCollection != null) // CookieCollection vorhanden?
            {
                var cookieContainer = new CookieContainer(); //cookiecontainer für das request erstellen
                cookieContainer.Add(CookieCollection); // cookiecollection hinzufügen
                webRequest.CookieContainer = cookieContainer; // cookies dem request anhängen
            }
            
            using (var response = (HttpWebResponse)webRequest.GetResponse()) //sendet das request und erwartet die antwort vom server
            {
                using (var responseStream = response.GetResponseStream()) //holt sich den stream
                {
                    using (var responseStreamReader = new StreamReader(responseStream)) // übergibt den stream an einen streamreader für einfaches auslesen
                    {
                        

                        if (response.Cookies.Count != 0) // neue cookies? wenn ja dann
                        {
                            CookieCollection.Add(response.Cookies);   // füge sie der collection hinzu
							httpDto.Cookies.AddRange(response.Cookies.Select(x => x).ToList()); // cookies dem dto hinzufügen

                        }
                        var readToEnd = responseStreamReader.ReadToEnd(); //html lesen
                        httpDto.Html = readToEnd; // html dem dto zuweisen
                    }
                }
            }
            return httpDto; // dto zurückgeben
        }
-Zack1959- is offline  
Old 01/25/2013, 09:59   #14


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Hm, ich weiß nicht ob ich die Klasse mal getestet habe, aber du kannst den Teil durch das ersetzen:
Code:
foreach(var cookie in Response.Cookies){
httpDto.Cookies.Add(cookie);
}
Lawliet is offline  
Thanks
1 User
Old 01/25/2013, 14:14   #15
 
elite*gold: 32
Join Date: Jan 2013
Posts: 78
Received Thanks: 4
Danke erst mal du meisnt aber
Code:
foreach (Cookie cookie in response.Cookies)
                                {
                                    httpDto.Cookies.Add(cookie);
                                }

Werde es mal testen und melde mich dann wenn es Fehler gibt

edit:
Habe liber eien Static Class mit dne Cookies die funktioniert jetzt
Danke euch
-Zack1959- is offline  
Reply


Similar Threads Similar Threads
[Bukkit] Heroes Class Generator [Suche Hilfe]
06/10/2012 - Minecraft - 3 Replies
Hallo zusammen. Ich breuchte vlt ein wenig Hilfe beim erstellen von Eigenden klassen von Heroes Ich verstehe überhaubt garnicht wie ich dies erstelle. Dazu kommt wenn ich es versuche wird meistens ein Fehler auftreten in form das die klasse garnicht zu sehen ist. Würde mich sehr freuen wenn mir jemand das mal genau erk. könnte
Hilfe !!! datei in .class wieder umwandeln wie
08/01/2011 - Minecraft - 9 Replies
Hallo ich spiele minecraft und habe mir gedacht ich versuche mich mal an den plugin. Das hat soweit geklappt ich habe die .jar datei in .class datei gewandelt . und mit jad habe ich die .class in jad datein gemacht soweit alles perfekt :) So nun zu meinem problem -.- ich versuche schon seid 8stunden die jad datei wieder in eine class datei umzuwandeln doch leider ohne erfolg. ich habe schon gegooglet aber nichts gefunden dann hab ich mir gedacht hier gibt es kluge köpfe die mir sicher...
Hilfe! Weißt nicht wie ich ein class rank up mache !!!!!
09/22/2008 - Cabal Online - 6 Replies
Ich bin am verzweifeln !!!!!:(:( ich bin lvl 92 und bin immer class rank lvl 10 *heul* !! und habe nichtmal denn combo skill ARGHHH!!! Wenn mir igend jemand im forum erklären kann wo ich diese quests finde und wie die erste quest heißt für den combo skill!!!! WÄRE SEHR NETT Bin wirklich am verzweifeln !!!:(:( PS : Spiele aufm Cabal Extreme server Edit: ich meine die class rank up quests !!! In English : I am in despair !!!!! I'm lvl 92 and am always class rank lvl Heul * 10 *!...



All times are GMT +2. The time now is 01:59.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.