varkarrus

AI Generated World Info

Aug 7th, 2020
1,302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.84 KB | None | 0 0
  1. ///////////////input modifier
  2. if(!worldEntries){
  3. worldEntries = [
  4. {keys:"this,test",entry:"is bananas",isNotHidden:true}
  5. ]
  6. }
  7.  
  8. const modifier = (text) => {
  9.  
  10. let modifiedText = text
  11. const lowered = text.toLowerCase()
  12.  
  13. state.message = "";
  14.  
  15. state.prompt = "";
  16.  
  17. if(lowered.includes("/removewi")){
  18. state.blockNextOutput = true;
  19. var re = /\[(.*)\]/;
  20. var find = modifiedText.match(re)[1];
  21.  
  22. for(var i=0;i<worldEntries.length;i++){
  23. var keys = worldEntries[i].keys.split(",");
  24. if(find.toLowerCase() == keys[0].toLowerCase()){
  25. removeWorldEntry(i);
  26. state.message = keys[0]+" removed successfully."
  27. return {text: ""}
  28. }
  29. }
  30. state.message = find+" not found"
  31. return {text: ""}
  32. }
  33.  
  34.  
  35. if(lowered.includes("/editwi")){
  36. state.blockNextOutput = true;
  37. var re = /\[((.|\n)*?)\]/;
  38. var args = modifiedText.match(re)[1].split('|');
  39.  
  40. if(args.length >=2){
  41. var firsttag = args[0];
  42. var newEntry = args[1];
  43. for(var a = 0; a< worldEntries.length;a++){
  44. if(worldEntries[a].keys.split(',')[0].toLowerCase() == firsttag.toLowerCase()){
  45.  
  46. addWorldEntry(worldEntries[a].keys,newEntry.substring(0,500));
  47. state.message = firsttag+" updated successfully.\n"+newEntry.substring(0,500)
  48. removeWorldEntry(a)
  49.  
  50. return {text: ""}
  51.  
  52. }
  53. }
  54. state.message = "World entry not found :("
  55. return {text: ""}
  56. }
  57. state.message = "Improperly formatted command."
  58. return {text: ""}
  59.  
  60. }
  61.  
  62.  
  63.  
  64.  
  65. if(lowered.includes("/wi")){
  66.  
  67. var re = /\[(.*)\]/;
  68. modifiedText = modifiedText.replace(/\|/g,',')
  69. state.promptArgs = modifiedText.match(re)[1].split(',');
  70. state.prompt = state.promptArgs[0];
  71. state.memory.context = memory+"\n";
  72.  
  73.  
  74.  
  75. state.memory.frontMemory = "\n\n------\nDescription of Example (Tags: descriptive,tags):\nThis is an example entry. It can be up to 500 characters long."
  76.  
  77.  
  78. for(var a = 0; a< state.promptArgs.length;a++){
  79. for(var b = 0; b< worldEntries.length;b++){
  80. if(worldEntries[b].keys.toLowerCase().includes(state.promptArgs[a].toLowerCase())){
  81. state.memory.context+=worldEntries[b].entry+"\n";
  82. }
  83. }
  84. }
  85.  
  86. if(state.promptArgs.length > 1){
  87.  
  88. var tags = "";
  89.  
  90. for(var i =1; i < state.promptArgs.length; i++){
  91. if(i > 1){tags+=","};
  92. tags+= state.promptArgs[i]
  93. }
  94.  
  95. state.memory.frontMemory += "\n\n------\nDescription of "+state.prompt+" (Tags: "+tags+"):\n";
  96. }
  97.  
  98. else{
  99. state.memory.frontMemory += "\n\n------\nDescription of "+state.prompt+":\n";
  100. }
  101.  
  102. modifiedText = "";
  103.  
  104. }
  105.  
  106. if(lowered.includes ("/printwi")){
  107. state.blockNextOutput = true;
  108. var string = "";
  109.  
  110. for(var i=0;i<worldEntries.length;i++){
  111. string+= i+") ";
  112. var keys = worldEntries[i].keys.split(',');
  113. string+= keys[0];
  114. if(keys.length > 1){
  115. keys.shift();
  116. string+= " ["+keys.join(',')+"]"
  117.  
  118. }
  119. string+=": "+worldEntries[i].entry+"\n";
  120. }
  121.  
  122. state.message = string;
  123. modifiedText = "";
  124. }
  125.  
  126. // You must return an object with the text property defined.
  127. return {text: modifiedText}
  128. }
  129.  
  130. // Don't modify this part
  131. modifier(text)
  132.  
  133.  
  134. ///////////////output modifier
  135.  
  136. // Checkout the repo examples to get an idea of other ways you can use scripting
  137. // https://github.com/AIDungeon/Scripting/blob/master/examples
  138.  
  139. if(!state.blockNextOutput){state.blockNextOutput = false;}
  140. if(!state.prompt){state.prompt=""}
  141. if(!worldEntries){
  142. worldEntries = [
  143. {keys:"",entry:"",isNotHidden:false}
  144. ]
  145. }
  146.  
  147. const modifier = (text) => {
  148.  
  149. if(state.blockNextOutput){state.blockNextOutput = false;return {text:""}}
  150.  
  151. let modifiedText = text
  152. const lowered = text.toLowerCase()
  153.  
  154. if(state.prompt!=""){
  155.  
  156. modifiedText = modifiedText.split("\n\n")[0]
  157.  
  158. for(var i = 0; i < worldEntries.length;i++){
  159. if(worldEntries[i].keys.split(',')[0].toLowerCase() == state.prompt.toLowerCase()){
  160. removeWorldEntry(i);
  161. i--;
  162. }
  163. }
  164.  
  165. state.message = "New World Entry created for "+state.prompt+" (Tags: "+state.promptArgs+")\n"+state.prompt+": "+modifiedText;
  166.  
  167. addWorldEntry(state.promptArgs.join(',').replace(/\s/g,',') , (state.prompt+": "+modifiedText).substring(0,500))
  168.  
  169. for(var i =0; i < worldEntries.length;i++){
  170. worldEntries[i].isNotHidden=true;
  171. }
  172. modifiedText = "";
  173. state.prompt = "";
  174. state.memory.frontMemory = "";
  175.  
  176. }
  177.  
  178. // You must return an object with the text property defined.
  179. return {text: modifiedText}
  180. }
  181.  
  182. // Don't modify this part
  183. modifier(text)
  184.  
Add Comment
Please, Sign In to add comment