Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- Chatango bot claim feature
- By Hardware@chatango
- '''
- #Claim user
- def claimuser(user, claim):
- claimed = [] #User that has been claimed
- masters = [] #Masters
- user = user.lower()
- claim = claim.lower()
- with open("claims.json") as f:
- data = json.loads(f.read())
- if claim == user: return user.title()+", you cannot claim yourself <.<"
- for ms, clu in data.items(): #Prevents you from claiming your owner
- if user in clu and ms == claim: return "<b>"+user.title()+"</b>, you cannot claim your master."
- for u, c in data.items():
- for x in c:
- claimed.append(x) #adds all claimed user to a list
- if claim in claimed: #Check if user is already claimed.
- for ma, cl in data.items(): #Loop again to get master name
- if claim in cl:
- return "@"+claim.capitalize()+" has already been claimed by: <b>"+ma.title()+"</b>."
- elif claim not in claimed:# if not claimed
- for mas, claims in data.items():
- masters.append(mas)
- if user in masters: #If master in db
- data[user].append(claim)
- with open("claims.json", "w") as file:
- file.write(json.dumps(data))
- return "@"+claim.title()+" has been claimed by <b>"+user.title()+". ♥"
- elif user not in masters: #Else write new entry and apply claim
- data[user] = [claim]
- with open("claims.json", "w") as filer:
- filer.write(json.dumps(data))
- return "@"+claim.title()+" has been claimed by <b>"+user.title()+". ♥"
- #Release claimed user
- def releaseclaim(user, claim):
- user = user.lower()
- claim = claim.lower()
- with open("claims.json") as f:
- data = json.loads(f.read())
- try:
- if claim in data[user]:
- data[user].remove(claim)
- with open("claims.json", "w") as file:
- file.write(json.dumps(data))
- return "<b>"+user.title()+"</b>, you've released: @"+claim.title()
- else: return "<b>"+user.title()+"</b>, you're not the master of <b>"+claim.title()+"</b>..."
- except: return "<b>"+user.title()+"</b>, you're not the master of <b>"+claim.title()+"</b>..."
- #List your claims
- def myclaims(user):
- user = user.lower()
- masters = []
- with open("claims.json") as f:
- data = json.loads(f.read())
- for u, c in data.items(): masters.append(u)
- if user in masters and len(data[user])>0:
- return "<b>"+user.title()+"'s</b> claimed users("+str(len(data[user]))+"): "+", ".join(data[user]).title()
- else: return "<b>"+user.title()+"</b>, you have no claimed users.."
- #Steal claims(by using gold)
- #This function is only needed if you use my mining system.
- #remove it otherwise.
- def stealclaim(user, claim):
- claims = []
- masters = []
- claim = claim.lower()
- with open("claims.json") as f:
- data = json.loads(f.read())
- for k, v in data.items():
- masters.append(k)
- if user in v and claim == k: return "You cannot claim your owner."
- if k == user and claim in v: return "<b>"+user.capitalize()+"</b>, you're already the owner of @"+claim.capitalize()+"."
- for x in v:
- claims.append(x)
- if claim in claims:
- for key, val in data.items():
- if claim in val:
- if int(itemdb(user, "gold"))>=250:
- gold, silver, copper, iron, diamond, emerald, amethyst, sapphire, topaz, ruby, rock, wood, dirt, sand, grass, bones = json.loads(mines[user])
- gold = int(gold) - int(250)
- mines[user] = json.dumps([gold, silver, copper, iron, diamond, emerald, amethyst, sapphire, topaz, ruby, rock, wood, dirt, sand, grass, bones])
- val.remove(claim)
- if user not in masters:
- data[user] = [claim]
- with open("claims.json","w") as fk:
- fk.write(json.dumps(data))
- return "<b>"+user.title()+"</b> you've stolen @"+claim.capitalize()+" from @" +key.capitalize()+" for 250 <f x10ffff00=\"1\">Gold<f x808080=\"0\">."
- else:
- data[user].append(claim)
- with open("claims.json","w") as fk:
- fk.write(json.dumps(data))
- return "<b>"+user.title()+"</b> you've stolen @"+claim.capitalize()+" from @" +key.capitalize()+" for 250 <f x10ffff00=\"1\">Gold<f x808080=\"0\">."
- else: return "<b>"+user.title()+"</b>, you do not have enough <f x11ffff00=\"1\">Gold<f x808080=\"0\"> to steal any claims. (Requires: 250 <f x11ffff00=\"1\">Gold<f x808080=\"0\">)"
- else: return "<b>"+claim.capitalize()+"</b> has not been claimed by anyone yet."
- #My owner(claims)
- def myowner(user):
- c = []
- with open("claims.json") as f:
- data = json.loads(f.read())
- for master, claims in data.items():
- if user in claims:
- for x in claims: c.append(x)
- if user in c:
- for ms, us in data.items():
- if user in us:
- return "<b>"+user.title()+"</b>, your owner is: <b>"+ms.title()+"</b>."
- else: return "<b>"+user.title()+", you have no owner.."
- ######Claim CMDS########
- #Claim user
- elif used_prefix and cmd == "claim":
- users = []
- for x in room._userlist:
- item = re.sub('(<User: |>)', '', str(x))
- users.append(item)
- if len(args) == 0: return room.message("Claim who?")
- if " " in args: return room.message("There is a space in the name, please try again.")
- if args.lower() in users:
- room.message(claimuser(user.name, args.lower()), True)
- else: room.message("<b>"+user.name.title()+"</b>, you cannot claim a user that isn't in the room.", True)
- #Release claime user.
- elif used_prefix and cmd == "release":
- room.message(releaseclaim(user.name, args.lower()), True)
- #My claimed users.
- elif used_prefix and cmd == "myclaims":
- room.message(myclaims(user.name), True)
- #Steal claim (costs 250 gold) (only needed if you have my mining system)
- elif used_prefix and cmd == "stealclaim":
- users = []
- for x in room._userlist:
- item = re.sub('(<User: |>)', '', str(x))
- users.append(item)
- if user.name not in mines: return room.message("<f x808080=\"0\">You need 250 <f x10ffff00=\"1\">Gold<f x808080=\"0\"> to steal claims. do /Register -> /mine", True) #makes sure it's a miner
- if args.lower() == user.name: return room.message("<f x808080=\"0\">You cannot claim yourself.", True) #cant steal yourself
- if len(args) == 0: return room.message("Steal who?") #Makes sure args >0
- if " " in args: return room.message("There is a space in the name, please try again.", True)#prevents names with spaes
- if args.lower() in users: #can only claim users in the room.
- room.message(stealclaim(user.name, args.lower()), True)
- else: room.message("<b>"+user.name.title()+"</b>, you cannot claim a user that isn't in the room.", True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement