Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Trader : BasePlayer
- {
- public DatabaseObject db;
- public BigDB bigDB;
- public string fbuid;
- public string SItem;
- public string imageLink;
- public Trader buyer;
- public Trader seller;
- public IList<string> BItems;
- public bool isAdmin = false;
- public bool isVip = false;
- public bool cantMsg = false;
- public bool isSelling = false;
- public bool isBuying = false;
- public TradeInfo sellinfo = new TradeInfo();
- public DatabaseObject GetUserData()
- {
- DatabaseObject pdb = new DatabaseObject();
- bigDB.LoadOrCreate("Users", fbuid, delegate(DatabaseObject rdb)
- {
- pdb = rdb;
- db = rdb;
- }, delegate(PlayerIOError e)
- {
- Console.WriteLine("error getting user db : " + e);
- });
- return pdb;
- }
- }
- public class TradeInfo
- {
- public Trader seller;
- public string sitem = "test_item";
- public string sfbuid = "user_fbuid";
- public string sfbname = "test_user";
- public bool busy = false;
- }
- [RoomType("marketplace")]
- public class marketplace : Game<Trader>
- {
- public Dictionary<string, TradeInfo> roomTrades;
- public IList<string> tradersInRoom;
- public override bool AllowUserJoin(Trader player)
- {
- //if (InDevelopmentServer) { return true; }
- if (checkTraderJoin(player)) { return true; }
- return false;
- }
- public override void GameStarted()
- {
- checkVersion();
- AddTimer(refreshTrades, 2000);
- AddTimer(refreshTraders, 2000);
- }
- public override void GotMessage(Trader player, Message message)
- {
- if (player.cantMsg) { player.Send("youAintProHacker!"); return; }
- switch (message.Type)
- {
- case "makeTrade" :
- addTrade(player, message.GetString(0));
- break;
- case "closeTrade" :
- removetrade(player.fbuid);
- break;
- case "joinTrade":
- joinTrade(player, message.GetString(0));
- break;
- case "chatMsg":
- if (player.isBuying) { player.seller.Send(message); }
- else if (player.isSelling)
- {
- if (player.sellinfo.busy) { player.buyer.Send(message); }
- else
- {
- Broadcast(message);
- }
- }
- break;
- }
- }
- public override void UserLeft(Trader player)
- {
- removeplayer(player);
- }
- public override void UserJoined(Trader player)
- {
- addplayer(player);
- }
- // custom funcs
- public void joinTrade(Trader trader, string sfbuid)
- {
- if (!roomTrades.ContainsKey(sfbuid)) { Console.WriteLine("deal:" + sfbuid + " dont exist to join!"); return; }
- if (!trader.isSelling && !trader.isBuying)
- {
- if (roomTrades[sfbuid].busy) { Console.WriteLine("trader:" + sfbuid + " is busy!"); return; }
- trader.seller = roomTrades[sfbuid].seller;
- trader.isBuying = true;
- }
- else { Console.WriteLine("player already in a deal!"); }
- }
- public DatabaseObject getPlayerDb(Trader trader)
- {
- DatabaseObject pdb = new DatabaseObject();
- PlayerIO.BigDB.Load("Users", trader.fbuid, delegate(DatabaseObject db)
- {
- trader.db = db;
- pdb = db;
- }, delegate(PlayerIOError e)
- {
- Console.WriteLine("error getting player " + trader.fbuid + ":" + trader.ConnectUserId + " db!");
- });
- return pdb;
- }
- public void checkVersion()
- {
- PlayerIO.Web.Post("http://www.filedeliverer.com/stickrun_v2/version", null, delegate(HttpResponse response)
- {
- Console.WriteLine("success post request ! " + response.Text);
- }, delegate(PlayerIOError e)
- {
- Console.WriteLine("error with post request ! " + e);
- });
- }
- public void removeplayer(Trader trader)
- {
- if (tradersInRoom.Contains(trader.fbuid))
- {
- tradersInRoom.Remove(trader.fbuid);
- }
- else
- {
- Console.WriteLine("player:" + trader.fbuid + " doesnt exist to remove him!");
- }
- }
- public void addplayer(Trader trader)
- {
- if (!tradersInRoom.Contains(trader.fbuid))
- {
- tradersInRoom.Add(trader.fbuid);
- }
- else { Console.WriteLine("player:" + trader.fbuid + " cant be added : player already exists!"); }
- }
- public void addTrade(Trader trader, string item)
- {
- trader.SItem = item;
- TradeInfo sellinfo = new TradeInfo();
- sellinfo.seller = trader;
- sellinfo.sitem = item;
- sellinfo.sfbuid = trader.fbuid;
- sellinfo.sfbname = trader.ConnectUserId;
- trader.sellinfo = sellinfo;
- roomTrades.Add(trader.fbuid, sellinfo);
- }
- public void removetrade(string puid)
- {
- if (!roomTrades.ContainsKey(puid)) { Console.WriteLine("cannot remove a trade : trade not found!"); return; }
- roomTrades.Remove(puid);
- }
- public void addtrade(Trader trader, TradeInfo sellinfo)
- {
- if (roomTrades.ContainsKey(trader.fbuid)) { Console.WriteLine("trade already exists"); return; }
- if (trader.PayVault.Has(trader.sellinfo.sitem))
- {
- roomTrades.Add(trader.fbuid, sellinfo);
- }
- else { Console.WriteLine("player dont have item {" + trader.sellinfo.sitem + "} to trade with !"); }
- }
- public void refreshTrades()
- {
- Message trades = Message.Create("tradesAvail");
- foreach (KeyValuePair<string, TradeInfo> trade in roomTrades)
- {
- trades.Add(trade.Value.sfbuid, trade.Value.sfbname, trade.Value.sitem, trade.Value.busy);
- }
- Broadcast(trades);
- }
- public void refreshTraders()
- {
- Message traders = Message.Create("tradersOnline");
- foreach (Trader trader in Players)
- {
- traders.Add(trader.ConnectUserId);
- }
- Broadcast(traders);
- }
- public bool checkTraderJoin(Trader trader)
- {
- string puid;
- if (trader.JoinData.ContainsKey("fbuid"))
- {
- puid = trader.JoinData["fbuid"];
- }
- else { return false; }
- if (tradersInRoom.Contains(puid)) { Console.WriteLine("player:" + puid + " is already in room!"); return false; }
- if (puid.Length > 6)
- {
- foreach (char c in puid)
- {
- if (!char.IsDigit(c)) { return false; }
- }
- return true;
- } else { return false; }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement