forked from Limework/skript-db
		
	fix expressions in queries, thanks to TPGamesNL
This commit is contained in:
		
							parent
							
								
									310536c085
								
							
						
					
					
						commit
						b815f50cf2
					
				@ -105,21 +105,31 @@ public class EffExecuteStatement extends Effect {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            if (getNext() != null) {
 | 
					            if (getNext() != null) {
 | 
				
			||||||
                //if local variables are present
 | 
					                //if local variables are present
 | 
				
			||||||
                    //bring back local variables
 | 
					                //bring back local variables
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    //populate SQL data into variables
 | 
					                //populate SQL data into variables
 | 
				
			||||||
                    if (!(res instanceof String)) {
 | 
					                if (!(res instanceof String)) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //also set variables in the sql query complete event
 | 
					                    //also set variables in the sql query complete event
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //TEMPORARILY DISABLED, AS THIS WOULD WORSEN PERFORMANCE OF THE QUERIES AND NOT BE USED BY MOST PEOPLE.
 | 
					                    //TEMPORARILY DISABLED, AS THIS WOULD WORSEN PERFORMANCE OF THE QUERIES AND NOT BE USED BY MOST PEOPLE.
 | 
				
			||||||
                        //I may add config option to enable this later?
 | 
					                    //I may add config option to enable this later?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //SQLQueryCompleteEvent event = new SQLQueryCompleteEvent(this.query.getSingle(e));
 | 
					                    //SQLQueryCompleteEvent event = new SQLQueryCompleteEvent(this.query.getSingle(e));
 | 
				
			||||||
                        //((Map<String, Object>) res).forEach((name, value) -> setVariable(event, name, value));
 | 
					                    //((Map<String, Object>) res).forEach((name, value) -> setVariable(event, name, value));
 | 
				
			||||||
                        //SkriptDB.getPlugin(SkriptDB.class).getServer().getPluginManager().callEvent(event);
 | 
					                    //SkriptDB.getPlugin(SkriptDB.class).getServer().getPluginManager().callEvent(event);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                if (isSync || finalSync) {
 | 
				
			||||||
 | 
					                    if (locals != null) {
 | 
				
			||||||
 | 
					                        Variables.setLocalVariables(e, locals);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (isSync || finalSync) {
 | 
					                    if (!(res instanceof String)) {
 | 
				
			||||||
 | 
					                        ((Map<String, Object>) res).forEach((name, value) -> setVariable(e, name, value));
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    TriggerItem.walk(getNext(), e);
 | 
				
			||||||
 | 
					                    Variables.removeLocals(e);
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    Bukkit.getScheduler().runTask(SkriptDB.getInstance(), () -> {
 | 
				
			||||||
                        if (locals != null) {
 | 
					                        if (locals != null) {
 | 
				
			||||||
                            Variables.setLocalVariables(e, locals);
 | 
					                            Variables.setLocalVariables(e, locals);
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@ -127,22 +137,12 @@ public class EffExecuteStatement extends Effect {
 | 
				
			|||||||
                            ((Map<String, Object>) res).forEach((name, value) -> setVariable(e, name, value));
 | 
					                            ((Map<String, Object>) res).forEach((name, value) -> setVariable(e, name, value));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        TriggerItem.walk(getNext(), e);
 | 
					                        TriggerItem.walk(getNext(), e);
 | 
				
			||||||
 | 
					                        //the line below is required to prevent memory leaks
 | 
				
			||||||
 | 
					                        //no functionality difference notice with it being removed from my test, but the memory gets filled with leaks
 | 
				
			||||||
 | 
					                        //so it must be kept
 | 
				
			||||||
                        Variables.removeLocals(e);
 | 
					                        Variables.removeLocals(e);
 | 
				
			||||||
                    } else {
 | 
					                    });
 | 
				
			||||||
                        Bukkit.getScheduler().runTask(SkriptDB.getInstance(), () -> {
 | 
					                }
 | 
				
			||||||
                            if (locals != null) {
 | 
					 | 
				
			||||||
                                Variables.setLocalVariables(e, locals);
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                            if (!(res instanceof String)) {
 | 
					 | 
				
			||||||
                                ((Map<String, Object>) res).forEach((name, value) -> setVariable(e, name, value));
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                            TriggerItem.walk(getNext(), e);
 | 
					 | 
				
			||||||
                            //the line below is required to prevent memory leaks
 | 
					 | 
				
			||||||
                            //no functionality difference notice with it being removed from my test, but the memory gets filled with leaks
 | 
					 | 
				
			||||||
                            //so it must be kept
 | 
					 | 
				
			||||||
                            Variables.removeLocals(e);
 | 
					 | 
				
			||||||
                        });
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -176,7 +176,11 @@ public class EffExecuteStatement extends Effect {
 | 
				
			|||||||
            if (o instanceof String) {
 | 
					            if (o instanceof String) {
 | 
				
			||||||
                sb.append(o);
 | 
					                sb.append(o);
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                Expression<?> expr = SkriptUtil.getExpressionFromInfo(o);
 | 
					                Expression<?> expr;
 | 
				
			||||||
 | 
					                if (o instanceof Expression)
 | 
				
			||||||
 | 
					                    expr = (Expression<?>) o;
 | 
				
			||||||
 | 
					                else
 | 
				
			||||||
 | 
					                    expr = SkriptUtil.getExpressionFromInfo(o);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                String before = getString(objects, i - 1);
 | 
					                String before = getString(objects, i - 1);
 | 
				
			||||||
                String after = getString(objects, i + 1);
 | 
					                String after = getString(objects, i + 1);
 | 
				
			||||||
@ -330,4 +334,4 @@ public class EffExecuteStatement extends Effect {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2,5 +2,5 @@ name: skript-db
 | 
				
			|||||||
version: 1.3.2
 | 
					version: 1.3.2
 | 
				
			||||||
main: com.btk5h.skriptdb.SkriptDB
 | 
					main: com.btk5h.skriptdb.SkriptDB
 | 
				
			||||||
depend: [Skript]
 | 
					depend: [Skript]
 | 
				
			||||||
authors: [btk5h, FranKusmiruk, Govindas]
 | 
					authors: [btk5h, FranKusmiruk, Govindas, TPGamesNL]
 | 
				
			||||||
api-version: 1.13
 | 
					api-version: 1.13
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user